# HG changeset patch # User Sebastien Jodogne # Date 1594026698 -7200 # Node ID 335cf81270ea7d5554e0fa79d60a8b06ff51c816 # Parent c061d4c345c8349fe972e86072f09d2672c62099 use of OrthancPluginsExports.cmake, link against system-wide orthanc framework diff -r c061d4c345c8 -r 335cf81270ea CMakeLists.txt --- a/CMakeLists.txt Wed Jul 01 17:12:40 2020 +0200 +++ b/CMakeLists.txt Mon Jul 06 11:11:38 2020 +0200 @@ -53,24 +53,20 @@ -set(ENABLE_PLUGINS_VERSION_SCRIPT OFF) -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR - ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR - ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR - ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/VersionScriptPlugins.map") -endif() - - # Download and setup the Orthanc framework if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") - set(ENABLE_GOOGLE_TEST ON) include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) include_directories( ${CMAKE_SOURCE_DIR}/Resources/Orthanc/ ) link_libraries(OrthancFramework) + + set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test") + set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)") + mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE) + include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/GoogleTestConfiguration.cmake) + else() include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake) include(${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake) @@ -87,11 +83,8 @@ endif() -include_directories( - ${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/ - ) - include(${CMAKE_SOURCE_DIR}/Resources/CMake/JavaScriptLibraries.cmake) +include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake) if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK) diff -r c061d4c345c8 -r 335cf81270ea Plugin/Configuration.cpp --- a/Plugin/Configuration.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/Configuration.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,10 +21,10 @@ #include "Configuration.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "DicomWebServers.h" #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/DicomWebClient.cpp --- a/Plugin/DicomWebClient.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/DicomWebClient.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,13 +21,13 @@ #include "DicomWebClient.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "DicomWebServers.h" #include #include #include #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/DicomWebFormatter.cpp --- a/Plugin/DicomWebFormatter.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/DicomWebFormatter.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,7 +21,7 @@ #include "DicomWebFormatter.h" -#include +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #if !defined(NDEBUG) # include diff -r c061d4c345c8 -r 335cf81270ea Plugin/DicomWebServers.h --- a/Plugin/DicomWebServers.h Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/DicomWebServers.h Mon Jul 06 11:11:38 2020 +0200 @@ -20,8 +20,9 @@ #pragma once +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" + #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/Plugin.cpp --- a/Plugin/Plugin.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/Plugin.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -18,6 +18,7 @@ * along with this program. If not, see . **/ +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "DicomWebClient.h" #include "DicomWebServers.h" #include "QidoRs.h" @@ -25,7 +26,6 @@ #include "WadoRs.h" #include "WadoUri.h" -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/QidoRs.cpp --- a/Plugin/QidoRs.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/QidoRs.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,13 +21,13 @@ #include "QidoRs.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "Configuration.h" #include "DicomWebFormatter.h" #include #include #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/StowRs.h --- a/Plugin/StowRs.h Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/StowRs.h Mon Jul 06 11:11:38 2020 +0200 @@ -21,9 +21,10 @@ #pragma once +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" + #include #include -#include namespace OrthancPlugins { diff -r c061d4c345c8 -r 335cf81270ea Plugin/WadoRs.cpp --- a/Plugin/WadoRs.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/WadoRs.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -19,13 +19,13 @@ **/ +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "Configuration.h" #include "DicomWebFormatter.h" #include #include #include -#include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/WadoRsRetrieveFrames.cpp --- a/Plugin/WadoRsRetrieveFrames.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/WadoRsRetrieveFrames.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,8 +21,9 @@ #include "WadoRs.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" + #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/WadoRsRetrieveRendered.cpp --- a/Plugin/WadoRsRetrieveRendered.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/WadoRsRetrieveRendered.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -20,11 +20,12 @@ #include "WadoRs.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" + #include #include #include #include -#include #include #include diff -r c061d4c345c8 -r 335cf81270ea Plugin/WadoUri.cpp --- a/Plugin/WadoUri.cpp Wed Jul 01 17:12:40 2020 +0200 +++ b/Plugin/WadoUri.cpp Mon Jul 06 11:11:38 2020 +0200 @@ -21,10 +21,9 @@ #include "WadoUri.h" +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #include "Configuration.h" -#include - #include diff -r c061d4c345c8 -r 335cf81270ea Resources/Orthanc/CMake/Compiler.cmake --- a/Resources/Orthanc/CMake/Compiler.cmake Wed Jul 01 17:12:40 2020 +0200 +++ b/Resources/Orthanc/CMake/Compiler.cmake Mon Jul 06 11:11:38 2020 +0200 @@ -113,11 +113,6 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") endif() - if (NOT DEFINED ENABLE_PLUGINS_VERSION_SCRIPT OR - ENABLE_PLUGINS_VERSION_SCRIPT) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/../VersionScriptPlugins.map") - endif() - # Remove the "-rdynamic" option # http://www.mail-archive.com/cmake@cmake.org/msg08837.html set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") @@ -203,8 +198,6 @@ endif() elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -exported_symbols_list ${CMAKE_CURRENT_LIST_DIR}/../ExportedSymbolsPlugins.list") - add_definitions( -D_XOPEN_SOURCE=1 ) diff -r c061d4c345c8 -r 335cf81270ea Resources/Orthanc/CMake/DownloadOrthancFramework.cmake --- a/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake Wed Jul 01 17:12:40 2020 +0200 +++ b/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake Mon Jul 06 11:11:38 2020 +0200 @@ -396,7 +396,7 @@ ## ## Case of the Orthanc framework installed as a shared library in a -## GNU/Linux distribution (typically Debian) +## GNU/Linux distribution (typically Debian). New in Orthanc 1.7.2. ## if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") @@ -485,14 +485,6 @@ endif() endif() - # Optional component - Google Test - if (ENABLE_GOOGLE_TEST) - set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test") - set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)") - mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE) - include(${CMAKE_CURRENT_LIST_DIR}/GoogleTestConfiguration.cmake) - endif() - # Look for Orthanc framework shared library include(CheckCXXSymbolExists) diff -r c061d4c345c8 -r 335cf81270ea Resources/Orthanc/Plugins/ExportedSymbolsPlugins.list --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Orthanc/Plugins/ExportedSymbolsPlugins.list Mon Jul 06 11:11:38 2020 +0200 @@ -0,0 +1,7 @@ +# This is the list of the symbols that must be exported by Orthanc +# plugins, if targeting OS X + +_OrthancPluginInitialize +_OrthancPluginFinalize +_OrthancPluginGetName +_OrthancPluginGetVersion diff -r c061d4c345c8 -r 335cf81270ea Resources/Orthanc/Plugins/OrthancPluginsExports.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Orthanc/Plugins/OrthancPluginsExports.cmake Mon Jul 06 11:11:38 2020 +0200 @@ -0,0 +1,12 @@ +# In Orthanc <= 1.7.1, the instructions below were part of +# "Compiler.cmake", and were protected by the (now unused) option +# "ENABLE_PLUGINS_VERSION_SCRIPT" in CMake + +if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/VersionScriptPlugins.map") +elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -exported_symbols_list ${CMAKE_CURRENT_LIST_DIR}/ExportedSymbolsPlugins.list") +endif() diff -r c061d4c345c8 -r 335cf81270ea Resources/SyncOrthancFolder.py --- a/Resources/SyncOrthancFolder.py Wed Jul 01 17:12:40 2020 +0200 +++ b/Resources/SyncOrthancFolder.py Mon Jul 06 11:11:38 2020 +0200 @@ -25,10 +25,12 @@ ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake', 'Toolchains'), ('OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake', 'Toolchains'), ('OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake', 'Toolchains'), - ('OrthancFramework/Resources/VersionScriptPlugins.map', 'Plugins'), + ('OrthancServer/Plugins/Samples/Common/ExportedSymbolsPlugins.list', 'Plugins'), ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp', 'Plugins'), ('OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h', 'Plugins'), ('OrthancServer/Plugins/Samples/Common/OrthancPluginException.h', 'Plugins'), + ('OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake', 'Plugins'), + ('OrthancServer/Plugins/Samples/Common/VersionScriptPlugins.map', 'Plugins'), # Specific to DICOMweb plugin ('OrthancServer/Resources/OrthancLogo.png', '.'), diff -r c061d4c345c8 -r 335cf81270ea Resources/holy-build-box-internal.sh --- a/Resources/holy-build-box-internal.sh Wed Jul 01 17:12:40 2020 +0200 +++ b/Resources/holy-build-box-internal.sh Mon Jul 06 11:11:38 2020 +0200 @@ -38,7 +38,7 @@ cmake /tmp/source-writeable \ -DCMAKE_BUILD_TYPE=$1 -DSTATIC_BUILD=ON \ - -DORTHANC_SDK_VERSION=1.5.7 \ + -DORTHANC_SDK_VERSION=1.7.0 \ -DORTHANC_FRAMEWORK_SOURCE=hg \ -DORTHANC_FRAMEWORK_VERSION=mainline \ -DCMAKE_INSTALL_PREFIX=/target