|
- #!/usr/bin/make -f
- # Makefile for DGL #
- # ---------------- #
- # Created by falkTX
- #
-
- include ../Makefile.base.mk
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- BUILD_C_FLAGS += $(DGL_FLAGS) -I..
- BUILD_CXX_FLAGS += $(DGL_FLAGS) -I.. -I../dgl/src/pugl-upstream/include -DDONT_SET_USING_DGL_NAMESPACE
- LINK_FLAGS += -lpthread
-
- # TODO fix within pugl
- BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers
-
- ifeq ($(MACOS),true)
- BUILD_CXX_FLAGS += -ObjC++ -DGL_SILENCE_DEPRECATION -Wno-deprecated-declarations
- endif
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- MANUAL_TESTS =
- UNIT_TESTS = Application Color Point
-
- ifeq ($(HAVE_CAIRO),true)
- MANUAL_TESTS += Demo.cairo
- UNIT_TESTS += Window.cairo
- endif
- ifeq ($(HAVE_OPENGL),true)
- MANUAL_TESTS += Demo.opengl
- MANUAL_TESTS += NanoSubWidgets
- UNIT_TESTS += Window.opengl
- endif
- ifeq ($(HAVE_STUB),true)
- UNIT_TESTS += Window.stub
- endif
- ifeq ($(HAVE_VULKAN),true)
- UNIT_TESTS += Window.vulkan
- endif
-
- MANUAL_TARGETS = $(MANUAL_TESTS:%=../build/tests/%$(APP_EXT))
- UNIT_TARGET = $(UNIT_TESTS:%=../build/tests/%$(APP_EXT))
-
- ALL_OBJS = $(MANUAL_TESTS:%=../build/tests/%.cpp.o)
- ALL_OBJS += $(UNIT_TESTS:%=../build/tests/%.cpp.o)
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- all: $(MANUAL_TARGETS) $(UNIT_TARGET)
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- define RUN_TEST
-
- ${1}
- endef
-
- # valgrind --leak-check=full $@
-
- run: $(UNIT_TARGET)
- $(foreach TEST,$^,$(call RUN_TEST,$(TEST)))
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- clean:
- rm -rf ../build/tests
-
- # ---------------------------------------------------------------------------------------------------------------------
- # building steps
-
- ../build/tests/%.c.o: %.c
- -@mkdir -p ../build/tests
- @echo "Compiling $<"
- $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
-
- ../build/tests/%.cpp.o: %.cpp
- -@mkdir -p ../build/tests
- @echo "Compiling $<"
- $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
-
- ../build/tests/%.cpp.cairo.o: %.cpp
- -@mkdir -p ../build/tests
- @echo "Compiling $< (Cairo)"
- $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
-
- ../build/tests/%.cpp.opengl.o: %.cpp
- -@mkdir -p ../build/tests
- @echo "Compiling $< (OpenGL)"
- $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
-
- ../build/tests/%.cpp.stub.o: %.cpp
- -@mkdir -p ../build/tests
- @echo "Compiling $< (Stub)"
- $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
-
- ../build/tests/%.cpp.vulkan.o: %.cpp
- -@mkdir -p ../build/tests
- @echo "Compiling $< (Vulkan)"
- $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_VULKAN -c -o $@
-
- # ---------------------------------------------------------------------------------------------------------------------
- # linking steps
-
- ../build/tests/%$(APP_EXT): ../build/tests/%.cpp.o
- @echo "Linking $*"
- $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
-
- ../build/tests/%.cairo$(APP_EXT): ../build/tests/%.cpp.cairo.o
- @echo "Linking $*"
- $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
-
- ../build/tests/%.opengl$(APP_EXT): ../build/tests/%.cpp.opengl.o
- @echo "Linking $*"
- $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
-
- ../build/tests/%.stub$(APP_EXT): ../build/tests/%.cpp.stub.o
- @echo "Linking $*"
- $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@
-
- ../build/tests/%.vulkan$(APP_EXT): ../build/tests/%.cpp.vulkan.o
- @echo "Linking $*"
- $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
-
- # ---------------------------------------------------------------------------------------------------------------------
- # linking steps (special, links against DGL static lib)
-
- ../build/tests/Demo.cairo$(APP_EXT): ../build/tests/Demo.cpp.cairo.o ../build/libdgl-cairo.a
- @echo "Linking Demo (Cairo)"
- $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@
-
- ../build/tests/Demo.opengl$(APP_EXT): ../build/tests/Demo.cpp.opengl.o ../build/libdgl-opengl.a
- @echo "Linking Demo (OpenGL)"
- $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
-
- ../build/tests/Demo.vulkan$(APP_EXT): ../build/tests/Demo.cpp.vulkan.o ../build/libdgl-vulkan.a
- @echo "Linking Demo (OpenGL)"
- $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@
-
- ../build/tests/NanoSubWidgets$(APP_EXT): ../build/tests/NanoSubWidgets.cpp.o ../build/libdgl-opengl.a
- @echo "Linking Demo (OpenGL)"
- $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@
-
- # ---------------------------------------------------------------------------------------------------------------------
-
- -include $(OBJS:%.o=%.d)
- -include ../build/tests/Demo.cpp.cairo.d
- -include ../build/tests/Demo.cpp.opengl.d
- -include ../build/tests/Demo.cpp.vulkan.d
- -include ../build/tests/Window.cpp.cairo.d
- -include ../build/tests/Window.cpp.opengl.d
- -include ../build/tests/Window.cpp.stub.d
- -include ../build/tests/Window.cpp.vulkan.d
-
- # ---------------------------------------------------------------------------------------------------------------------
|