You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.6 KiB
65 lines
1.6 KiB
|
|
SHELL = /bin/sh |
|
CXX = g++ |
|
CXXFLAGS = -std=c++11 -g -ggdb3 -Wall \ |
|
-Iinclude \ |
|
-I/usr/include/SDL2 \ |
|
-Iext/stb_libs |
|
EXAMPLEDIR = examples |
|
OBJDIR = build |
|
SRCDIR = src |
|
LIBNAME = libTangerine.a |
|
|
|
RENDER_SOURCES = $(wildcard $(SRCDIR)/*.cpp) |
|
RENDER_OBJECTS = $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(RENDER_SOURCES)) |
|
|
|
# NOTE: target to automatically build a current release of assimp. Fixes |
|
# issue on Fedora where the default assimp version doesn't support glTF2 |
|
ASSIMP_DIR=ext/assimp |
|
|
|
ifeq ($(USE_INTERNAL_ASSIMP), y) |
|
CXXFLAGS += -I$(ASSIMP_DIR)/include |
|
ASSIMP_LIB := $(ASSIMP_DIR)/build/code/libassimp.a |
|
BUILD_ASSIMP_TARGET := build_assimp |
|
endif |
|
|
|
|
|
all: mkdirs $(BUILD_ASSIMP_TARGET) $(LIBNAME) examples |
|
.PHONY: all |
|
|
|
-include $(OBJDIR)/*.d |
|
|
|
build_assimp: |
|
@if [ ! -d $(ASSIMP_DIR) ]; then \ |
|
git clone -n "https://github.com/assimp/assimp" $(ASSIMP_DIR); \ |
|
cd $(ASSIMP_DIR); \ |
|
git checkout -q v5.0.1; \ |
|
fi |
|
|
|
cmake -S $(ASSIMP_DIR) -B $(ASSIMP_DIR)/build \ |
|
-DBUILD_SHARED_LIBS=OFF \ |
|
-DASSIMP_BUILD_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF \ |
|
-DASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT=OFF \ |
|
-DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=OFF \ |
|
-DASSIMP_BUILD_GLTF_IMPORTER=ON ./ |
|
$(MAKE) -C $(ASSIMP_DIR)/build |
|
.PHONY: build_assimp |
|
|
|
mkdirs: |
|
@mkdir -p $(OBJDIR) |
|
.PHONY: mkdirs |
|
|
|
$(LIBNAME): $(RENDER_OBJECTS) |
|
ar -crs $(OBJDIR)/$(LIBNAME) $(RENDER_OBJECTS) |
|
|
|
$(RENDER_OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp |
|
$(CXX) $(CXXFLAGS) -c -MMD $< -o $@ |
|
|
|
examples: $(LIBNAME) |
|
ASSIMP_DIR=$(ASSIMP_DIR) $(MAKE) -C $(EXAMPLEDIR) |
|
.PHONY: examples |
|
|
|
clean: |
|
rm -rf $(OBJDIR)/* |
|
$(MAKE) clean -C $(EXAMPLEDIR) |
|
.PHONY: clean
|
|
|