diff CMakeLists.txt @ 838:aabc3b430890 templating

integration mainline -> templating
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Jun 2014 13:24:44 +0200
parents da4c30a8bcdd 22964c7ff1c3
children 427a1f996b7b
line wrap: on
line diff
--- a/CMakeLists.txt	Wed May 28 17:54:59 2014 +0200
+++ b/CMakeLists.txt	Mon Jun 02 13:24:44 2014 +0200
@@ -44,6 +44,7 @@
 include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake)
 include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake)
 include(${CMAKE_SOURCE_DIR}/Resources/CMake/Compiler.cmake)
+include(${CMAKE_SOURCE_DIR}/Resources/CMake/VisualStudioPrecompiledHeaders.cmake)
 
 set(ORTHANC_ROOT ${CMAKE_SOURCE_DIR})
 
@@ -51,6 +52,121 @@
 
 
 #####################################################################
+## List of source files
+#####################################################################
+
+set(ORTHANC_CORE_SOURCES
+  Core/Cache/MemoryCache.cpp
+  Core/ChunkedBuffer.cpp
+  Core/Compression/BufferCompressor.cpp
+  Core/Compression/ZlibCompressor.cpp
+  Core/Compression/ZipWriter.cpp
+  Core/Compression/HierarchicalZipWriter.cpp
+  Core/OrthancException.cpp
+  Core/DicomFormat/DicomArray.cpp
+  Core/DicomFormat/DicomMap.cpp
+  Core/DicomFormat/DicomTag.cpp
+  Core/DicomFormat/DicomIntegerPixelAccessor.cpp
+  Core/DicomFormat/DicomInstanceHasher.cpp
+  Core/Enumerations.cpp
+  Core/FileStorage/FileStorage.cpp
+  Core/FileStorage/StorageAccessor.cpp
+  Core/FileStorage/CompressedFileStorageAccessor.cpp
+  Core/FileStorage/FileStorageAccessor.cpp
+  Core/HttpClient.cpp
+  Core/HttpServer/EmbeddedResourceHttpHandler.cpp
+  Core/HttpServer/FilesystemHttpHandler.cpp
+  Core/HttpServer/HttpHandler.cpp
+  Core/HttpServer/HttpOutput.cpp
+  Core/HttpServer/MongooseServer.cpp
+  Core/HttpServer/HttpFileSender.cpp
+  Core/HttpServer/FilesystemHttpSender.cpp
+  Core/RestApi/RestApiPath.cpp
+  Core/RestApi/RestApiOutput.cpp
+  Core/RestApi/RestApi.cpp
+  Core/MultiThreading/ArrayFilledByThreads.cpp
+  Core/MultiThreading/BagOfRunnablesBySteps.cpp
+  Core/MultiThreading/Mutex.cpp
+  Core/MultiThreading/ReaderWriterLock.cpp
+  Core/MultiThreading/SharedMessageQueue.cpp
+  Core/MultiThreading/ThreadedCommandProcessor.cpp
+  Core/ImageFormats/ImageAccessor.cpp
+  Core/ImageFormats/ImageBuffer.cpp
+  Core/ImageFormats/PngReader.cpp
+  Core/ImageFormats/PngWriter.cpp
+  Core/SQLite/Connection.cpp
+  Core/SQLite/FunctionContext.cpp
+  Core/SQLite/Statement.cpp
+  Core/SQLite/StatementId.cpp
+  Core/SQLite/StatementReference.cpp
+  Core/SQLite/Transaction.cpp
+  Core/Toolbox.cpp
+  Core/Uuid.cpp
+  Core/Lua/LuaContext.cpp
+  Core/Lua/LuaFunctionCall.cpp
+
+  OrthancCppClient/OrthancConnection.cpp
+  OrthancCppClient/Study.cpp
+  OrthancCppClient/Series.cpp
+  OrthancCppClient/Instance.cpp
+  OrthancCppClient/Patient.cpp
+  )
+
+
+set(ORTHANC_SERVER_SOURCES
+  OrthancServer/DicomProtocol/DicomFindAnswers.cpp
+  OrthancServer/DicomProtocol/DicomServer.cpp
+  OrthancServer/DicomProtocol/DicomUserConnection.cpp
+  OrthancServer/DicomProtocol/RemoteModalityParameters.cpp
+  OrthancServer/DicomProtocol/ReusableDicomUserConnection.cpp
+  OrthancServer/DicomModification.cpp
+  OrthancServer/FromDcmtkBridge.cpp
+  OrthancServer/ParsedDicomFile.cpp
+  OrthancServer/Internals/CommandDispatcher.cpp
+  OrthancServer/Internals/FindScp.cpp
+  OrthancServer/Internals/MoveScp.cpp
+  OrthancServer/Internals/StoreScp.cpp
+  OrthancServer/OrthancInitialization.cpp
+  OrthancServer/OrthancPeerParameters.cpp
+  OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp
+  OrthancServer/OrthancRestApi/OrthancRestApi.cpp
+  OrthancServer/OrthancRestApi/OrthancRestArchive.cpp
+  OrthancServer/OrthancRestApi/OrthancRestChanges.cpp
+  OrthancServer/OrthancRestApi/OrthancRestModalities.cpp
+  OrthancServer/OrthancRestApi/OrthancRestResources.cpp
+  OrthancServer/OrthancRestApi/OrthancRestSystem.cpp
+  OrthancServer/ServerIndex.cpp
+  OrthancServer/ToDcmtkBridge.cpp
+  OrthancServer/DatabaseWrapper.cpp
+  OrthancServer/ServerContext.cpp
+  OrthancServer/ServerEnumerations.cpp
+  OrthancServer/ServerToolbox.cpp
+  OrthancServer/OrthancFindRequestHandler.cpp
+  OrthancServer/OrthancMoveRequestHandler.cpp
+  )
+
+
+set(ORTHANC_UNIT_TESTS_SOURCES
+  UnitTestsSources/DicomMap.cpp
+  UnitTestsSources/FileStorage.cpp
+  UnitTestsSources/FromDcmtk.cpp
+  UnitTestsSources/MemoryCache.cpp
+  UnitTestsSources/Png.cpp
+  UnitTestsSources/RestApi.cpp
+  UnitTestsSources/SQLite.cpp
+  UnitTestsSources/SQLiteChromium.cpp
+  UnitTestsSources/ServerIndexTests.cpp
+  UnitTestsSources/Versions.cpp
+  UnitTestsSources/Zip.cpp
+  UnitTestsSources/Lua.cpp
+  UnitTestsSources/MultiThreading.cpp
+  UnitTestsSources/UnitTestsMain.cpp
+  UnitTestsSources/Plustache.cpp
+  )
+
+
+
+#####################################################################
 ## Inclusion of third-party dependencies
 #####################################################################
 
