Mercurial > hg > orthanc
changeset 6232:46cd2a84ffdf
added new CMake option BUILD_UNIT_TESTS
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 09 Jul 2025 08:21:25 +0200 |
parents | c13cc738bceb |
children | a93598f96cc1 |
files | NEWS OrthancFramework/SharedLibrary/CMakeLists.txt OrthancServer/CMakeLists.txt |
diffstat | 3 files changed, 84 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Tue Jul 08 18:52:19 2025 +0200 +++ b/NEWS Wed Jul 09 08:21:25 2025 +0200 @@ -48,6 +48,7 @@ * If the "RegisteredUsers" configuration option is present but empty, Orthanc does not create the default user "orthanc" anymore. +* Added new CMake option "-DBUILD_UNIT_TESTS=ON" to disable the building of unit tests
--- a/OrthancFramework/SharedLibrary/CMakeLists.txt Tue Jul 08 18:52:19 2025 +0200 +++ b/OrthancFramework/SharedLibrary/CMakeLists.txt Wed Jul 09 08:21:25 2025 +0200 @@ -45,7 +45,8 @@ # adds CMAKE_INSTALL_PREFIX to the include_directories(), which causes # issues if re-building the shared library after install! set(ORTHANC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "") -SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") +set(BUILD_UNIT_TESTS ON CACHE BOOL "Whether to build the unit tests (new in Orthanc 1.12.9)") +set(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") set(BUILD_SHARED_LIBRARY ON CACHE BOOL "Whether to build a shared library instead of a static library") set(ORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES "" CACHE STRING "Additional libraries to link against, separated by whitespaces, typically needed if building the static library (a common minimal value is \"boost_filesystem boost_iostreams boost_locale boost_regex boost_thread jsoncpp pugixml uuid\")") @@ -75,7 +76,6 @@ set(ENABLE_DCMTK ON) set(ENABLE_DCMTK_TRANSCODING ON) -set(ENABLE_GOOGLE_TEST ON) set(ENABLE_JPEG ON) set(ENABLE_LOCALE ON) set(ENABLE_LUA ON) @@ -83,6 +83,13 @@ set(ENABLE_PUGIXML ON) set(ENABLE_ZLIB ON) +if (BUILD_UNIT_TESTS) + set(ENABLE_GOOGLE_TEST ON) +else() + set(ENABLE_GOOGLE_TEST OFF) +endif() + + if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or asm.js set(BOOST_LOCALE_BACKEND "libiconv") @@ -504,7 +511,8 @@ ## Compile the unit tests ##################################################################### -if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") +if (BUILD_UNIT_TESTS AND + NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") include(ExternalProject) if (CMAKE_TOOLCHAIN_FILE) @@ -544,6 +552,7 @@ -DUNIT_TESTS_WITH_HTTP_CONNEXIONS:BOOL=${UNIT_TESTS_WITH_HTTP_CONNEXIONS} -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE:BOOL=${USE_GOOGLE_TEST_DEBIAN_PACKAGE} -DUSE_SYSTEM_GOOGLE_TEST:BOOL=${USE_SYSTEM_GOOGLE_TEST} + -DBUILD_UNIT_TESTS:BOOL=${BUILD_UNIT_TESTS} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
--- a/OrthancServer/CMakeLists.txt Tue Jul 08 18:52:19 2025 +0200 +++ b/OrthancServer/CMakeLists.txt Wed Jul 09 08:21:25 2025 +0200 @@ -63,6 +63,7 @@ SET(BUILD_HOUSEKEEPER ON CACHE BOOL "Whether to build the Housekeeper plugin") SET(BUILD_DELAYED_DELETION ON CACHE BOOL "Whether to build the DelayedDeletion plugin") SET(BUILD_MULTITENANT_DICOM ON CACHE BOOL "Whether to build the MultitenantDicom plugin") +SET(BUILD_UNIT_TESTS ON CACHE BOOL "Whether to build the unit tests (new in Orthanc 1.12.9)") SET(ENABLE_PLUGINS ON CACHE BOOL "Enable plugins") SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") @@ -76,6 +77,10 @@ set(ENABLE_PROTOBUF_COMPILER ON) endif() +if (NOT BUILD_UNIT_TESTS) + set(ENABLE_GOOGLE_TEST OFF) +endif() + include(${CMAKE_SOURCE_DIR}/../OrthancFramework/Resources/CMake/VisualStudioPrecompiledHeaders.cmake) include(${CMAKE_SOURCE_DIR}/../OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake) @@ -162,37 +167,39 @@ ) -set(ORTHANC_FRAMEWORK_UNIT_TESTS - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/DicomMapTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FileStorageTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FrameworkTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ImageTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/JobsTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/JpegLosslessTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/LoggingTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/LuaTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/MemoryCacheTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/RestApiTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/SQLiteChromiumTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/SQLiteTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/StreamTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ToolboxTests.cpp - ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ZipTests.cpp - ) +if (BUILD_UNIT_TESTS) + set(ORTHANC_FRAMEWORK_UNIT_TESTS + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/DicomMapTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FileStorageTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FrameworkTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ImageTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/JobsTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/JpegLosslessTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/LoggingTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/LuaTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/MemoryCacheTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/RestApiTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/SQLiteChromiumTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/SQLiteTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/StreamTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ToolboxTests.cpp + ${CMAKE_SOURCE_DIR}/../OrthancFramework/UnitTestsSources/ZipTests.cpp + ) -set(ORTHANC_SERVER_UNIT_TESTS - ${CMAKE_SOURCE_DIR}/UnitTestsSources/DatabaseLookupTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/LuaServerTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/PluginsTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerConfigTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerIndexTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerJobsTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/SizeOfTests.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/UnitTestsMain.cpp - ${CMAKE_SOURCE_DIR}/UnitTestsSources/VersionsTests.cpp - ) + set(ORTHANC_SERVER_UNIT_TESTS + ${CMAKE_SOURCE_DIR}/UnitTestsSources/DatabaseLookupTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/LuaServerTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/PluginsTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerConfigTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerIndexTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/ServerJobsTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/SizeOfTests.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/UnitTestsMain.cpp + ${CMAKE_SOURCE_DIR}/UnitTestsSources/VersionsTests.cpp + ) +endif() if (ENABLE_PLUGINS) @@ -211,9 +218,11 @@ ${CMAKE_SOURCE_DIR}/Plugins/Engine/PluginsManager.cpp ) - list(APPEND ORTHANC_SERVER_UNIT_TESTS - ${CMAKE_SOURCE_DIR}/UnitTestsSources/PluginsTests.cpp - ) + if (BUILD_UNIT_TESTS) + list(APPEND ORTHANC_SERVER_UNIT_TESTS + ${CMAKE_SOURCE_DIR}/UnitTestsSources/PluginsTests.cpp + ) + endif() endif() @@ -334,16 +343,19 @@ endif() -if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) - add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) +if (BUILD_UNIT_TESTS) + add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) + if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) + add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) + else() + add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) + endif() else() - add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) + add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) endif() add_definitions( - -DORTHANC_BUILD_UNIT_TESTS=1 - # Macros for the plugins -DHAS_ORTHANC_EXCEPTION=0 ) @@ -371,9 +383,11 @@ "PrecompiledHeadersServer.h" "${CMAKE_SOURCE_DIR}/Sources/PrecompiledHeadersServer.cpp" ORTHANC_SERVER_SOURCES ORTHANC_SERVER_PCH) - ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( - "PrecompiledHeadersUnitTests.h" "${CMAKE_SOURCE_DIR}/UnitTestsSources/PrecompiledHeadersUnitTests.cpp" - ORTHANC_SERVER_UNIT_TESTS ORTHANC_UNIT_TESTS_PCH) + if (BUILD_UNIT_TESTS) + ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( + "PrecompiledHeadersUnitTests.h" "${CMAKE_SOURCE_DIR}/UnitTestsSources/PrecompiledHeadersUnitTests.cpp" + ORTHANC_SERVER_UNIT_TESTS ORTHANC_UNIT_TESTS_PCH) + endif() endif() @@ -477,22 +491,24 @@ ## Build the unit tests ##################################################################### -add_executable(UnitTests - ${GOOGLE_TEST_SOURCES} - ${ORTHANC_UNIT_TESTS_PCH} - ${ORTHANC_FRAMEWORK_UNIT_TESTS} - ${ORTHANC_SERVER_UNIT_TESTS} - ${BOOST_EXTENDED_SOURCES} - ) +if (BUILD_UNIT_TESTS) + add_executable(UnitTests + ${GOOGLE_TEST_SOURCES} + ${ORTHANC_UNIT_TESTS_PCH} + ${ORTHANC_FRAMEWORK_UNIT_TESTS} + ${ORTHANC_SERVER_UNIT_TESTS} + ${BOOST_EXTENDED_SOURCES} + ) -DefineSourceBasenameForTarget(UnitTests) + DefineSourceBasenameForTarget(UnitTests) -target_link_libraries(UnitTests - ServerLibrary - CoreLibrary - ${DCMTK_LIBRARIES} - ${GOOGLE_TEST_LIBRARIES} - ) + target_link_libraries(UnitTests + ServerLibrary + CoreLibrary + ${DCMTK_LIBRARIES} + ${GOOGLE_TEST_LIBRARIES} + ) +endif() #####################################################################