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 (3612B)


      1 #
      2 # Cross Platform Makefile
      3 # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
      4 #
      5 # You will need GLFW (http://www.glfw.org):
      6 # Linux:
      7 #   apt-get install libglfw-dev
      8 # Mac OS X:
      9 #   brew install glfw
     10 # MSYS2:
     11 #   pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
     12 #
     13 
     14 #CXX = g++
     15 #CXX = clang++
     16 
     17 EXE = example_glfw_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_glfw.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 
     68 ##---------------------------------------------------------------------
     69 ## BUILD FLAGS PER PLATFORM
     70 ##---------------------------------------------------------------------
     71 
     72 ifeq ($(UNAME_S), Linux) #LINUX
     73 	ECHO_MESSAGE = "Linux"
     74 	LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3`
     75 
     76 	CXXFLAGS += `pkg-config --cflags glfw3`
     77 	CFLAGS = $(CXXFLAGS)
     78 endif
     79 
     80 ifeq ($(UNAME_S), Darwin) #APPLE
     81 	ECHO_MESSAGE = "Mac OS X"
     82 	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
     83 	LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
     84 	#LIBS += -lglfw3
     85 	LIBS += -lglfw
     86 
     87 	CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
     88 	CFLAGS = $(CXXFLAGS)
     89 endif
     90 
     91 ifeq ($(OS), Windows_NT)
     92 	ECHO_MESSAGE = "MinGW"
     93 	LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
     94 
     95 	CXXFLAGS += `pkg-config --cflags glfw3`
     96 	CFLAGS = $(CXXFLAGS)
     97 endif
     98 
     99 ##---------------------------------------------------------------------
    100 ## BUILD RULES
    101 ##---------------------------------------------------------------------
    102 
    103 %.o:%.cpp
    104 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    105 
    106 %.o:$(IMGUI_DIR)/%.cpp
    107 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    108 
    109 %.o:$(IMGUI_DIR)/backends/%.cpp
    110 	$(CXX) $(CXXFLAGS) -c -o $@ $<
    111 
    112 %.o:../libs/gl3w/GL/%.c
    113 	$(CC) $(CFLAGS) -c -o $@ $<
    114 
    115 %.o:../libs/glad/src/%.c
    116 	$(CC) $(CFLAGS) -c -o $@ $<
    117 
    118 all: $(EXE)
    119 	@echo Build complete for $(ECHO_MESSAGE)
    120 
    121 $(EXE): $(OBJS)
    122 	$(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
    123 
    124 clean:
    125 	rm -f $(EXE) $(OBJS)