@@ -124,6 +240,21 @@
 ## Build the core of Orthanc
 #####################################################################
 
+# Setup precompiled headers for Microsoft Visual Studio
+if (${MSVC})
+  add_definitions(-DORTHANC_USE_PRECOMPILED_HEADERS=1)
+
+  ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS(
+    "PrecompiledHeaders.h" "Core/PrecompiledHeaders.cpp" ORTHANC_CORE_SOURCES)
+
+  ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS(
+    "PrecompiledHeadersServer.h" "OrthancServer/PrecompiledHeadersServer.cpp" ORTHANC_SERVER_SOURCES)
+
+  ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS(
+    "PrecompiledHeadersUnitTests.h" "UnitTestsSources/PrecompiledHeadersUnitTests.cpp" ORTHANC_UNIT_TESTS_SOURCES)
+endif()
+
+
 add_definitions(
   -DORTHANC_VERSION="${ORTHANC_VERSION}"
   )
@@ -138,61 +269,7 @@
   ${AUTOGENERATED_SOURCES}
   ${THIRD_PARTY_SOURCES}
   ${CURL_SOURCES}
-
-  Core/Cache/MemoryCache.cpp
-  Core/ChunkedBuffer.cpp
-  Core/Compression/BufferCompressor.cpp
-  Core/Compression/ZlibCompressor.cpp
-  Core/Compression/ZipWriter.cpp
-  Core/Compression/HierarchicalZipWriter.cpp
-  Core/OrthancException.cpp
-  Core/DicomFormat/DicomArray.cpp
-  Core/DicomFormat/DicomMap.cpp
-  Core/DicomFormat/DicomTag.cpp
-  Core/DicomFormat/DicomIntegerPixelAccessor.cpp
-  Core/DicomFormat/DicomInstanceHasher.cpp
-  Core/Enumerations.cpp
-  Core/FileStorage/FileStorage.cpp
-  Core/FileStorage/StorageAccessor.cpp
-  Core/FileStorage/CompressedFileStorageAccessor.cpp
-  Core/FileStorage/FileStorageAccessor.cpp
-  Core/HttpClient.cpp
-  Core/HttpServer/EmbeddedResourceHttpHandler.cpp
-  Core/HttpServer/FilesystemHttpHandler.cpp
-  Core/HttpServer/HttpHandler.cpp
-  Core/HttpServer/HttpOutput.cpp
-  Core/HttpServer/MongooseServer.cpp
-  Core/HttpServer/HttpFileSender.cpp
-  Core/HttpServer/FilesystemHttpSender.cpp
-  Core/RestApi/RestApiPath.cpp
-  Core/RestApi/RestApiOutput.cpp
-  Core/RestApi/RestApi.cpp
-  Core/MultiThreading/ArrayFilledByThreads.cpp
-  Core/MultiThreading/BagOfRunnablesBySteps.cpp
-  Core/MultiThreading/Mutex.cpp
-  Core/MultiThreading/ReaderWriterLock.cpp
-  Core/MultiThreading/SharedMessageQueue.cpp
-  Core/MultiThreading/ThreadedCommandProcessor.cpp
-  Core/ImageFormats/ImageAccessor.cpp
-  Core/ImageFormats/ImageBuffer.cpp
-  Core/ImageFormats/PngReader.cpp
-  Core/ImageFormats/PngWriter.cpp
-  Core/SQLite/Connection.cpp
-  Core/SQLite/FunctionContext.cpp
-  Core/SQLite/Statement.cpp
-  Core/SQLite/StatementId.cpp
-  Core/SQLite/StatementReference.cpp
-  Core/SQLite/Transaction.cpp
-  Core/Toolbox.cpp
-  Core/Uuid.cpp
-  Core/Lua/LuaContext.cpp
-  Core/Lua/LuaFunctionCall.cpp
-
-  OrthancCppClient/OrthancConnection.cpp
-  OrthancCppClient/Study.cpp
-  OrthancCppClient/Series.cpp
-  OrthancCppClient/Instance.cpp
-  OrthancCppClient/Patient.cpp
+  ${ORTHANC_CORE_SOURCES}
   )  
 
 
