-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTupfile
49 lines (44 loc) · 2.09 KB
/
Tupfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
BUILD_CI = FALSE
BUILD_TESTS = TRUE
BUILD_DIR = build
CFLAGS = -Wall -O2 -std=c++17
ifeq ($(BUILD_CI),TRUE)
!cc = |> clang $(CFLAGS) -I/usr/local/include -I/home/mrozigor/libs/include -c %f -o %o |>
LIBS = -lc++ -lm -lboost_thread -lboost_system -lssl -lpthread -lpqxx -lpq -lconfig++
else
!cc = |> gcc $(CFLAGS) -c %f -o %o |>
LIBS = -lstdc++ -lboost_thread -lboost_system -lssl -lpthread -lpqxx -lpq -lconfig++ -lm -ltcmalloc
endif
MAIN_FILE = src/main.cpp
SOURCE_FILES += src/controllers/Controller.cpp
SOURCE_FILES += src/controllers/MainController.cpp
SOURCE_FILES += src/controllers/ResourcesController.cpp
SOURCE_FILES += src/controllers/UsersController.cpp
SOURCE_FILES += src/database/ArticleDAO.cpp
SOURCE_FILES += src/database/Database.cpp
SOURCE_FILES += src/database/NotConnectedException.cpp
SOURCE_FILES += src/models/Article.cpp
SOURCE_FILES += src/utils/UrlManager.cpp
TEST_FILES = tests/main_tests.cpp
TEST_FILES += tests/ArticleDAOTest.cpp
: |> ./crow/amalgamate/merge_all.py crow/include %o |> src/crow.hpp
: |> ./version_generation.sh |> src/version.hpp
: foreach views/*.mstch |> cp %f %o |> $(BUILD_DIR)/views/%b
: foreach assets/css/*.css |> cp %f %o |> $(BUILD_DIR)/assets/css/%b
: foreach assets/js/*.js |> cp %f %o |> $(BUILD_DIR)/assets/js/%b
: foreach assets/images/* |> cp %f %o |> $(BUILD_DIR)/assets/images/%b
: $(MAIN_FILE) | src/version.hpp src/crow.hpp |> !cc |> $(BUILD_DIR)/%B.o
: foreach $(SOURCE_FILES) | src/version.hpp src/crow.hpp |> !cc |> $(BUILD_DIR)/%B.o {objects}
ifeq ($(BUILD_CI),TRUE)
: $(BUILD_DIR)/*.o | src/crow.hpp |> clang -L/usr/local/lib -L/home/mrozigor/libs/lib %f -o %o $(LIBS) |> $(BUILD_DIR)/server
else
: $(BUILD_DIR)/*.o | src/crow.hpp |> gcc %f -o %o $(LIBS) |> $(BUILD_DIR)/server
endif
ifeq ($(BUILD_TESTS),TRUE)
: foreach $(TEST_FILES) |> !cc |> $(BUILD_DIR)/%B.o {test_objects}
ifeq ($(BUILD_CI),TRUE)
: {objects} {test_objects} |> clang -L/usr/local/lib -L/home/mrozigor/libs/lib %f -o %o $(LIBS) |> $(BUILD_DIR)/tests
else
: {objects} {test_objects} |> gcc %f -o %o $(LIBS) |> $(BUILD_DIR)/tests
endif
endif