mirror of https://github.com/qt/qtdoc.git
96 lines
2.0 KiB
Makefile
96 lines
2.0 KiB
Makefile
# Makefile used for building/testing on Travis CI
|
|
|
|
# Force Travis to use updated compilers
|
|
ifeq ($(TRAVIS_COMPILER), gcc)
|
|
CXX = g++-8
|
|
else ifeq ($(TRAVIS_COMPILER), clang)
|
|
CXX = clang++
|
|
endif
|
|
|
|
ifeq ($(STD), )
|
|
STD = c++11
|
|
endif
|
|
|
|
BUILD_DIR = build
|
|
SOURCE_DIR = include
|
|
SINGLE_INCLUDE_DIR = single_include
|
|
TEST_DIR = tests
|
|
CFLAGS = -pthread -std=$(STD)
|
|
|
|
TEST_OFLAGS =
|
|
ifeq ($(CXX), g++-8)
|
|
TEST_OFLAGS = -Og
|
|
endif
|
|
|
|
TEST_FLAGS = -Itests/ $(CFLAGS) $(TEST_OFLAGS) -g --coverage -Wno-unknown-pragmas -Wall
|
|
|
|
# Main Library
|
|
SOURCES = $(wildcard include/internal/*.cpp)
|
|
OBJECTS = $(subst .cpp,.o,$(subst src/,$(BUILD_DIR)/,$(SOURCES)))
|
|
|
|
TEST_SOURCES = $(wildcard tests/*.cpp)
|
|
TEST_SOURCES_NO_EXT = $(subst tests/,,$(subst .cpp,,$(TEST_SOURCES)))
|
|
|
|
all: csv_parser test_all clean distclean
|
|
|
|
################
|
|
# Main Library #
|
|
################
|
|
csv:
|
|
$(CXX) -c -O3 $(CFLAGS) $(SOURCES)
|
|
mkdir -p $(BUILD_DIR)
|
|
mv *.o $(BUILD_DIR)
|
|
|
|
libcsv.a:
|
|
make csv
|
|
ar rvs libcsv.a $(wildcard build/*.o)
|
|
|
|
docs:
|
|
doxygen Doxyfile
|
|
|
|
############
|
|
# Programs #
|
|
############
|
|
csv_stats:
|
|
$(CXX) -o csv_stats -O3 $(CFLAGS) programs/csv_stats.cpp -I$(SINGLE_INCLUDE_DIR)
|
|
|
|
#########
|
|
# Tests #
|
|
#########
|
|
csv_test:
|
|
$(CXX) -o csv_test $(SOURCES) $(TEST_SOURCES) -I${SOURCE_DIR} $(TEST_FLAGS)
|
|
|
|
run_csv_test: csv_test
|
|
mkdir -p tests/temp
|
|
./csv_test
|
|
|
|
# Test Clean-Up
|
|
rm -rf $(TEST_DIR)/temp
|
|
|
|
# Run code coverage analysis
|
|
code_cov: csv_test
|
|
mkdir -p test_results
|
|
mv *.gcno *.gcda $(PWD)/test_results
|
|
gcov-8 $(SOURCES) -o test_results --relative-only
|
|
mv *.gcov test_results
|
|
|
|
# Generate report
|
|
code_cov_report:
|
|
cd test_results
|
|
lcov --capture --directory test_results --output-file coverage.info
|
|
genhtml coverage.info --output-directory out
|
|
|
|
valgrind: csv_stats
|
|
# Can't run valgrind against csv_test because it mangles the working directory
|
|
# which causes csv_test to not be able to find test files
|
|
valgrind --leak-check=full ./csv_stats $(TEST_DIR)/data/real_data/2016_Gaz_place_national.txt
|
|
|
|
.PHONY: all clean distclean
|
|
|
|
clean:
|
|
rm -f build/*
|
|
rm -f *.gc*
|
|
rm -f libcsv.a
|
|
rm -f csv_*
|
|
|
|
distclean: clean |