Mercurial > hg > orthanc-transfers
annotate CMakeLists.txt @ 14:e1b24c9a9bd8
patch Orthanc 1.5.6
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 04 Mar 2019 16:48:25 +0100 |
parents | df314d38a4e0 |
children | 3eb5ccd37e31 |
rev | line source |
---|---|
0 | 1 # Orthanc - A Lightweight, RESTful DICOM Store |
9 | 2 # Copyright (C) 2018-2019 Osimis S.A., Belgium |
0 | 3 # |
4 # This program is free software: you can redistribute it and/or | |
5 # modify it under the terms of the GNU Affero General Public License | |
6 # as published by the Free Software Foundation, either version 3 of | |
7 # the License, or (at your option) any later version. | |
8 # | |
9 # This program is distributed in the hope that it will be useful, but | |
10 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 # Affero General Public License for more details. | |
13 # | |
14 # You should have received a copy of the GNU Affero General Public License | |
15 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | |
17 | |
18 cmake_minimum_required(VERSION 2.8) | |
1 | 19 project(OrthancTransfers) |
0 | 20 |
21 set(ORTHANC_PLUGIN_VERSION "mainline") | |
22 | |
23 if (ORTHANC_PLUGIN_VERSION STREQUAL "mainline") | |
24 set(ORTHANC_FRAMEWORK_VERSION "mainline") | |
25 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") | |
26 else() | |
13
df314d38a4e0
use Orthanc Framework 1.5.6
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
9
diff
changeset
|
27 set(ORTHANC_FRAMEWORK_VERSION "1.5.6") |
0 | 28 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") |
14 | 29 |
30 # diff --new-file -urEb Orthanc-1.5.6.orig/ Orthanc-1.5.6 > orthanc-1.5.6.patch | |
31 set(ORTHANC_FRAMEWORK_PATCH "${CMAKE_SOURCE_DIR}/Resources/Patches/orthanc-1.5.6.patch") | |
0 | 32 endif() |
33 | |
34 | |
35 # Parameters of the build | |
36 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")") | |
37 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"") | |
38 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"") | |
7
151e29acbb13
use orthanc sdk 1.4.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1
diff
changeset
|
39 set(ORTHANC_SDK_VERSION "1.4.2" CACHE STRING "Version of the Orthanc plugin SDK to use, if not using the system version (can be \"1.4.2\" or \"framework\")") |
0 | 40 |
41 # Advanced parameters to fine-tune linking against system libraries | |
42 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK") | |
43 | |
44 | |
45 # Download and setup the Orthanc framework | |
46 include(${CMAKE_CURRENT_LIST_DIR}/Resources/Orthanc/DownloadOrthancFramework.cmake) | |
47 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) | |
48 | |
49 set(HAS_EMBEDDED_RESOURCES ON) | |
50 set(ENABLE_LOCALE OFF) # Disable support for locales (notably in Boost) | |
51 set(ENABLE_GOOGLE_TEST ON) | |
52 set(ENABLE_MODULE_IMAGES OFF) | |
53 set(ENABLE_MODULE_JOBS OFF) | |
54 set(ENABLE_MODULE_DICOM OFF) | |
55 set(ENABLE_ZLIB ON) | |
56 | |
57 include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake) | |
58 include_directories(${ORTHANC_ROOT}) | |
59 | |
60 | |
14 | 61 # Possibly patch the Orthanc framework |
62 if (DEFINED ORTHANC_FRAMEWORK_PATCH AND | |
63 NOT EXISTS "${ORTHANC_ROOT}/patched") | |
64 execute_process( | |
65 COMMAND ${PATCH_EXECUTABLE} -p0 -N -i ${ORTHANC_FRAMEWORK_PATCH} | |
66 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | |
67 RESULT_VARIABLE Failure | |
68 ) | |
69 | |
70 if (Failure) | |
71 message(FATAL_ERROR "Error while patching a file") | |
72 endif() | |
73 endif() | |
74 | |
75 | |
0 | 76 # Check that the Orthanc SDK headers are available |
77 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK) | |
78 if (ORTHANC_SDK_VERSION STREQUAL "1.4.2") | |
79 include_directories(${CMAKE_CURRENT_LIST_DIR}/Resources/Orthanc/Sdk-1.4.2) | |
80 elseif (ORTHANC_SDK_VERSION STREQUAL "framework") | |
81 include_directories(${ORTHANC_ROOT}/Plugins/Include) | |
82 else() | |
83 message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}") | |
84 endif() | |
85 else () | |
86 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCDatabasePlugin.h HAVE_ORTHANC_H) | |
87 if (NOT HAVE_ORTHANC_H) | |
88 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK") | |
89 endif() | |
90 endif() | |
91 | |
92 | |
93 | |
94 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
95 execute_process( | |
96 COMMAND | |
97 ${PYTHON_EXECUTABLE} ${ORTHANC_ROOT}/Resources/WindowsResources.py | |
1 | 98 ${ORTHANC_PLUGIN_VERSION} "TransfersAccelerator index plugin" OrthancTransfers.dll |
0 | 99 "TransfersAccelerator as a database back-end to Orthanc (index)" |
100 ERROR_VARIABLE Failure | |
101 OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc | |
102 ) | |
103 | |
104 if (Failure) | |
105 message(FATAL_ERROR "Error while computing the version information: ${Failure}") | |
106 endif() | |
107 | |
108 set(PLUGIN_RESOURCES ${AUTOGENERATED_DIR}/Version.rc) | |
109 endif() | |
110 | |
111 | |
112 | |
113 EmbedResources( | |
114 ORTHANC_EXPLORER ${CMAKE_SOURCE_DIR}/Resources/OrthancExplorer.js | |
115 ) | |
116 | |
117 set(FRAMEWORK_SOURCES | |
118 Framework/DicomInstanceInfo.cpp | |
119 Framework/DownloadArea.cpp | |
120 Framework/HttpQueries/DetectTransferPlugin.cpp | |
121 Framework/HttpQueries/HttpQueriesQueue.cpp | |
122 Framework/HttpQueries/HttpQueriesRunner.cpp | |
123 Framework/OrthancInstancesCache.cpp | |
124 Framework/PullMode/BucketPullQuery.cpp | |
125 Framework/PullMode/PullJob.cpp | |
126 Framework/PushMode/ActivePushTransactions.cpp | |
127 Framework/PushMode/BucketPushQuery.cpp | |
128 Framework/PushMode/PushJob.cpp | |
129 Framework/SourceDicomInstance.cpp | |
130 Framework/StatefulOrthancJob.cpp | |
131 Framework/TransferBucket.cpp | |
132 Framework/TransferQuery.cpp | |
133 Framework/TransferScheduler.cpp | |
134 Framework/TransferToolbox.cpp | |
135 ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp | |
136 ) | |
137 | |
138 | |
139 | |
1 | 140 add_library(OrthancTransfers SHARED |
0 | 141 Plugin/Plugin.cpp |
142 Plugin/PluginContext.cpp | |
143 | |
144 ${FRAMEWORK_SOURCES} | |
145 ${PLUGIN_RESOURCES} | |
146 ${ORTHANC_CORE_SOURCES} | |
147 ${AUTOGENERATED_SOURCES} | |
148 ) | |
149 | |
150 message("Setting the version of the library to ${ORTHANC_PLUGIN_VERSION}") | |
151 | |
152 add_definitions( | |
153 -DORTHANC_PLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}" | |
154 -DHAS_ORTHANC_EXCEPTION=1 | |
155 ) | |
156 | |
1 | 157 set_target_properties(OrthancTransfers PROPERTIES |
0 | 158 VERSION ${ORTHANC_PLUGIN_VERSION} |
159 SOVERSION ${ORTHANC_PLUGIN_VERSION} | |
160 COMPILE_FLAGS -DORTHANC_ENABLE_LOGGING_PLUGIN=1 | |
161 ) | |
162 | |
163 install( | |
1 | 164 TARGETS OrthancTransfers |
0 | 165 RUNTIME DESTINATION lib # Destination for Windows |
166 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | |
167 ) | |
168 | |
169 add_executable(UnitTests | |
170 UnitTests/UnitTestsMain.cpp | |
171 | |
172 ${FRAMEWORK_SOURCES} | |
173 ${ORTHANC_CORE_SOURCES} | |
174 ${GOOGLE_TEST_SOURCES} | |
175 ) | |
176 | |
177 target_link_libraries(UnitTests ${GOOGLE_TEST_LIBRARIES}) | |
178 set_target_properties(UnitTests PROPERTIES | |
179 COMPILE_FLAGS -DORTHANC_ENABLE_LOGGING_PLUGIN=0 | |
180 ) |