diff StoneWebViewer/Plugin/CMakeLists.txt @ 1496:d450653b46d3

build stone web viewer using docker
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 25 Jun 2020 17:50:36 +0200
parents fb74ed5d8c22
children d8af188ab545
line wrap: on
line diff
--- a/StoneWebViewer/Plugin/CMakeLists.txt	Thu Jun 25 16:51:10 2020 +0200
+++ b/StoneWebViewer/Plugin/CMakeLists.txt	Thu Jun 25 17:50:36 2020 +0200
@@ -2,39 +2,67 @@
 
 project(StoneWebViewerPlugin)
 
-set(ORTHANC_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../../orthanc CACHE PATH "")
+set(ORTHANC_PLUGIN_VERSION "mainline")
+
+
+set(ORTHANC_FRAMEWORK_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../../orthanc CACHE PATH "")
 set(STONE_BINARIES CACHE PATH "")
+set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK")
 
-include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake)
+include(${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake)
 set(ENABLE_MODULE_IMAGES OFF)
 set(ENABLE_MODULE_JOBS OFF)
 set(ENABLE_MODULE_DICOM OFF)
-include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake)
+include(${ORTHANC_FRAMEWORK_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake)
 
 include_directories(
-  ${ORTHANC_ROOT}/Core
-  ${ORTHANC_ROOT}/Plugins/Samples/Common
-  ${ORTHANC_ROOT}/Plugins/Include  # TODO => Fix a version
+  ${ORTHANC_FRAMEWORK_ROOT}/Core
+  ${ORTHANC_FRAMEWORK_ROOT}/Plugins/Samples/Common
   )
 
+
+if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK)
+  include_directories(${CMAKE_SOURCE_DIR}/../Resources/OrthancSdk-1.0.0)
+else ()
+  CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H)
+  if (NOT HAVE_ORTHANC_H)
+    message(FATAL_ERROR "Please install the headers of the Orthanc plugins SDK")
+  endif()
+endif()
+
+
 add_definitions(
   -DHAS_ORTHANC_EXCEPTION=1
-  -DPLUGIN_VERSION="mainline"  # TODO
+  -DPLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}"
   -DPLUGIN_NAME="stone-webviewer"
   )
 
+
 EmbedResources(
+  # Folders
+  IMAGES                 ${STONE_BINARIES}/img/
+  WEB_APPLICATION        ${CMAKE_SOURCE_DIR}/../WebApplication
+
+  # Individual files
   ORTHANC_EXPLORER       ${CMAKE_SOURCE_DIR}/OrthancExplorer.js
-  STONE_WRAPPER          ${STONE_BINARIES}/stone.js
   STONE_WEB_VIEWER_JS    ${STONE_BINARIES}/StoneWebViewer.js
   STONE_WEB_VIEWER_WASM  ${STONE_BINARIES}/StoneWebViewer.wasm
-  WEB_APPLICATION        ${CMAKE_SOURCE_DIR}/../WebApplication
-  IMAGES                 ${STONE_BINARIES}/img/
+  STONE_WRAPPER          ${STONE_BINARIES}/stone.js
   )
 
 add_library(StoneWebViewer SHARED
   Plugin.cpp
   ${AUTOGENERATED_SOURCES}
-  ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp
+  ${ORTHANC_FRAMEWORK_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp  # TODO
   ${ORTHANC_CORE_SOURCES}
   )
+
+set_target_properties(StoneWebViewer PROPERTIES 
+  VERSION ${ORTHANC_PLUGIN_VERSION} 
+  SOVERSION ${ORTHANC_PLUGIN_VERSION})
+
+install(
+  TARGETS StoneWebViewer
+  RUNTIME DESTINATION lib    # Destination for Windows
+  LIBRARY DESTINATION share/orthanc/plugins    # Destination for Linux
+  )