Skip to content

Commit ff88a9e

Browse files
Updating cmake to build tests if root, updating cmake var name
1 parent 2583508 commit ff88a9e

File tree

2 files changed

+32
-18
lines changed

2 files changed

+32
-18
lines changed

CMakeLists.txt

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ project(runcpp2)
88
set(CMAKE_CXX_STANDARD 11)
99

1010
option(RUNCPP2_UPDATE_DEFAULT_YAMLS "Update default yaml files" OFF)
11-
option(RUNCPP2_BUILD_TESTS "Build runcpp2 tests" OFF)
11+
12+
if (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
13+
option(RUNCPP2_WARNINGS_AS_ERRORS "Treat warnings as errors" ON)
14+
option(RUNCPP2_BUILD_TESTS "Build runcpp2 tests" ON)
15+
else()
16+
option(RUNCPP2_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF)
17+
option(RUNCPP2_BUILD_TESTS "Build runcpp2 tests" OFF)
18+
endif()
1219

1320
# =========================================================================
1421
# Retrieving Version String
@@ -158,28 +165,35 @@ target_link_libraries(runcpp2 PUBLIC ghc_filesystem ryml::ryml mpark_variant)
158165

159166
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
160167
# TODO: Try to change to /Wall
161-
set(STANDARD_COMPILE_FLAGS "/utf-8;/W1;/DGHC_WIN_DISABLE_WSTRING_STORAGE_TYPE=1")
168+
set(RUNCPP2_STANDARD_COMPILE_FLAGS "/utf-8;/W1;/DGHC_WIN_DISABLE_WSTRING_STORAGE_TYPE=1")
169+
if (RUNCPP2_WARNINGS_AS_ERRORS)
170+
list(APPEND RUNCPP2_STANDARD_COMPILE_FLAGS "/WX")
171+
endif()
172+
173+
message("RUNCPP2_STANDARD_COMPILE_FLAGS: ${RUNCPP2_STANDARD_COMPILE_FLAGS}")
162174
else()
163-
set(STANDARD_COMPILE_FLAGS "-Wall"
164-
"-Wno-return-local-addr"
165-
"-Wno-sign-compare"
166-
#"-Wno-unused-variable"
167-
#"-Wno-unused-but-set-variable"
168-
"-Wno-unused-parameter"
169-
"-Wno-switch"
170-
"-Wno-gnu-zero-variadic-macro-arguments"
171-
"-Wextra"
172-
"-pedantic"
173-
"-Werror")
175+
set(RUNCPP2_STANDARD_COMPILE_FLAGS "-Wall"
176+
"-Wno-return-local-addr"
177+
"-Wno-sign-compare"
178+
#"-Wno-unused-variable"
179+
#"-Wno-unused-but-set-variable"
180+
"-Wno-unused-parameter"
181+
"-Wno-switch"
182+
"-Wno-gnu-zero-variadic-macro-arguments"
183+
"-Wextra"
184+
"-pedantic")
185+
if (RUNCPP2_WARNINGS_AS_ERRORS)
186+
list(APPEND RUNCPP2_STANDARD_COMPILE_FLAGS "-Werror")
187+
endif()
174188
endif()
175189

176-
target_compile_options(runcpp2 PRIVATE "${STANDARD_COMPILE_FLAGS}")
190+
target_compile_options(runcpp2 PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
177191

178192
# Define the version macro
179193
target_compile_definitions(runcpp2 PUBLIC RUNCPP2_VERSION="${RUNCPP2_PROJECT_VERSION}")
180194

181195
add_executable(runcpp2_main "${CMAKE_CURRENT_LIST_DIR}/Src/runcpp2/main.cpp")
182-
target_compile_options(runcpp2_main PRIVATE "${STANDARD_COMPILE_FLAGS}")
196+
target_compile_options(runcpp2_main PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
183197
target_link_libraries(runcpp2_main PRIVATE runcpp2 ssLogger ghc_filesystem)
184198
set_target_properties(runcpp2_main PROPERTIES OUTPUT_NAME "runcpp2")
185199

Src/Tests/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ add_executable(BuildsManagerTest "${CMAKE_CURRENT_LIST_DIR}/../runcpp2/BuildsMan
33
# "${CMAKE_CURRENT_LIST_DIR}/../Tests/BuildsManager/MockComponents.cpp")
44

55
target_include_directories(BuildsManagerTest PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../../Include")
6-
target_compile_options(BuildsManagerTest PRIVATE "${STANDARD_COMPILE_FLAGS}")
6+
target_compile_options(BuildsManagerTest PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
77
target_link_libraries(BuildsManagerTest PRIVATE ghc_filesystem CppOverride ssTest ssLogger)
88
target_compile_definitions(BuildsManagerTest PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1)
99

1010
add_executable(IncludeManagerTest "${CMAKE_CURRENT_LIST_DIR}/../runcpp2/IncludeManager.cpp"
1111
"${CMAKE_CURRENT_LIST_DIR}/IncludeManagerTest.cpp")
1212

1313
target_include_directories(IncludeManagerTest PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../../Include")
14-
target_compile_options(IncludeManagerTest PRIVATE "${STANDARD_COMPILE_FLAGS}")
14+
target_compile_options(IncludeManagerTest PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
1515
target_link_libraries(IncludeManagerTest PRIVATE ghc_filesystem CppOverride ssTest ssLogger)
1616
target_compile_definitions(IncludeManagerTest PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1)
1717

1818
function(create_data_test TEST_NAME)
1919
add_executable("${TEST_NAME}" "${CMAKE_CURRENT_LIST_DIR}/Data/${TEST_NAME}.cpp")
20-
target_compile_options("${TEST_NAME}" PRIVATE "${STANDARD_COMPILE_FLAGS}")
20+
target_compile_options("${TEST_NAME}" PRIVATE "${RUNCPP2_STANDARD_COMPILE_FLAGS}")
2121
target_compile_definitions("${TEST_NAME}" PRIVATE INTERNAL_RUNCPP2_UNIT_TESTS=1 TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES=1)
2222
target_link_libraries("${TEST_NAME}" PUBLIC runcpp2 ssTest)
2323

0 commit comments

Comments
 (0)