-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.ninja
38 lines (28 loc) · 1.26 KB
/
build.ninja
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
src_directory = src
build_directory = build
doc_directory = doc
compiler = clang++
warnings = -Weverything -Wno-c++98-compat -Wno-padded -fcomment-block-commands=copydoc
#compiler = g++
#warnings = -Wall -Wextra
includes = -I/usr/include/eigen3
flags = -g -std=c++11 $warnings $includes
test_links = -L./build/tests/unit -Wl,-rpath=build/tests/unit -lcatch
rule example
command = $compiler $flags $in -o $build_directory/examples/$out
rule testConfig
command = $compiler -std=c++11 -fPIC -shared tests/unit/catch.cpp -o $build_directory/tests/unit/libcatch.so
rule unit_test
command = $compiler $flags -Wno-global-constructors $test_links $in -o $build_directory/tests/unit/$out
rule perf_test
command = $compiler -O2 $flags $in -o $build_directory/tests/perf/$out
rule doc
command = doxygen $doc_directory/config
build scalar_example: example examples/ScalarExample.cpp
build test_config: testConfig
build test_fastvec: unit_test tests/unit/FastVecTest.cpp | test_config
build test_scalar: unit_test tests/unit/ScalarTest.cpp | test_config
build test_unary_op: unit_test tests/unit/ScalarUnaryOpTest.cpp | test_config
build test_binary_op: unit_test tests/unit/ScalarBinaryOpTest.cpp | test_config
build test_perf: perf_test tests/perf/PerfTest.cpp
build Doc: doc