Makefile 699 B

12345678910111213141516171819202122232425262728
  1. CXX := clang++
  2. CXX_FLAGS := -std=c++20 -isystem include/ -DJVALIDATE_USE_EXCEPTIONS
  3. TEST_DIR := tests/
  4. INCLUDE_DIR := include/
  5. HEADERS := $(shell find $(INCLUDE_DIR) -name *.h)
  6. TEST_HEADERS := $(wildcard $(TEST_DIR)*.h)
  7. TEST_SOURCES := $(wildcard $(TEST_DIR)*.cxx)
  8. TEST_OBJECTS := $(patsubst %.cxx, .build/%.o, $(TEST_SOURCES))
  9. all: .build/bin/selfvalidate
  10. debug: CXX_FLAGS := $(CXX_FLAGS) -g
  11. debug: all
  12. clean:
  13. @ rm -rf .build
  14. .build/tests/%.o: tests/%.cxx $(HEADERS) $(TEST_HEADERS)
  15. @ mkdir -p .build/tests
  16. $(CXX) $(CXX_FLAGS) -c $< -o $@
  17. .build/bin/selfvalidate: .build/tests/selfvalidate_test.o
  18. @ mkdir -p .build/bin/tests
  19. $(CXX) $< -o $@ -L/opt/local/lib -ljsoncpp -lgmock -lgtest