Skip to content

Commit

Permalink
Only build tests if testing is enabled
Browse files Browse the repository at this point in the history
This commit ensures that tests are only compiled by default if
BUILD_TESTING is enabled when generating the CMake configuration. There
should be no change in behavior, as BUILD_TESTING defaults to ON.
  • Loading branch information
Technius committed Dec 11, 2023
1 parent 9f0c12d commit fb3fcf2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
21 changes: 4 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
cmake_minimum_required(VERSION 3.0.2)
project("sparta")

include(CTest)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
include(Commons)

Expand Down Expand Up @@ -54,20 +55,6 @@ export(TARGETS sparta FILE sparta_target.cmake)
###################################################
# test
###################################################
file(GLOB test
"test/*.cpp"
)

include(CTest)
# ${test} contains all paths to the test cpps
foreach(testfile ${test})
# ${testfile} is in the format of test/SomeTest.cpp
string(REPLACE ".cpp" "_test" no_ext_name ${testfile})
# ${no_ext_name} is in the format of test/SomeTest_test
get_filename_component(test_bin ${no_ext_name} NAME)
# ${test_bin} is in the format of SomeTest_test
add_executable(${test_bin} ${testfile})
target_link_libraries(${test_bin} PRIVATE sparta gmock_main)
add_test(NAME ${testfile} COMMAND ${test_bin})
endforeach()

if (BUILD_TESTING)
add_subdirectory(test)
endif()
14 changes: 14 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
file(GLOB test
"*.cpp"
)

foreach(testfile ${test})
# ${testfile} is in the format of test/SomeTest.cpp
string(REPLACE ".cpp" "_test" no_ext_name ${testfile})
# ${no_ext_name} is in the format of test/SomeTest_test
get_filename_component(test_bin ${no_ext_name} NAME)
# ${test_bin} is in the format of SomeTest_test
add_executable(${test_bin} ${testfile})
target_link_libraries(${test_bin} PRIVATE sparta gmock_main)
add_test(NAME ${testfile} COMMAND ${test_bin})
endforeach()

0 comments on commit fb3fcf2

Please sign in to comment.