diff CMakeLists.txt @ 22:c44013681a51

now using the Orthanc framework
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 20 Jul 2018 14:37:30 +0200
parents 5cb4e0ed488d
children a635f920af3d
line wrap: on
line diff
--- a/CMakeLists.txt	Thu Jul 19 15:04:50 2018 +0200
+++ b/CMakeLists.txt	Fri Jul 20 14:37:30 2018 +0200
@@ -19,35 +19,43 @@
 
 project(OrthancAuthorization)
 
-set(ORTHANC_AUTHORIZATION_VERSION "0.2.1")
+set(ORTHANC_PLUGIN_VERSION "mainline")
+
+if (ORTHANC_PLUGIN_VERSION STREQUAL "mainline")
+  set(ORTHANC_FRAMEWORK_VERSION "mainline")
+  set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
+else()
+  set(ORTHANC_FRAMEWORK_VERSION "1.4.0")
+  set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
+endif()
 
 # Parameters of the build
 set(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
-SET(STANDALONE_BUILD ON CACHE BOOL "Standalone build (all the resources are embedded, necessary for releases)")
 set(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages")
+set(ORTHANC_FRAMEWORK_SOURCE "${ORTHANC_FRAMEWORK_DEFAULT_SOURCE}" CACHE STRING "Source of the Orthanc source code (can be \"hg\", \"archive\", \"web\" or \"path\")")
+set(ORTHANC_FRAMEWORK_ARCHIVE "" CACHE STRING "Path to the Orthanc archive, if ORTHANC_FRAMEWORK_SOURCE is \"archive\"")
+set(ORTHANC_FRAMEWORK_ROOT "" CACHE STRING "Path to the Orthanc source directory, if ORTHANC_FRAMEWORK_SOURCE is \"path\"")
 
 # Advanced parameters to fine-tune linking against system libraries
-set(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost")
-set(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp")
 set(USE_SYSTEM_ORTHANC_SDK ON CACHE BOOL "Use the system version of the Orthanc plugin SDK")
 
-set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}/Resources/Orthanc)
-set(ORTHANC_DISABLE_PATCH ON)  # No need for the "patch" command-line tool
-include(CheckIncludeFiles)
-include(CheckIncludeFileCXX)
-include(CheckLibraryExists)
-include(FindPythonInterp)
-include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
+
+# Download and setup the Orthanc framework
+include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/DownloadOrthancFramework.cmake)
 
-include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
-include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake)
+set(ORTHANC_FRAMEWORK_PLUGIN ON)
+set(ORTHANC_DISABLE_PATCH ON)    # No need for the "patch" command-line tool
+include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkParameters.cmake)
+
+set(ENABLE_LOCALE OFF)           # Disable support for locales (notably in Boost)
+
+include(${ORTHANC_ROOT}/Resources/CMake/OrthancFrameworkConfiguration.cmake)
+include_directories(${ORTHANC_ROOT})
 
 
 # Check that the Orthanc SDK headers are available
 if (STATIC_BUILD OR NOT USE_SYSTEM_ORTHANC_SDK)
-  include_directories(${ORTHANC_ROOT}/Sdk-1.3.1)
+  include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc//Sdk-1.3.1)
 else ()
   CHECK_INCLUDE_FILE_CXX(orthanc/OrthancCPlugin.h HAVE_ORTHANC_H)
   if (NOT HAVE_ORTHANC_H)
@@ -64,7 +72,7 @@
   execute_process(
     COMMAND 
     ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Resources/WindowsResources.py
-    ${ORTHANC_AUTHORIZATION_VERSION} "OrthancAuthorization" OrthancAuthorization.dll "Advanced authorization plugin for Orthanc"
+    ${ORTHANC_PLUGIN_VERSION} "OrthancAuthorization" OrthancAuthorization.dll "Advanced authorization plugin for Orthanc"
     ERROR_VARIABLE Failure
     OUTPUT_FILE ${AUTOGENERATED_DIR}/Version.rc
     )
@@ -83,12 +91,7 @@
 
 add_definitions(
   -DHAS_ORTHANC_EXCEPTION=1
-  -DORTHANC_ENABLE_MD5=0
-  -DORTHANC_ENABLE_BASE64=0
-  -DORTHANC_ENABLE_LOGGING=1
   -DORTHANC_ENABLE_LOGGING_PLUGIN=1
-  -DORTHANC_ENABLE_PUGIXML=0
-  -DORTHANC_SANDBOXED=0
   )
 
 add_library(OrthancAuthorization SHARED
@@ -105,24 +108,18 @@
   ${CMAKE_SOURCE_DIR}/Plugin/ResourceHierarchyCache.cpp
   ${CMAKE_SOURCE_DIR}/Plugin/Token.cpp
 
-  ${ORTHANC_ROOT}/Core/Logging.cpp
-  ${ORTHANC_ROOT}/Core/Enumerations.cpp
-  ${ORTHANC_ROOT}/Core/Toolbox.cpp
   ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp
-
-  ${BOOST_SOURCES}
-  ${SQLITE_SOURCES}
-  ${JSONCPP_SOURCES}
+  ${ORTHANC_CORE_SOURCES}
   ${AUTOGENERATED_SOURCES}
   )
 
 
-message("Setting the version of the plugin to ${ORTHANC_AUTHORIZATION_VERSION}")
-add_definitions(-DORTHANC_AUTHORIZATION_VERSION="${ORTHANC_AUTHORIZATION_VERSION}")
+message("Setting the version of the plugin to ${ORTHANC_PLUGIN_VERSION}")
+add_definitions(-DORTHANC_PLUGIN_VERSION="${ORTHANC_PLUGIN_VERSION}")
 
 set_target_properties(OrthancAuthorization PROPERTIES 
-  VERSION ${ORTHANC_AUTHORIZATION_VERSION} 
-  SOVERSION ${ORTHANC_AUTHORIZATION_VERSION})
+  VERSION ${ORTHANC_PLUGIN_VERSION} 
+  SOVERSION ${ORTHANC_PLUGIN_VERSION})
 
 install(
   TARGETS OrthancAuthorization