1366
|
1 cmake_minimum_required(VERSION 2.8.3)
|
|
2 project(OrthancStone)
|
|
3
|
|
4 include(../Resources/CMake/OrthancStoneParameters.cmake)
|
|
5
|
|
6 set(ENABLE_STONE_DEPRECATED ON) # Need deprecated classes for these samples
|
|
7
|
|
8 if (OPENSSL_NO_CAPIENG)
|
|
9 add_definitions(-DOPENSSL_NO_CAPIENG=1)
|
|
10 endif()
|
|
11
|
|
12 set(ENABLE_SDL OFF CACHE BOOL "Target SDL Native application")
|
|
13 set(ENABLE_WASM OFF CACHE BOOL "Target WASM application")
|
|
14 set(ENABLE_UNITTESTS ON
|
|
15
|
|
16
|
|
17 if (ENABLE_WASM)
|
|
18 set(ORTHANC_SANDBOXED ON)
|
|
19 if (ENABLE_SDL)
|
|
20 message("ENABLE_SDL is only supported in native (incompatible with ENABLE_WASM)")
|
|
21 endif()
|
|
22 set(ENABLE_NATIVE OFF)
|
|
23 set(ORTHANC_SANDBOXED OFF)
|
|
24 set(ENABLE_CRYPTO_OPTIONS ON)
|
|
25 set(ENABLE_GOOGLE_TEST ON)
|
|
26 set(ENABLE_WEB_CLIENT ON)
|
1397
|
27 elseif (ENABLE_SDL)
|
1366
|
28 set(ENABLE_NATIVE ON)
|
|
29 set(ORTHANC_SANDBOXED OFF)
|
|
30 set(ENABLE_CRYPTO_OPTIONS ON)
|
|
31 set(ENABLE_GOOGLE_TEST ON)
|
|
32 set(ENABLE_WEB_CLIENT ON)
|
|
33 else()
|
|
34 set(ENABLE_NATIVE ON)
|
|
35 set(ENABLE_OPENGL OFF)
|
|
36 endif()
|
|
37
|
|
38 #####################################################################
|
|
39 ## Configuration for Orthanc
|
|
40 #####################################################################
|
|
41
|
|
42 if (ORTHANC_STONE_VERSION STREQUAL "mainline")
|
|
43 set(ORTHANC_FRAMEWORK_VERSION "mainline")
|
|
44 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
|
|
45 else()
|
|
46 set(ORTHANC_FRAMEWORK_VERSION "1.4.1")
|
|
47 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
|
|
48 endif()
|
|
49
|
|
50 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")")
|
|
51 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"")
|
|
52 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"")
|
|
53
|
|
54 add_definitions(
|
|
55 -DORTHANC_ENABLE_LOGGING_PLUGIN=0
|
|
56 )
|
|
57
|
|
58 #####################################################################
|
|
59 ## Build a static library containing the Orthanc Stone framework
|
|
60 #####################################################################
|
|
61
|
|
62 LIST(APPEND ORTHANC_BOOST_COMPONENTS program_options)
|
|
63
|
|
64 include(../Resources/CMake/OrthancStoneConfiguration.cmake)
|
|
65
|
|
66 add_library(OrthancStone STATIC
|
|
67 ${ORTHANC_STONE_SOURCES}
|
|
68 )
|
|
69
|
|
70 include_directories(${ORTHANC_STONE_ROOT})
|
|
71
|
|
72 #####################################################################
|
|
73 ## Build the unit tests
|
|
74 #####################################################################
|
|
75
|
|
76 if (ENABLE_UNITTESTS)
|
|
77 add_executable(UnitTests
|
|
78 ${GOOGLE_TEST_SOURCES}
|
|
79 ${ORTHANC_STONE_ROOT}/UnitTestsSources/GenericToolboxTests.cpp
|
|
80 ${ORTHANC_STONE_ROOT}/UnitTestsSources/ImageToolboxTests.cpp
|
|
81 ${ORTHANC_STONE_ROOT}/UnitTestsSources/PixelTestPatternsTests.cpp
|
|
82 ${ORTHANC_STONE_ROOT}/UnitTestsSources/TestCommands.cpp
|
|
83 ${ORTHANC_STONE_ROOT}/UnitTestsSources/TestMessageBroker.cpp
|
|
84 ${ORTHANC_STONE_ROOT}/UnitTestsSources/TestStrategy.cpp
|
|
85 ${ORTHANC_STONE_ROOT}/UnitTestsSources/TestStructureSet.cpp
|
|
86 ${ORTHANC_STONE_ROOT}/UnitTestsSources/UnitTestsMain.cpp
|
|
87 )
|
|
88
|
|
89 target_link_libraries(UnitTests OrthancStone)
|
|
90
|
|
91 add_custom_command(
|
|
92 TARGET UnitTests
|
|
93 POST_BUILD
|
|
94 COMMAND ${CMAKE_COMMAND} -E copy
|
|
95 "${ORTHANC_STONE_ROOT}/UnitTestsSources/72c773ac-5059f2c4-2e6a9120-4fd4bca1-45701661.json"
|
|
96 "$<TARGET_FILE_DIR:UnitTests>/72c773ac-5059f2c4-2e6a9120-4fd4bca1-45701661.json"
|
|
97 )
|
|
98
|
|
99 endif()
|
|
100
|
|
101 #####################################################################
|
|
102 ## Generate the documentation if Doxygen is present
|
|
103 #####################################################################
|
|
104
|
|
105 find_package(Doxygen)
|
|
106 if (DOXYGEN_FOUND)
|
|
107 configure_file(
|
|
108 ${ORTHANC_STONE_ROOT}/Resources/OrthancStone.doxygen
|
|
109 ${CMAKE_CURRENT_BINARY_DIR}/OrthancStone.doxygen
|
|
110 @ONLY)
|
|
111
|
|
112 add_custom_target(doc
|
|
113 ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/OrthancStone.doxygen
|
|
114 COMMENT "Generating documentation with Doxygen" VERBATIM
|
|
115 )
|
|
116 else()
|
|
117 message("Doxygen not found. The documentation will not be built.")
|
|
118 endif()
|