Skip to content

Commit 35e68bc

Browse files
author
Benjamin Linard
committed
improved cmake options
1 parent 048f584 commit 35e68bc

1 file changed

Lines changed: 88 additions & 67 deletions

File tree

CMakeLists.txt

Lines changed: 88 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,32 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
33
project(TFM-Pvalue LANGUAGES CXX VERSION 1.00)
44
set (CMAKE_CXX_STANDARD 11)
55

6-
option(BUILD_TFMPVALUE_TEST "Run TFMPVALUE tests" ON)
6+
unset(DEBUG_TFMPVALUE CACHE)
7+
unset(BUILD_TFMPVALUE_BINARIES CACHE)
8+
unset(RUN_TFMPVALUE_TESTS CACHE)
79

8-
add_compile_options(
9-
-O3
10-
-Wall
11-
)
10+
########################
11+
### modifiable options
12+
option(DEBUG_TFMPVALUE "No optimisations and all warnings" OFF)
13+
option(BUILD_TFMPVALUE_BINARIES "Build binary commands (pv2sc,sc2pv,...)" OFF)
14+
option(RUN_TFMPVALUE_TESTS "Run tests" OFF)
15+
### modifiable options
16+
########################
17+
18+
if(RUN_TFMPVALUE_TESTS)
19+
option(BUILD_TFMPVALUE_BINARIES "Build binary commands (pv2sc,sc2pv,...)" ON)
20+
endif(RUN_TFMPVALUE_TESTS)
21+
22+
if (DEBUG_TFMPVALUE)
23+
add_compile_options(
24+
-O0
25+
-Wall
26+
)
27+
else()
28+
add_compile_options(
29+
-O3
30+
)
31+
endif (DEBUG_TFMPVALUE)
1232

1333
########################
1434
## LIBRARY
@@ -25,72 +45,73 @@ add_library(
2545
########################
2646
## EXECUTABLES
2747

28-
# static linking applies to all following targets
29-
link_libraries(
30-
tfmpvalue
31-
)
32-
33-
add_executable(
34-
TFMpvalue-pv2sc
35-
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
36-
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
37-
)
38-
target_compile_definitions(
39-
TFMpvalue-pv2sc
40-
PUBLIC
41-
JASPAR=1
42-
PROGRAM=0
43-
)
44-
add_executable(
45-
TFMpvalue-sc2pv
46-
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
47-
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
48-
)
49-
target_compile_definitions(
50-
TFMpvalue-sc2pv
51-
PUBLIC
52-
JASPAR=1
53-
PROGRAM=1
54-
)
55-
add_executable(
56-
TFMpvalue-distrib
57-
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
58-
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
59-
)
60-
target_compile_definitions(
61-
TFMpvalue-distrib
62-
PUBLIC
63-
JASPAR=1
64-
PROGRAM=3
65-
)
66-
add_executable(
67-
TFMpvalue-fastpvalue
68-
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
69-
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
70-
)
71-
target_compile_definitions(
72-
TFMpvalue-fastpvalue
73-
PUBLIC
74-
JASPAR=1
75-
PROGRAM=4
76-
)
77-
add_executable(
78-
TFMpvalue-lazydistrib
79-
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
80-
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
81-
)
82-
target_compile_definitions(
83-
TFMpvalue-lazydistrib
84-
PUBLIC
85-
JASPAR=1
86-
PROGRAM=5
87-
)
48+
if (BUILD_TFMPVALUE_BINARIES)
49+
# static linking applies to all following targets
50+
link_libraries(
51+
tfmpvalue
52+
)
8853

54+
add_executable(
55+
TFMpvalue-pv2sc
56+
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
57+
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
58+
)
59+
target_compile_definitions(
60+
TFMpvalue-pv2sc
61+
PUBLIC
62+
JASPAR=1
63+
PROGRAM=0
64+
)
65+
add_executable(
66+
TFMpvalue-sc2pv
67+
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
68+
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
69+
)
70+
target_compile_definitions(
71+
TFMpvalue-sc2pv
72+
PUBLIC
73+
JASPAR=1
74+
PROGRAM=1
75+
)
76+
add_executable(
77+
TFMpvalue-distrib
78+
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
79+
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
80+
)
81+
target_compile_definitions(
82+
TFMpvalue-distrib
83+
PUBLIC
84+
JASPAR=1
85+
PROGRAM=3
86+
)
87+
add_executable(
88+
TFMpvalue-fastpvalue
89+
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
90+
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
91+
)
92+
target_compile_definitions(
93+
TFMpvalue-fastpvalue
94+
PUBLIC
95+
JASPAR=1
96+
PROGRAM=4
97+
)
98+
add_executable(
99+
TFMpvalue-lazydistrib
100+
${CMAKE_CURRENT_SOURCE_DIR}/src/ArgumentException.cpp
101+
${CMAKE_CURRENT_SOURCE_DIR}/src/TFMpvalue.cpp
102+
)
103+
target_compile_definitions(
104+
TFMpvalue-lazydistrib
105+
PUBLIC
106+
JASPAR=1
107+
PROGRAM=5
108+
)
109+
endif(BUILD_TFMPVALUE_BINARIES)
89110

90111
########################
91112
## TESTS
92113

93-
if (BUILD_TFMPVALUE_TEST)
114+
if (RUN_TFMPVALUE_TESTS)
94115
enable_testing()
95116

96117
add_test(
@@ -112,4 +133,4 @@ if (BUILD_TFMPVALUE_TEST)
112133
$<TARGET_FILE:TFMpvalue-distrib> -a 0.25 -t 0.25 -c 0.25 -g 0.25 -m ${CMAKE_CURRENT_SOURCE_DIR}/test/MA0045.pfm -s 8 -S 9 -G 1e-5
113134
)
114135

115-
endif(BUILD_TFMPVALUE_TEST)
136+
endif(RUN_TFMPVALUE_TESTS)

0 commit comments

Comments
 (0)