Mercurial > hg > orthanc-dicomweb
changeset 457:335cf81270ea
use of OrthancPluginsExports.cmake, link against system-wide orthanc framework
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 06 Jul 2020 11:11:38 +0200 |
parents | c061d4c345c8 |
children | 1e6cd31c20ce |
files | CMakeLists.txt Plugin/Configuration.cpp Plugin/DicomWebClient.cpp Plugin/DicomWebFormatter.cpp Plugin/DicomWebServers.h Plugin/Plugin.cpp Plugin/QidoRs.cpp Plugin/StowRs.h Plugin/WadoRs.cpp Plugin/WadoRsRetrieveFrames.cpp Plugin/WadoRsRetrieveRendered.cpp Plugin/WadoUri.cpp Resources/Orthanc/CMake/Compiler.cmake Resources/Orthanc/CMake/DownloadOrthancFramework.cmake Resources/Orthanc/Plugins/ExportedSymbolsPlugins.list Resources/Orthanc/Plugins/OrthancPluginsExports.cmake Resources/SyncOrthancFolder.py Resources/holy-build-box-internal.sh |
diffstat | 18 files changed, 46 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- 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)
--- 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 <Compatibility.h> -#include <OrthancPluginCppWrapper.h> #include <Toolbox.h> #include <fstream>
--- 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 <Compatibility.h> #include <HttpServer/MultipartStreamReader.h> #include <ChunkedBuffer.h> #include <Toolbox.h> -#include <OrthancPluginCppWrapper.h> #include <json/reader.h> #include <list>
--- 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 <OrthancPluginCppWrapper.h> +#include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" #if !defined(NDEBUG) # include <json/reader.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 <WebServiceParameters.h> -#include <OrthancPluginCppWrapper.h> #include <list> #include <string>
--- 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 <http://www.gnu.org/licenses/>. **/ +#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 <OrthancPluginCppWrapper.h> #include <SystemToolbox.h> #include <Toolbox.h>
--- 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 <DicomFormat/DicomMap.h> #include <DicomFormat/DicomTag.h> #include <Toolbox.h> -#include <OrthancPluginCppWrapper.h> #include <list> #include <boost/lexical_cast.hpp>
--- 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 <Compatibility.h> #include <HttpServer/MultipartStreamReader.h> -#include <OrthancPluginCppWrapper.h> namespace OrthancPlugins {
--- 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 <Compatibility.h> #include <ChunkedBuffer.h> #include <Toolbox.h> -#include <OrthancPluginCppWrapper.h> #include <memory>
--- 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 <Toolbox.h> -#include <OrthancPluginCppWrapper.h> #include <memory> #include <list>
--- 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 <Images/Image.h> #include <Images/ImageProcessing.h> #include <Images/ImageTraits.h> #include <Toolbox.h> -#include <OrthancPluginCppWrapper.h> #include <boost/algorithm/string/predicate.hpp> #include <boost/math/special_functions/round.hpp>
--- 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 <OrthancPluginCppWrapper.h> - #include <string>
--- 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 )
--- 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)
--- /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
--- /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()
--- 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', '.'),
--- 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