diff ViewerPlugin/CMakeLists.txt @ 16:7a88c614be04

preparing for precompiled headers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 27 Oct 2016 11:01:26 +0200
parents e944d00a8a9e
children 482ff9a4506f
line wrap: on
line diff
--- a/ViewerPlugin/CMakeLists.txt	Thu Oct 27 10:07:56 2016 +0200
+++ b/ViewerPlugin/CMakeLists.txt	Thu Oct 27 11:01:26 2016 +0200
@@ -44,6 +44,7 @@
 include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake)
 include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake)
 include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
+include(${ORTHANC_ROOT}/Resources/CMake/VisualStudioPrecompiledHeaders.cmake)
 
 # Third-party components shipped with Orthanc
 include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
@@ -152,25 +153,11 @@
 
 
 #####################################################################
-## Create the plugin
+## Create the list of the source files that depend upon the
+## precompiled headers
 #####################################################################
 
-add_library(OrthancWSI SHARED
-  Plugin.cpp
-
-  ${ORTHANC_WSI_DIR}/Framework/DicomToolbox.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Enumerations.cpp
-  ${ORTHANC_WSI_DIR}/Framework/ImageToolbox.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramid.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidInstance.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidLevel.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Inputs/PyramidWithRawTiles.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Reader.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Writer.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Messaging/IOrthancConnection.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Messaging/OrthancConnectionBase.cpp
-  ${ORTHANC_WSI_DIR}/Framework/Messaging/PluginOrthancConnection.cpp
-
+set(ORTHANC_CORE_SOURCES
   ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp
   ${ORTHANC_ROOT}/Core/Enumerations.cpp
   ${ORTHANC_ROOT}/Core/Images/IImageWriter.cpp
@@ -187,7 +174,47 @@
   ${ORTHANC_ROOT}/Core/MultiThreading/Semaphore.cpp
   ${ORTHANC_ROOT}/Core/Toolbox.cpp
   ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp
+  )
 
+set(ORTHANC_WSI_SOURCES
+  Plugin.cpp
+  ${ORTHANC_WSI_DIR}/Framework/DicomToolbox.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Enumerations.cpp
+  ${ORTHANC_WSI_DIR}/Framework/ImageToolbox.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramid.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidInstance.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidLevel.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Inputs/PyramidWithRawTiles.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Reader.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Writer.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Messaging/IOrthancConnection.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Messaging/OrthancConnectionBase.cpp
+  ${ORTHANC_WSI_DIR}/Framework/Messaging/PluginOrthancConnection.cpp
+  )
+
+
+#####################################################################
+## Setup precompiled headers for Microsoft Visual Studio
+#####################################################################
+
+if (MSVC)
+  add_definitions(-DORTHANC_USE_PRECOMPILED_HEADERS=1)
+
+  ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS(
+    "PrecompiledHeaders.h" "${ORTHANC_WSI_DIR}/Orthanc/Core/PrecompiledHeaders.cpp" ORTHANC_CORE_SOURCES)
+
+  ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS(
+    "PrecompiledHeadersWSI.h" "${ORTHANC_WSI_DIR}/PrecompiledHeadersWSI.cpp" ORTHANC_WSI_SOURCES)
+endif()
+
+
+#####################################################################
+## Create the plugin
+#####################################################################
+
+add_library(OrthancWSI SHARED
+  ${ORTHANC_CORE_SOURCES}
+  ${ORTHANC_WSI_SOURCES}
   ${AUTOGENERATED_SOURCES}
 
   # Mandatory components