@@ -203,35 +280,7 @@
 add_library(ServerLibrary
   STATIC
   ${DCMTK_SOURCES}
-  OrthancServer/DicomProtocol/DicomFindAnswers.cpp
-  OrthancServer/DicomProtocol/DicomServer.cpp
-  OrthancServer/DicomProtocol/DicomUserConnection.cpp
-  OrthancServer/DicomProtocol/RemoteModalityParameters.cpp
-  OrthancServer/DicomProtocol/ReusableDicomUserConnection.cpp
-  OrthancServer/DicomModification.cpp
-  OrthancServer/FromDcmtkBridge.cpp
-  OrthancServer/ParsedDicomFile.cpp
-  OrthancServer/Internals/CommandDispatcher.cpp
-  OrthancServer/Internals/FindScp.cpp
-  OrthancServer/Internals/MoveScp.cpp
-  OrthancServer/Internals/StoreScp.cpp
-  OrthancServer/OrthancInitialization.cpp
-  OrthancServer/OrthancPeerParameters.cpp
-  OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp
-  OrthancServer/OrthancRestApi/OrthancRestApi.cpp
-  OrthancServer/OrthancRestApi/OrthancRestArchive.cpp
-  OrthancServer/OrthancRestApi/OrthancRestChanges.cpp
-  OrthancServer/OrthancRestApi/OrthancRestModalities.cpp
-  OrthancServer/OrthancRestApi/OrthancRestResources.cpp
-  OrthancServer/OrthancRestApi/OrthancRestSystem.cpp
-  OrthancServer/ServerIndex.cpp
-  OrthancServer/ToDcmtkBridge.cpp
-  OrthancServer/DatabaseWrapper.cpp
-  OrthancServer/ServerContext.cpp
-  OrthancServer/ServerEnumerations.cpp
-  OrthancServer/ServerToolbox.cpp
-  OrthancServer/OrthancFindRequestHandler.cpp
-  OrthancServer/OrthancMoveRequestHandler.cpp
+  ${ORTHANC_SERVER_SOURCES}
   )
 
 # Ensure autogenerated code is built before building ServerLibrary
@@ -268,21 +317,7 @@
 include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake)
 add_executable(UnitTests
   ${GTEST_SOURCES}
-  UnitTestsSources/DicomMap.cpp
-  UnitTestsSources/FileStorage.cpp
-  UnitTestsSources/FromDcmtk.cpp
-  UnitTestsSources/MemoryCache.cpp
-  UnitTestsSources/Png.cpp
-  UnitTestsSources/RestApi.cpp
-  UnitTestsSources/SQLite.cpp
-  UnitTestsSources/SQLiteChromium.cpp
-  UnitTestsSources/ServerIndexTests.cpp
-  UnitTestsSources/Versions.cpp
-  UnitTestsSources/Zip.cpp
-  UnitTestsSources/Lua.cpp
-  UnitTestsSources/MultiThreading.cpp
-  UnitTestsSources/UnitTestsMain.cpp
-  UnitTestsSources/Plustache.cpp
+  ${ORTHANC_UNIT_TESTS_SOURCES}
   )
 target_link_libraries(UnitTests ServerLibrary CoreLibrary)
 
@@ -330,22 +365,7 @@
   endif()
 
   add_library(OrthancClient SHARED
-    ${ORTHANC_ROOT}/Core/OrthancException.cpp
-    ${ORTHANC_ROOT}/Core/Enumerations.cpp
-    ${ORTHANC_ROOT}/Core/Toolbox.cpp
-    ${ORTHANC_ROOT}/Core/HttpClient.cpp
-    ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp
-    ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp
-    ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp
-    ${ORTHANC_ROOT}/Core/ImageFormats/ImageAccessor.cpp
-    ${ORTHANC_ROOT}/Core/ImageFormats/ImageBuffer.cpp
-    ${ORTHANC_ROOT}/Core/ImageFormats/PngReader.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp
-    ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/SharedLibrary.cpp
+    ${ORTHANC_ROOT}/OrthancCppClient/OrthancCppClient.cpp
     ${ORTHANC_ROOT}/Resources/md5/md5.c
     ${ORTHANC_ROOT}/Resources/base64/base64.cpp
     ${ORTHANC_CPP_CLIENT_AUX}