imgui

FORK: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
git clone https://git.neptards.moe/neptards/imgui.git
Log | Files | Refs

Makefile (3706B)


      1 #
      2 # Cross Platform Makefile
      3 # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
      4 #
      5 # You will need SDL2 (http://www.libsdl.org):
      6 # Linux:
      7 #   apt-get install libsdl2-dev
      8 # Mac OS X:
      9 #   brew install sdl2
     10 # MSYS2:
     11 #   pacman -S mingw-w64-i686-SDL2
     12 #
     13 
     14 #CXX = g++
     15 #CXX = clang++
     16 
     17 EXE = example_sdl_opengl3
     18 IMGUI_DIR = ../..
     19 SOURCES = main.cpp
     20 SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
     21 SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
     22 OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
     23 UNAME_S := $(shell uname -s)
     24 LINUX_GL_LIBS = -lGL
     25 
     26 CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
     27 CXXFLAGS += -g -Wall -Wformat
     28 LIBS =
     29 
     30 ##---------------------------------------------------------------------
     31 ## OPENGL LOADER / OPENGL ES
     32 ##---------------------------------------------------------------------
     33 
     34 ## See below for OpenGL ES option (no loader required) - comment out
     35 ## the following if you want to use OpenGL ES instead of Desktop GL.
     36 
     37 ## Using OpenGL loader: gl3w [default]
     38 SOURCES += ../libs/gl3w/GL/gl3w.c
     39 CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
     40 
     41 ## Using OpenGL loader: glew
     42 ## (This assumes a system-wide installation)
     43 # CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLEW
     44 # LIBS += -lGLEW
     45 
     46 ## Using OpenGL loader: glad
     47 # SOURCES += ../libs/glad/src/glad.c
     48 # CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD
     49 
     50 ## Using OpenGL loader: glad2
     51 # SOURCES += ../libs/glad/src/gl.c
     52 # CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD2
     53 
     54 ## Using OpenGL loader: glbinding
     55 ## This assumes a system-wide installation
     56 ## of either version 3.0.0 (or newer)
     57 # CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING3
     58 # LIBS += -lglbinding
     59 ## or the older version 2.x
     60 # CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING2
     61 # LIBS += -lglbinding
     62 
     63 ## Using OpenGL ES, no loader required
     64 ## This assumes a GL ES library available in the system, e.g. libGLESv2.so
     65 # CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
     66 # LINUX_GL_LIBS = -lGLESv2
     67 ## If you're on a Raspberry Pi and want to use the legacy drivers,
     68 ## use the following instead:
     69 # LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2
     70 
     71 ##---------------------------------------------------------------------
     72 ## BUILD FLAGS PER PLATFORM
     73 ##---------------------------------------------------------------------
     74 
     75 ifeq ($(UNAME_S), Linux) #LINUX
     76 	ECHO_MESSAGE = "Linux"
     77 	LIBS += $(LINUX_GL_LIBS) -ldl `sdl2-config --libs`
     78 
     79 	CXXFLAGS += `sdl2-config --cflags`
     80 	CFLAGS = $(CXXFLAGS)
     81 endif
     82 
     83 ifeq ($(UNAME_S), Darwin) #APPLE
     84 	ECHO_MESSAGE = "Mac OS X"
     85 	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
     86 	LIBS += -L/usr/local/lib -L/opt/local/lib
     87 
     88 	CXXFLAGS += `sdl2-config --cflags`
     89 	CXXFLAGS += -I/usr/local/include -I/opt/local/include
     90 	CFLAGS = $(CXXFLAGS)
     91 endif
     92 
     93 ifeq ($(OS), Windows_NT)
     94     ECHO_MESSAGE = "MinGW"
     95     LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
     96 
     97     CXXFLAGS += `pkg-config --cflags sdl2`
     98     CFLAGS = $(CXXFLAGS)
     99 endif
    100 
    101 ##---------------------------------------------------------------------
    102 ## BUILD RULES
    103 ##---------------------------------------------------------------------
    104 
    105 %.o:%.cpp
    106 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    107 
    108 %.o:$(IMGUI_DIR)/%.cpp
    109 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    110 
    111 %.o:$(IMGUI_DIR)/backends/%.cpp
    112 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    113 
    114 %.o:../libs/gl3w/GL/%.c
    115 	$(CC) $(CFLAGS) -c -o $@ $<
    116 
    117 %.o:../libs/glad/src/%.c
    118 	$(CC) $(CFLAGS) -c -o $@ $<
    119 
    120 all: $(EXE)
    121 	@echo Build complete for $(ECHO_MESSAGE)
    122 
    123 $(EXE): $(OBJS)
    124 	$(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
    125 
    126 clean:
    127 	rm -f $(EXE) $(OBJS)