server: added if(BUILD_TESTING) checks for all test stuff, so buildroot doesn't built it

Dieser Commit ist enthalten in:
Reinder Feenstra 2024-02-19 08:41:09 +01:00
Ursprung ef57b4bc4b
Commit a1e8f03b04

Datei anzeigen

@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.9)
include(../shared/traintastic.cmake)
project(traintastic-server VERSION ${TRAINTASTIC_VERSION} DESCRIPTION "Traintastic server")
include(GNUInstallDirs)
include(CTest)
include(../shared/translations/traintastic-lang.cmake)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
@ -21,31 +22,27 @@ if(ENABLE_CLANG_TIDY)
endif()
add_executable(traintastic-server src/main.cpp src/options.hpp)
add_executable(traintastic-server-test test/main.cpp)
add_dependencies(traintastic-server traintastic-lang)
add_dependencies(traintastic-server-test traintastic-lang)
target_compile_definitions(traintastic-server-test PRIVATE -DTRAINTASTIC_TEST)
set_target_properties(traintastic-server PROPERTIES CXX_STANDARD 17)
set_target_properties(traintastic-server-test PROPERTIES CXX_STANDARD 17)
target_include_directories(traintastic-server PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
../shared/src)
target_include_directories(traintastic-server SYSTEM PRIVATE
../shared/thirdparty
thirdparty)
target_include_directories(traintastic-server-test PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
../shared/src)
target_include_directories(traintastic-server-test SYSTEM PRIVATE
../shared/thirdparty
thirdparty)
if(BUILD_TESTING)
add_executable(traintastic-server-test test/main.cpp)
add_dependencies(traintastic-server-test traintastic-lang)
target_compile_definitions(traintastic-server-test PRIVATE -DTRAINTASTIC_TEST)
set_target_properties(traintastic-server-test PROPERTIES CXX_STANDARD 17)
target_include_directories(traintastic-server-test PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
../shared/src)
target_include_directories(traintastic-server-test SYSTEM PRIVATE
../shared/thirdparty
thirdparty)
endif()
file(GLOB SOURCES
"src/board/*.hpp"
@ -215,7 +212,9 @@ if(LINUX)
add_definitions(-DHAS_LIBSYSTEMD)
list(APPEND SOURCES "src/os/linux/serialportlistimplsystemd.hpp" "src/os/linux/serialportlistimplsystemd.cpp")
target_link_libraries(traintastic-server PRIVATE PkgConfig::LIBSYSTEMD)
target_link_libraries(traintastic-server-test PRIVATE PkgConfig::LIBSYSTEMD)
if(BUILD_TESTING)
target_link_libraries(traintastic-server-test PRIVATE PkgConfig::LIBSYSTEMD)
endif()
endif()
else()
# socket CAN is only available on linux:
@ -228,7 +227,9 @@ if(WIN32)
file(GLOB SOURCES_WINDOWS "src/os/windows/*.hpp" "src/os/windows/*.cpp")
list(APPEND SOURCES ${SOURCES_WINDOWS} src/version.rc ../shared/gfx/appicon.rc)
target_link_libraries(traintastic-server PRIVATE bcrypt setupapi)
target_link_libraries(traintastic-server-test PRIVATE bcrypt setupapi)
if(BUILD_TESTING)
target_link_libraries(traintastic-server-test PRIVATE bcrypt setupapi)
endif()
endif()
### COMPILER ###
@ -243,11 +244,15 @@ else()
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
target_link_libraries(traintastic-server PRIVATE pthread)
target_link_libraries(traintastic-server-test PRIVATE pthread)
if(BUILD_TESTING)
target_link_libraries(traintastic-server-test PRIVATE pthread)
endif()
if(NOT APPLE)
target_link_libraries(traintastic-server PRIVATE stdc++fs)
target_link_libraries(traintastic-server-test PRIVATE stdc++fs)
if(BUILD_TESTING)
target_link_libraries(traintastic-server-test PRIVATE stdc++fs)
endif()
endif()
endif()
@ -257,7 +262,9 @@ if(WIN32 AND NOT MSVC)
# On MinGW ws2_32.dll needs explicit linking
# Also mswsock.dll is needed for AcceptEx() used by Boost.Asio
target_link_libraries(traintastic-server PRIVATE ws2_32 mswsock)
target_link_libraries(traintastic-server-test PRIVATE ws2_32 mswsock)
if(BUILD_TESTING)
target_link_libraries(traintastic-server-test PRIVATE ws2_32 mswsock)
endif()
endif()
# boost
@ -266,8 +273,10 @@ if(LINUX)
target_include_directories(traintastic-server SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(traintastic-server PRIVATE ${Boost_LIBRARIES})
target_include_directories(traintastic-server-test SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${Boost_LIBRARIES})
if(BUILD_TESTING)
target_include_directories(traintastic-server-test SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${Boost_LIBRARIES})
endif()
else()
add_definitions(
-DBOOST_ALL_NO_LIB
@ -294,7 +303,9 @@ else()
endif()
target_include_directories(traintastic-server SYSTEM PRIVATE thirdparty/boost)
target_include_directories(traintastic-server-test SYSTEM PRIVATE thirdparty/boost)
if(BUILD_TESTING)
target_include_directories(traintastic-server-test SYSTEM PRIVATE thirdparty/boost)
endif()
file(GLOB SOURCES_BOOST "thirdparty/boost/libs/program_options/src/*.cpp")
list(APPEND SOURCES ${SOURCES_BOOST})
@ -323,8 +334,10 @@ else()
endif()
target_include_directories(traintastic-server PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(traintastic-server PRIVATE ${ZLIB_LIBRARIES})
target_include_directories(traintastic-server-test PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${ZLIB_LIBRARIES})
if(BUILD_TESTING)
target_include_directories(traintastic-server-test PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${ZLIB_LIBRARIES})
endif()
# libarchive
if(WIN32)
@ -352,8 +365,10 @@ else()
endif()
target_include_directories(traintastic-server PRIVATE ${LibArchive_INCLUDE_DIRS})
target_link_libraries(traintastic-server PRIVATE ${LibArchive_LIBRARIES})
target_include_directories(traintastic-server-test PRIVATE ${LibArchive_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${LibArchive_LIBRARIES})
if(BUILD_TESTING)
target_include_directories(traintastic-server-test PRIVATE ${LibArchive_INCLUDE_DIRS})
target_link_libraries(traintastic-server-test PRIVATE ${LibArchive_LIBRARIES})
endif()
# liblua5.3
if(WIN32)
@ -383,13 +398,17 @@ else()
endif()
target_include_directories(traintastic-server PRIVATE ${LUA_INCLUDE_DIR})
target_link_libraries(traintastic-server PRIVATE ${LUA_LIBRARIES})
target_include_directories(traintastic-server-test PRIVATE ${LUA_INCLUDE_DIR})
target_link_libraries(traintastic-server-test PRIVATE ${LUA_LIBRARIES})
if(BUILD_TESTING)
target_include_directories(traintastic-server-test PRIVATE ${LUA_INCLUDE_DIR})
target_link_libraries(traintastic-server-test PRIVATE ${LUA_LIBRARIES})
endif()
### LIBRARIES END ###
target_sources(traintastic-server PRIVATE ${SOURCES})
target_sources(traintastic-server-test PRIVATE ${TEST_SOURCES} ${SOURCES})
if(BUILD_TESTING)
target_sources(traintastic-server-test PRIVATE ${TEST_SOURCES} ${SOURCES})
endif()
### CODE COVERAGE ###
@ -402,16 +421,21 @@ install(TARGETS traintastic-server
RUNTIME DESTINATION "/opt/traintastic/bin/"
)
if(INSTALL_TRANSLATIONS)
install(FILES ${TRANSLATION_FILES} DESTINATION "/opt/traintastic/translations")
endif()
if(INSTALL_SYSTEMD_SERVICE)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/debian/traintastic-server.service DESTINATION "/lib/systemd/system")
endif()
### TEST ###
include(CTest)
include(Catch)
target_include_directories(traintastic-server-test PRIVATE thirdparty/catch2)
catch_discover_tests(traintastic-server-test)
if(BUILD_TESTING)
include(Catch)
target_include_directories(traintastic-server-test PRIVATE thirdparty/catch2)
catch_discover_tests(traintastic-server-test)
endif()
### Doxygen ###