annotate CMakeLists.txt @ 201:8c79c3b026ce default tip

back to mainline
author Alain Mazy <am@orthanc.team>
date Wed, 03 Jul 2024 09:00:01 +0200
parents cf368ba6ba62
children
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
150
Alain Mazy <am@osimis.io>
parents: 145
diff changeset
3 # Copyright (C) 2024-2024 Orthanc Team SRL, Belgium
188
c4b908970ae4 updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 169
diff changeset
4 # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 # modify it under the terms of the GNU Affero General Public License
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 # as published by the Free Software Foundation, either version 3 of
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 # the License, or (at your option) any later version.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 # 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
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 # Affero General Public License for more details.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 #
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 # 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
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18
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 cmake_minimum_required(VERSION 2.8)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 project(OrthancAuthorization)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
201
8c79c3b026ce back to mainline
Alain Mazy <am@orthanc.team>
parents: 200
diff changeset
24 set(ORTHANC_PLUGIN_VERSION "mainline")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
25
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
26 if (ORTHANC_PLUGIN_VERSION STREQUAL "mainline")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
27 set(ORTHANC_FRAMEWORK_VERSION "mainline")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
28 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
29 else()
139
7e53735eeacb sync Orthanc
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
30 set(ORTHANC_FRAMEWORK_VERSION "1.12.2")
7e53735eeacb sync Orthanc
Alain Mazy <am@osimis.io>
parents: 130
diff changeset
31 set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
32 endif()
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 # Parameters of the build
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 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
36 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
37 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
38 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
39 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
40
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 # Advanced parameters to fine-tune linking against system libraries
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 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
43 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
44
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
45 # 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
46 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
48 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
49 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
50 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
51 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
52
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 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
54 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
55 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
56
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 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
58 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
59
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
60 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
61
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
62 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
63 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
64 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
65 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
66
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
67 else()
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 37
diff changeset
68 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
69
37
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
70 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
71 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
72 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
73 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
74 set(ENABLE_MODULE_DICOM OFF)
69
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
75 set(ENABLE_WEB_CLIENT ON)
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
76
41
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 37
diff changeset
77 include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
49
a749092170ef improved CMakeLists.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 47
diff changeset
78 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
79 endif()
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
680b1b1b9621 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 34
diff changeset
82 include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake)
1
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
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 # Check that the Orthanc SDK headers are available
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 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
87 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
88 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
89 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
90 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
91 else()
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
92 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
93 endif()
af44dce56328 new 'auth/user-profile' Rest API route
Alain Mazy <am@osimis.io>
parents: 68
diff changeset
94
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 else ()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 if (NOT HAVE_ORTHANC_H)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK")
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 endif()
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
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 link_libraries(rt)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 execute_process(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 COMMAND
160
e1dfab79c0f6 using WindowsResources.py from Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 159
diff changeset
110 ${PYTHON_EXECUTABLE} ${ORTHANC_FRAMEWORK_ROOT}/../Resources/WindowsResources.py
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
111 ${ORTHANC_PLUGIN_VERSION} "OrthancAuthorization" OrthancAuthorization.dll "Advanced authorization plugin for Orthanc"
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 ERROR_VARIABLE Failure
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc
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
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 if (Failure)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 message(FATAL_ERROR "Error while computing the version information: ${Failure}")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 list(APPEND AUTOGENERATED_SOURCES ${AUTOGENERATED_DIR}/Version.rc)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 if (APPLE)
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreFoundation")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework CoreFoundation")
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 endif()
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 add_definitions(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 -DHAS_ORTHANC_EXCEPTION=1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 -DORTHANC_ENABLE_LOGGING_PLUGIN=1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 )
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
133 set(ADDITIONAL_RESOURCES
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
134 DEFAULT_CONFIGURATION ${CMAKE_SOURCE_DIR}/Plugin/DefaultConfiguration.json
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
135 )
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
136
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
137 EmbedResources(
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
138 --no-upcase-check
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
139 ${ADDITIONAL_RESOURCES}
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
140 )
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
141
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
142 # 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
143 # "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
144 # 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
145 add_custom_target(
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
146 AutogeneratedTarget
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
147 DEPENDS
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
148 ${AUTOGENERATED_SOURCES}
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
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
151 set(PLUGIN_SOURCES
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 ${CMAKE_SOURCE_DIR}/Plugin/AccessedResource.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 ${CMAKE_SOURCE_DIR}/Plugin/AssociativeArray.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 ${CMAKE_SOURCE_DIR}/Plugin/AuthorizationParserBase.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 ${CMAKE_SOURCE_DIR}/Plugin/AuthorizationWebService.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 ${CMAKE_SOURCE_DIR}/Plugin/CachedAuthorizationService.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 ${CMAKE_SOURCE_DIR}/Plugin/DefaultAuthorizationParser.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 ${CMAKE_SOURCE_DIR}/Plugin/Enumerations.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 ${CMAKE_SOURCE_DIR}/Plugin/MemoryCache.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 ${CMAKE_SOURCE_DIR}/Plugin/OrthancResource.cpp
71
30fb3ce960d9 configurable user permissions
Alain Mazy <am@osimis.io>
parents: 69
diff changeset
161 ${CMAKE_SOURCE_DIR}/Plugin/PermissionParser.cpp
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 ${CMAKE_SOURCE_DIR}/Plugin/Plugin.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 ${CMAKE_SOURCE_DIR}/Plugin/ResourceHierarchyCache.cpp
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 ${CMAKE_SOURCE_DIR}/Plugin/Token.cpp
34
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 32
diff changeset
165 ${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
166 ${ORTHANC_CORE_SOURCES}
3
52e041c8584a resources for windows
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
167 ${AUTOGENERATED_SOURCES}
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
168 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
169
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
171 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
172 ${PLUGIN_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
173 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
174
144
64199dfdc86a fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 130
diff changeset
175 if (COMMAND DefineSourceBasenameForTarget)
64199dfdc86a fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 130
diff changeset
176 DefineSourceBasenameForTarget(OrthancAuthorization)
64199dfdc86a fixed handling of DefineSourceBasenameForTarget
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 130
diff changeset
177 endif()
109
7381a7674b36 wip: adding labels
Alain Mazy <am@osimis.io>
parents: 88
diff changeset
178
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
179 add_dependencies(OrthancAuthorization AutogeneratedTarget)
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
181 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
182 add_definitions(-DORTHANC_PLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}")
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 set_target_properties(OrthancAuthorization PROPERTIES
22
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
185 VERSION ${ORTHANC_PLUGIN_VERSION}
c44013681a51 now using the Orthanc framework
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 17
diff changeset
186 SOVERSION ${ORTHANC_PLUGIN_VERSION})
1
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 install(
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 TARGETS OrthancAuthorization
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 RUNTIME DESTINATION lib # Destination for Windows
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux
d5d3cb00556a initial release
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 )
77
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
193
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
194 add_executable(UnitTests
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
195 ${PLUGIN_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
196 ${ORTHANC_CORE_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
197 ${GOOGLE_TEST_SOURCES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
198 UnitTestsSources/UnitTestsMain.cpp
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
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
201 # 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
202
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
203 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
204 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
205 -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
206 -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
207 -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
208 )
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
209
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
210 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
211 ${GOOGLE_TEST_LIBRARIES}
94a9484d7f8f fix security issues allowing to browse remote dicom servers + introduced UnitTests
Alain Mazy <am@osimis.io>
parents: 71
diff changeset
212 # ${AUTOGENERATED_SOURCES}
86
e2c3c497eb8d fix LSB build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 85
diff changeset
213 )