annotate CMakeLists.txt @ 123:8befb35b5e42

back to mainline
author Alain Mazy <am@osimis.io>
date Mon, 18 Sep 2023 16:36:24 +0200
parents db60c361e395
children 5a6ff0c93cf4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 # Advanced authorization plugin for Orthanc
68
1a13c4fbc9a1 copyrights
Alain Mazy <am@osimis.io>
parents: 53
diff changeset
2 # Copyright (C) 2017-2023 Osimis S.A., Belgium
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 # This program is free software: you can redistribute it and/or
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 # modify it under the terms of the GNU Affero General Public License
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 # as published by the Free Software Foundation, either version 3 of
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 # the License, or (at your option) any later version.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 # This program is distributed in the hope that it will be useful, but
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 # Affero General Public License for more details.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 # You should have received a copy of the GNU Affero General Public License
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 cmake_minimum_required(VERSION 2.8)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 project(OrthancAuthorization)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
123
8befb35b5e42 back to mainline
Alain Mazy <am@osimis.io>
parents: 122
diff changeset
22 set(ORTHANC_PLUGIN_VERSION "mainline")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
23
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
24 if (ORTHANC_PLUGIN_VERSION STREQUAL "mainline")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
25 set(ORTHANC_FRAMEWORK_VERSION "mainline")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
26 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
27 else()
109
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
28 # TODO: switch to 1.12.2 once available
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
29 set(ORTHANC_FRAMEWORK_VERSION "mainline")
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
30 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
31 endif()
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 # Parameters of the build
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
36 set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
37 set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
38 set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"")
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 # Advanced parameters to fine-tune linking against system libraries
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK")
69
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
42 set(ORTHANC_SDK_VERSION "1.11.3" CACHE STRING "Version of the Orthanc plugin SDK to use, if not using the system version (can be \"1.3.1\" \"1.11.3\")")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
43
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
44 # Download and setup the Orthanc framework
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
45 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
47 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
47
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
48 if (ORTHANC_FRAMEWORK_USE_SHARED)
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
49 include(FindBoost)
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
50 find_package(Boost COMPONENTS regex system)
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
51
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
52 if (NOT Boost_FOUND)
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
53 message(FATAL_ERROR "Unable to locate Boost on this system")
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
54 endif()
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
55
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
56 link_libraries(${Boost_LIBRARIES} jsoncpp)
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
57 endif()
28d7d7598fdb sync + no more need of "-DORTHANC_FRAMEWORK_ADDITIONAL_LIBRARIES" to dynamically link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 46
diff changeset
58
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
59 link_libraries(${ORTHANC_FRAMEWORK_LIBRARIES})
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
60
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
61 set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test")
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
62 set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)")
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
63 mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
64 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/GoogleTestConfiguration.cmake)
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
65
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
66 else()
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 37
diff changeset
67 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkParameters.cmake)
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
68
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
69 set(ENABLE_LOCALE OFF) # Disable support for locales (notably in Boost)
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
70 set(ENABLE_GOOGLE_TEST ON)
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
71 set(ENABLE_MODULE_IMAGES OFF)
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
72 set(ENABLE_MODULE_JOBS OFF)
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
73 set(ENABLE_MODULE_DICOM OFF)
69
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
74 set(ENABLE_WEB_CLIENT ON)
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
75
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 37
diff changeset
76 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
49
a749092170ef improved CMakeLists.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 47
diff changeset
77 include_directories(${ORTHANC_FRAMEWORK_ROOT})
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
78 endif()
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
79
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
80
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
81 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 # Check that the Orthanc SDK headers are available
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK)
69
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
86 if (ORTHANC_SDK_VERSION STREQUAL "1.3.1")
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
87 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.3.1)
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
88 elseif (ORTHANC_SDK_VERSION STREQUAL "1.11.3")
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
89 include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.11.3)
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
90 else()
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
91 message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}")
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
92 endif()
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
93
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 else ()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 if (NOT HAVE_ORTHANC_H)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 link_libraries(rt)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 execute_process(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 COMMAND
3
52e041c8584a resources for windows
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
109 ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Resources/WindowsResources.py
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
110 ${ORTHANC_PLUGIN_VERSION} "OrthancAuthorization" OrthancAuthorization.dll "Advanced authorization plugin for Orthanc"
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 ERROR_VARIABLE Failure
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 )
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 if (Failure)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 message(FATAL_ERROR "Error while computing the version information: ${Failure}")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 list(APPEND AUTOGENERATED_SOURCES ${AUTOGENERATED_DIR}/Version.rc)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 if (APPLE)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreFoundation")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework CoreFoundation")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 add_definitions(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 -DHAS_ORTHANC_EXCEPTION=1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 -DORTHANC_ENABLE_LOGGING_PLUGIN=1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 )
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
132 set(ADDITIONAL_RESOURCES
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
133 DEFAULT_CONFIGURATION ${CMAKE_SOURCE_DIR}/Plugin/DefaultConfiguration.json
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
134 )
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
135
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
136 EmbedResources(
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
137 --no-upcase-check
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
138 ${ADDITIONAL_RESOURCES}
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
139 )
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
140
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
141 # As the embedded resources are shared by both the "UnitTests" and the
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
142 # "OrthancAuthorization" targets, avoid race conditions in the code
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
143 # generation by adding a target between them
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
144 add_custom_target(
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
145 AutogeneratedTarget
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
146 DEPENDS
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
147 ${AUTOGENERATED_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
148 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
149
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
150 set(PLUGIN_SOURCES
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 ${CMAKE_SOURCE_DIR}/Plugin/AccessedResource.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 ${CMAKE_SOURCE_DIR}/Plugin/AssociativeArray.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 ${CMAKE_SOURCE_DIR}/Plugin/AuthorizationParserBase.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 ${CMAKE_SOURCE_DIR}/Plugin/AuthorizationWebService.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 ${CMAKE_SOURCE_DIR}/Plugin/CachedAuthorizationService.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 ${CMAKE_SOURCE_DIR}/Plugin/DefaultAuthorizationParser.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 ${CMAKE_SOURCE_DIR}/Plugin/Enumerations.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 ${CMAKE_SOURCE_DIR}/Plugin/MemoryCache.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 ${CMAKE_SOURCE_DIR}/Plugin/OrthancResource.cpp
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
160 ${CMAKE_SOURCE_DIR}/Plugin/PermissionParser.cpp
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 ${CMAKE_SOURCE_DIR}/Plugin/Plugin.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 ${CMAKE_SOURCE_DIR}/Plugin/ResourceHierarchyCache.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 ${CMAKE_SOURCE_DIR}/Plugin/Token.cpp
34
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 32
diff changeset
164 ${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginCppWrapper.cpp
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
165 ${ORTHANC_CORE_SOURCES}
3
52e041c8584a resources for windows
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
166 ${AUTOGENERATED_SOURCES}
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
167 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
168
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
170 add_library(OrthancAuthorization SHARED
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
171 ${PLUGIN_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
172 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
173
109
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
174 DefineSourceBasenameForTarget(OrthancAuthorization)
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
175
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
176 add_dependencies(OrthancAuthorization AutogeneratedTarget)
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
178 message("Setting the version of the plugin to ${ORTHANC_PLUGIN_VERSION}")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
179 add_definitions(-DORTHANC_PLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}")
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 set_target_properties(OrthancAuthorization PROPERTIES
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
182 VERSION ${ORTHANC_PLUGIN_VERSION}
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
183 SOVERSION ${ORTHANC_PLUGIN_VERSION})
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 install(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 TARGETS OrthancAuthorization
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 RUNTIME DESTINATION lib # Destination for Windows
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 )
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
190
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
191 add_executable(UnitTests
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
192 ${PLUGIN_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
193 ${ORTHANC_CORE_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
194 ${GOOGLE_TEST_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
195 UnitTestsSources/UnitTestsMain.cpp
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
196 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
197
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
198 # add_dependencies(UnitTests AutogeneratedTarget)
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
199
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
200 target_include_directories(UnitTests PUBLIC ${ORTHANC_FRAMEWORK_ROOT})
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
201 target_compile_definitions(UnitTests PUBLIC
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
202 -DHAS_ORTHANC_EXCEPTION=1
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
203 -DORTHANC_ENABLE_LOGGING_PLUGIN=1
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
204 -DBUILD_UNIT_TESTS=1
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
205 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
206
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
207 target_link_libraries(UnitTests
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
208 ${GOOGLE_TEST_LIBRARIES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
209 # ${AUTOGENERATED_SOURCES}
86
e2c3c497eb8d fix LSB build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 85
diff changeset
210 )