mirror of
https://github.com/USCiLab/cereal.git
synced 2025-07-20 21:32:02 +02:00

* cleanup cmake files to be a little more moderen keep the source tree free of build artifacts cmakelint the cmake files too * fix cmake setup errors on CI fix APPLE clang builds too * CI needs support for realy history cmake V3.6 fix typo in cmake files using add_test() commnds * One step more to use modern cmake Prevent to modifiy compile and linker FLAGS and to set global includes pathes * fix CI build problems with older cmake versions prepare cleanup cmake list file * final cleanup use Config.cmake.in and install hole cmake config files * Fix cpp17 PORTABILITY_TEST linker problem add missed target_link_libraries() * hopefully prevent windows test problems
40 lines
1.6 KiB
CMake
40 lines
1.6 KiB
CMake
file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
|
|
|
|
# Build all of the non-special tests
|
|
foreach(TEST_SOURCE ${TESTS})
|
|
message(STATUS ${TEST_SOURCE})
|
|
|
|
string(REPLACE ".cpp" "" TEST_TARGET "${TEST_SOURCE}")
|
|
set(TEST_TARGET "test_cpp17_${TEST_TARGET}")
|
|
|
|
add_executable(${TEST_TARGET} ${TEST_SOURCE})
|
|
target_link_libraries(${TEST_TARGET} ${CEREAL_THREAD_LIBS})
|
|
add_test(NAME "${TEST_TARGET}" COMMAND "${TEST_TARGET}")
|
|
|
|
# If we are on a 64-bit machine, create an extra 32-bit version of the test if portability testing is enabled
|
|
if((NOT MSVC) AND (${CMAKE_SIZEOF_VOID_P} EQUAL 8) AND (NOT SKIP_PORTABILITY_TEST))
|
|
add_executable(${TEST_TARGET}_32 ${TEST_SOURCE})
|
|
target_link_libraries(${TEST_TARGET}_32 ${CEREAL_THREAD_LIBS})
|
|
set_target_properties(${TEST_TARGET}_32 PROPERTIES
|
|
COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
|
|
add_test(NAME "${TEST_TARGET}_32" COMMAND "${TEST_TARGET}_32")
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
if(NOT MSVC)
|
|
# add tests to coverage
|
|
foreach(TEST_SOURCE ${TESTS})
|
|
string(REPLACE ".cpp" "" COVERAGE_TARGET "${TEST_SOURCE}")
|
|
set(COVERAGE_TARGET "coverage_cpp17_${COVERAGE_TARGET}")
|
|
|
|
add_dependencies(coverage ${COVERAGE_TARGET})
|
|
|
|
add_executable(${COVERAGE_TARGET} EXCLUDE_FROM_ALL ${TEST_SOURCE})
|
|
set_target_properties(${COVERAGE_TARGET} PROPERTIES COMPILE_FLAGS "-coverage")
|
|
set_target_properties(${COVERAGE_TARGET} PROPERTIES LINK_FLAGS "-coverage")
|
|
set_target_properties(${COVERAGE_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/coverage")
|
|
target_link_libraries(${COVERAGE_TARGET} ${CEREAL_THREAD_LIBS})
|
|
endforeach()
|
|
endif()
|