changeset 838:aabc3b430890 templating

integration mainline -> templating
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Jun 2014 13:24:44 +0200
parents d8f5de5b9517 (current diff) a4d2be5154a9 (diff)
children 427a1f996b7b
files CMakeLists.txt
diffstat 107 files changed, 1062 insertions(+), 115 deletions(-) [+]
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}
--- a/Core/Cache/MemoryCache.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Cache/MemoryCache.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "MemoryCache.h"
 
 #include <stdlib.h>  // This fixes a problem in glog for recent
--- a/Core/ChunkedBuffer.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/ChunkedBuffer.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "ChunkedBuffer.h"
 
 #include <cassert>
--- a/Core/Compression/BufferCompressor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Compression/BufferCompressor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "BufferCompressor.h"
 
 namespace Orthanc
--- a/Core/Compression/HierarchicalZipWriter.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Compression/HierarchicalZipWriter.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "HierarchicalZipWriter.h"
 
 #include "../Toolbox.h"
--- a/Core/Compression/ZipWriter.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Compression/ZipWriter.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,9 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+
+#include "../PrecompiledHeaders.h"
+
 #ifndef NOMINMAX
 #define NOMINMAX
 #endif
--- a/Core/Compression/ZlibCompressor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Compression/ZlibCompressor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "ZlibCompressor.h"
 
 #include <stdio.h>
--- a/Core/DicomFormat/DicomArray.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/DicomFormat/DicomArray.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "DicomArray.h"
 
 #include <stdio.h>
--- a/Core/DicomFormat/DicomInstanceHasher.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/DicomFormat/DicomInstanceHasher.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+
+#include "../PrecompiledHeaders.h"
 #include "DicomInstanceHasher.h"
 
 #include "../OrthancException.h"
--- a/Core/DicomFormat/DicomIntegerPixelAccessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/DicomFormat/DicomIntegerPixelAccessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,8 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
+
 #ifndef NOMINMAX
 #define NOMINMAX
 #endif
--- a/Core/DicomFormat/DicomMap.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/DicomFormat/DicomMap.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "DicomMap.h"
 
 #include <stdio.h>
--- a/Core/DicomFormat/DicomTag.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/DicomFormat/DicomTag.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "DicomTag.h"
 
 #include "../OrthancException.h"
--- a/Core/Enumerations.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Enumerations.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "Enumerations.h"
 
 #include "OrthancException.h"
--- a/Core/FileStorage/CompressedFileStorageAccessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/FileStorage/CompressedFileStorageAccessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "CompressedFileStorageAccessor.h"
 
 #include "../OrthancException.h"
--- a/Core/FileStorage/FileStorage.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/FileStorage/FileStorage.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "FileStorage.h"
 
 // http://stackoverflow.com/questions/1576272/storing-large-number-of-files-in-file-system
--- a/Core/FileStorage/FileStorageAccessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/FileStorage/FileStorageAccessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "FileStorageAccessor.h"
 
 namespace Orthanc
--- a/Core/FileStorage/StorageAccessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/FileStorage/StorageAccessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "StorageAccessor.h"
 
 namespace Orthanc
--- a/Core/HttpClient.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpClient.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "HttpClient.h"
 
 #include "../Core/Toolbox.h"
--- a/Core/HttpServer/EmbeddedResourceHttpHandler.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/EmbeddedResourceHttpHandler.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "EmbeddedResourceHttpHandler.h"
 
 #include "../OrthancException.h"
--- a/Core/HttpServer/FilesystemHttpHandler.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/FilesystemHttpHandler.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "FilesystemHttpHandler.h"
 
 #include "../OrthancException.h"
--- a/Core/HttpServer/FilesystemHttpSender.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/FilesystemHttpSender.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,7 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+#include "../PrecompiledHeaders.h"
 #include "FilesystemHttpSender.h"
 
 #include "../Toolbox.h"
--- a/Core/HttpServer/HttpFileSender.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/HttpFileSender.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "HttpFileSender.h"
 
 #include <boost/lexical_cast.hpp>
--- a/Core/HttpServer/HttpHandler.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/HttpHandler.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "HttpHandler.h"
 
 #include <string.h>
--- a/Core/HttpServer/HttpOutput.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/HttpOutput.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "HttpOutput.h"
 
 #include <iostream>
--- a/Core/HttpServer/MongooseServer.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/HttpServer/MongooseServer.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -32,6 +32,7 @@
 
 // http://en.highscore.de/cpp/boost/stringhandling.html
 
+#include "../PrecompiledHeaders.h"
 #include "MongooseServer.h"
 
 #include <algorithm>
--- a/Core/ImageFormats/ImageAccessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/ImageFormats/ImageAccessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "ImageAccessor.h"
 
 #include "../OrthancException.h"
--- a/Core/ImageFormats/ImageBuffer.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/ImageFormats/ImageBuffer.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "ImageBuffer.h"
 
 namespace Orthanc
--- a/Core/ImageFormats/PngReader.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/ImageFormats/PngReader.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "PngReader.h"
 
 #include "../OrthancException.h"
--- a/Core/ImageFormats/PngWriter.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/ImageFormats/PngWriter.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "PngWriter.h"
 
 #include <vector>
--- a/Core/Lua/LuaContext.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Lua/LuaContext.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "LuaContext.h"
 
 #include <glog/logging.h>
--- a/Core/Lua/LuaFunctionCall.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Lua/LuaFunctionCall.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "LuaFunctionCall.h"
 
 
--- a/Core/MultiThreading/ArrayFilledByThreads.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/ArrayFilledByThreads.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "../PrecompiledHeaders.h"
 #include "ArrayFilledByThreads.h"
 
 #include "../MultiThreading/ThreadedCommandProcessor.h"
--- a/Core/MultiThreading/BagOfRunnablesBySteps.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/BagOfRunnablesBySteps.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "BagOfRunnablesBySteps.h"
 
 #include <stack>
--- a/Core/MultiThreading/Mutex.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/Mutex.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "Mutex.h"
 
 #include "../OrthancException.h"
--- a/Core/MultiThreading/ReaderWriterLock.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/ReaderWriterLock.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "ReaderWriterLock.h"
 
 #include <boost/thread/shared_mutex.hpp>
--- a/Core/MultiThreading/SharedMessageQueue.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/SharedMessageQueue.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "SharedMessageQueue.h"
 
 namespace Orthanc
--- a/Core/MultiThreading/ThreadedCommandProcessor.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/MultiThreading/ThreadedCommandProcessor.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "ThreadedCommandProcessor.h"
 
 #include "../OrthancException.h"
--- a/Core/OrthancException.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/OrthancException.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "OrthancException.h"
 
 namespace Orthanc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Core/PrecompiledHeaders.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,33 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeaders.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Core/PrecompiledHeaders.h	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,57 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#pragma once
+
+#if ORTHANC_USE_PRECOMPILED_HEADERS == 1
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/lexical_cast.hpp>
+#include <boost/locale.hpp>
+#include <boost/regex.hpp>
+#include <boost/thread.hpp>
+#include <boost/thread/shared_mutex.hpp>
+
+#include <glog/logging.h>
+#include <json/value.h>
+
+#include "Enumerations.h"
+#include "OrthancException.h"
+#include "Toolbox.h"
+#include "Uuid.h"
+
+#endif
--- a/Core/RestApi/RestApi.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/RestApi/RestApi.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "RestApi.h"
 
 #include <stdlib.h>   // To define "_exit()" under Windows
--- a/Core/RestApi/RestApiOutput.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/RestApi/RestApiOutput.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "RestApiOutput.h"
 
 #include <boost/lexical_cast.hpp>
--- a/Core/RestApi/RestApiPath.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/RestApi/RestApiPath.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "RestApiPath.h"
 
 #include <cassert>
--- a/Core/SQLite/Connection.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/Connection.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -34,6 +34,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "Connection.h"
 
 #include <memory>
--- a/Core/SQLite/FunctionContext.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/FunctionContext.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -31,6 +31,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "FunctionContext.h"
 
 #include <sqlite3.h>
--- a/Core/SQLite/Statement.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/Statement.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -34,6 +34,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "Statement.h"
 
 #include "Connection.h"
--- a/Core/SQLite/StatementId.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/StatementId.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -34,6 +34,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "StatementId.h"
 
 #include <string.h>
--- a/Core/SQLite/StatementReference.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/StatementReference.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -34,6 +34,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "StatementReference.h"
 
 #include "../OrthancException.h"
--- a/Core/SQLite/Transaction.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/SQLite/Transaction.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -34,6 +34,7 @@
  **/
 
 
+#include "../PrecompiledHeaders.h"
 #include "Transaction.h"
 
 namespace Orthanc
--- a/Core/Toolbox.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Toolbox.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "Toolbox.h"
 
 #include "OrthancException.h"
--- a/Core/Uuid.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/Core/Uuid.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeaders.h"
 #include "Uuid.h"
 
 // http://stackoverflow.com/a/1626302
--- a/NEWS	Wed May 28 17:54:59 2014 +0200
+++ b/NEWS	Mon Jun 02 13:24:44 2014 +0200
@@ -1,6 +1,8 @@
 Pending changes in the mainline
 ===============================
 
+* Precompiled headers for Microsoft Visual Studio
+
 
 Version 0.7.5 (2014/05/08)
 ==========================
--- a/OrthancCppClient/Instance.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancCppClient/Instance.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../Core/PrecompiledHeaders.h"
 #include "Instance.h"
 
 #include "OrthancConnection.h"
--- a/OrthancCppClient/OrthancConnection.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancCppClient/OrthancConnection.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../Core/PrecompiledHeaders.h"
 #include "OrthancConnection.h"
 
 #include "../Core/Toolbox.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OrthancCppClient/OrthancCppClient.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,52 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+/**
+ * The sources of the C++ client library must be put in this file to
+ * avoid problems with precompiled headers.
+ **/
+
+#include "../Core/Enumerations.cpp"
+#include "../Core/HttpClient.cpp"
+#include "../Core/ImageFormats/ImageAccessor.cpp"
+#include "../Core/ImageFormats/ImageBuffer.cpp"
+#include "../Core/ImageFormats/PngReader.cpp"
+#include "../Core/MultiThreading/ArrayFilledByThreads.cpp"
+#include "../Core/MultiThreading/SharedMessageQueue.cpp"
+#include "../Core/MultiThreading/ThreadedCommandProcessor.cpp"
+#include "../Core/OrthancException.cpp"
+#include "../Core/Toolbox.cpp"
+#include "../OrthancCppClient/Instance.cpp"
+#include "../OrthancCppClient/OrthancConnection.cpp"
+#include "../OrthancCppClient/Patient.cpp"
+#include "../OrthancCppClient/Series.cpp"
+#include "../OrthancCppClient/Study.cpp"
--- a/OrthancCppClient/Patient.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancCppClient/Patient.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../Core/PrecompiledHeaders.h"
 #include "Patient.h"
 
 #include "OrthancConnection.h"
--- a/OrthancCppClient/Series.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancCppClient/Series.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../Core/PrecompiledHeaders.h"
 #include "Series.h"
 
 #include "OrthancConnection.h"
--- a/OrthancCppClient/Study.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancCppClient/Study.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../Core/PrecompiledHeaders.h"
 #include "Study.h"
 
 #include "OrthancConnection.h"
--- a/OrthancServer/DatabaseWrapper.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DatabaseWrapper.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "DatabaseWrapper.h"
 
 #include "../Core/DicomFormat/DicomArray.h"
--- a/OrthancServer/DicomModification.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomModification.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "DicomModification.h"
 
 #include "../Core/OrthancException.h"
--- a/OrthancServer/DicomProtocol/DicomFindAnswers.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomProtocol/DicomFindAnswers.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "DicomFindAnswers.h"
 
 #include "../FromDcmtkBridge.h"
--- a/OrthancServer/DicomProtocol/DicomServer.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomProtocol/DicomServer.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "DicomServer.h"
 
 #include "../../Core/OrthancException.h"
--- a/OrthancServer/DicomProtocol/DicomUserConnection.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomProtocol/DicomUserConnection.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -78,6 +78,7 @@
 =========================================================================*/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "DicomUserConnection.h"
 
 #include "../../Core/OrthancException.h"
--- a/OrthancServer/DicomProtocol/RemoteModalityParameters.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomProtocol/RemoteModalityParameters.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "RemoteModalityParameters.h"
 
 #include "../../Core/OrthancException.h"
--- a/OrthancServer/DicomProtocol/ReusableDicomUserConnection.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/DicomProtocol/ReusableDicomUserConnection.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "ReusableDicomUserConnection.h"
 
 #include "../../Core/OrthancException.h"
--- a/OrthancServer/FromDcmtkBridge.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/FromDcmtkBridge.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -72,6 +72,8 @@
 =========================================================================*/
 
 
+#include "PrecompiledHeadersServer.h"
+
 #ifndef NOMINMAX
 #define NOMINMAX
 #endif
--- a/OrthancServer/Internals/CommandDispatcher.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/Internals/CommandDispatcher.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -79,6 +79,7 @@
 =========================================================================*/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "CommandDispatcher.h"
 
 #include "FindScp.h"
--- a/OrthancServer/Internals/FindScp.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/Internals/FindScp.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -79,6 +79,7 @@
 
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "FindScp.h"
 
 #include "../FromDcmtkBridge.h"
--- a/OrthancServer/Internals/MoveScp.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/Internals/MoveScp.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -79,6 +79,7 @@
 =========================================================================*/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "MoveScp.h"
 
 #include <memory>
--- a/OrthancServer/Internals/StoreScp.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/Internals/StoreScp.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -79,6 +79,7 @@
 =========================================================================*/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "StoreScp.h"
 
 #include "../FromDcmtkBridge.h"
--- a/OrthancServer/OrthancFindRequestHandler.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancFindRequestHandler.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+
+#include "PrecompiledHeadersServer.h"
 #include "OrthancFindRequestHandler.h"
 
 #include <glog/logging.h>
--- a/OrthancServer/OrthancInitialization.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancInitialization.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "OrthancInitialization.h"
 
 #include "../Core/HttpClient.h"
--- a/OrthancServer/OrthancMoveRequestHandler.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancMoveRequestHandler.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+
+#include "PrecompiledHeadersServer.h"
 #include "OrthancMoveRequestHandler.h"
 
 #include <glog/logging.h>
--- a/OrthancServer/OrthancPeerParameters.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancPeerParameters.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "OrthancPeerParameters.h"
 
 #include "../Core/OrthancException.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../DicomModification.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestApi.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestApi.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../DicomModification.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestArchive.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestArchive.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../../Core/Compression/HierarchicalZipWriter.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestChanges.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestChanges.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include <glog/logging.h>
--- a/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../OrthancInitialization.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../ServerToolbox.h"
--- a/OrthancServer/OrthancRestApi/OrthancRestSystem.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/OrthancRestApi/OrthancRestSystem.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "../PrecompiledHeadersServer.h"
 #include "OrthancRestApi.h"
 
 #include "../OrthancInitialization.h"
--- a/OrthancServer/ParsedDicomFile.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ParsedDicomFile.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -72,6 +72,8 @@
 =========================================================================*/
 
 
+#include "PrecompiledHeadersServer.h"
+
 #ifndef NOMINMAX
 #define NOMINMAX
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OrthancServer/PrecompiledHeadersServer.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,33 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersServer.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OrthancServer/PrecompiledHeadersServer.h	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,77 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#pragma once
+
+#include "../Core/PrecompiledHeaders.h"
+
+#if ORTHANC_USE_PRECOMPILED_HEADERS == 1
+
+// DCMTK
+#include <dcmtk/dcmdata/dcchrstr.h>
+#include <dcmtk/dcmdata/dcdeftag.h>
+#include <dcmtk/dcmdata/dcdicent.h>
+#include <dcmtk/dcmdata/dcdict.h>
+#include <dcmtk/dcmdata/dcfilefo.h>
+#include <dcmtk/dcmdata/dcistrmb.h>
+#include <dcmtk/dcmdata/dcistrmf.h>
+#include <dcmtk/dcmdata/dcmetinf.h>
+#include <dcmtk/dcmdata/dcostrmb.h>
+#include <dcmtk/dcmdata/dcpixel.h>
+#include <dcmtk/dcmdata/dcpixseq.h>
+#include <dcmtk/dcmdata/dcpxitem.h>
+#include <dcmtk/dcmdata/dcuid.h>
+#include <dcmtk/dcmdata/dcvrae.h>
+#include <dcmtk/dcmdata/dcvras.h>
+#include <dcmtk/dcmdata/dcvrcs.h>
+#include <dcmtk/dcmdata/dcvrda.h>
+#include <dcmtk/dcmdata/dcvrds.h>
+#include <dcmtk/dcmdata/dcvrdt.h>
+#include <dcmtk/dcmdata/dcvrfd.h>
+#include <dcmtk/dcmdata/dcvrfl.h>
+#include <dcmtk/dcmdata/dcvris.h>
+#include <dcmtk/dcmdata/dcvrlo.h>
+#include <dcmtk/dcmdata/dcvrlt.h>
+#include <dcmtk/dcmdata/dcvrpn.h>
+#include <dcmtk/dcmdata/dcvrsh.h>
+#include <dcmtk/dcmdata/dcvrsl.h>
+#include <dcmtk/dcmdata/dcvrss.h>
+#include <dcmtk/dcmdata/dcvrst.h>
+#include <dcmtk/dcmdata/dcvrtm.h>
+#include <dcmtk/dcmdata/dcvrui.h>
+#include <dcmtk/dcmdata/dcvrul.h>
+#include <dcmtk/dcmdata/dcvrus.h>
+#include <dcmtk/dcmdata/dcvrut.h>
+#include <dcmtk/dcmnet/dcasccfg.h>
+#include <dcmtk/dcmnet/diutil.h>
+
+#endif
--- a/OrthancServer/ServerContext.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ServerContext.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "ServerContext.h"
 
 #include "../Core/HttpServer/FilesystemHttpSender.h"
--- a/OrthancServer/ServerEnumerations.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ServerEnumerations.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -29,6 +29,8 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  **/
 
+
+#include "PrecompiledHeadersServer.h"
 #include "ServerEnumerations.h"
 
 #include "../Core/OrthancException.h"
--- a/OrthancServer/ServerIndex.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ServerIndex.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "ServerIndex.h"
 
 #ifndef NOMINMAX
--- a/OrthancServer/ServerToolbox.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ServerToolbox.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "ServerToolbox.h"
 
 #include "../Core/OrthancException.h"
--- a/OrthancServer/ToDcmtkBridge.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/ToDcmtkBridge.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "ToDcmtkBridge.h"
 
 #include <memory>
--- a/OrthancServer/main.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/OrthancServer/main.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -30,6 +30,7 @@
  **/
 
 
+#include "PrecompiledHeadersServer.h"
 #include "OrthancRestApi/OrthancRestApi.h"
 
 #include <fstream>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Resources/CMake/VisualStudioPrecompiledHeaders.cmake	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,14 @@
+macro(ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS PrecompiledHeaders PrecompiledSource Sources)
+  get_filename_component(PrecompiledBasename ${PrecompiledHeaders} NAME_WE)
+  set(PrecompiledBinary "${CMAKE_CURRENT_BINARY_DIR}/${PrecompiledBasename}.pch")
+
+  set_source_files_properties(${PrecompiledSource}
+    PROPERTIES COMPILE_FLAGS "/Yc\"${PrecompiledHeaders}\" /Fp\"${PrecompiledBinary}\""
+    OBJECT_OUTPUTS "${PrecompiledBinary}")
+
+  set_source_files_properties(${${Sources}}
+    PROPERTIES COMPILE_FLAGS "/Yu\"${PrecompiledHeaders}\" /FI\"${PrecompiledHeaders}\" /Fp\"${PrecompiledBinary}\""
+    OBJECT_DEPENDS "${PrecompiledBinary}")
+
+  list(APPEND ${Sources} ${PrecompiledSource})
+endmacro()
--- a/UnitTestsSources/DicomMap.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/DicomMap.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../Core/Uuid.h"
--- a/UnitTestsSources/FileStorage.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/FileStorage.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <ctype.h>
--- a/UnitTestsSources/FromDcmtk.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/FromDcmtk.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../OrthancServer/FromDcmtkBridge.h"
--- a/UnitTestsSources/Lua.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/Lua.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../Core/Lua/LuaFunctionCall.h"
--- a/UnitTestsSources/MemoryCache.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/MemoryCache.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <glog/logging.h>
--- a/UnitTestsSources/MultiThreading.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/MultiThreading.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <glog/logging.h>
--- a/UnitTestsSources/Png.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/Png.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <stdint.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UnitTestsSources/PrecompiledHeadersUnitTests.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,33 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UnitTestsSources/PrecompiledHeadersUnitTests.h	Mon Jun 02 13:24:44 2014 +0200
@@ -0,0 +1,40 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#pragma once
+
+#include "../OrthancServer/PrecompiledHeadersServer.h"
+
+#if ORTHANC_USE_PRECOMPILED_HEADERS == 1
+#include "../Core/EnumerationDictionary.h"
+#include <gtest/gtest.h>
+#endif
--- a/UnitTestsSources/RestApi.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/RestApi.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <ctype.h>
--- a/UnitTestsSources/SQLite.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/SQLite.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../Core/Toolbox.h"
--- a/UnitTestsSources/SQLiteChromium.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/SQLiteChromium.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../Core/Toolbox.h"
--- a/UnitTestsSources/ServerIndexTests.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/ServerIndexTests.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../OrthancServer/DatabaseWrapper.h"
--- a/UnitTestsSources/UnitTestsMain.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/UnitTestsMain.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "../Core/EnumerationDictionary.h"
 
 #include "gtest/gtest.h"
--- a/UnitTestsSources/Versions.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/Versions.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include <stdint.h>
--- a/UnitTestsSources/Zip.cpp	Wed May 28 17:54:59 2014 +0200
+++ b/UnitTestsSources/Zip.cpp	Mon Jun 02 13:24:44 2014 +0200
@@ -1,3 +1,36 @@
+/**
+ * Orthanc - A Lightweight, RESTful DICOM Store
+ * Copyright (C) 2012-2014 Medical Physics Department, CHU of Liege,
+ * Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * In addition, as a special exception, the copyright holders of this
+ * program give permission to link the code of its release with the
+ * OpenSSL project's "OpenSSL" library (or with modified versions of it
+ * that use the same license as the "OpenSSL" library), and distribute
+ * the linked executables. You must obey the GNU General Public License
+ * in all respects for all of the code used other than "OpenSSL". If you
+ * modify file(s) with this exception, you may extend this exception to
+ * your version of the file(s), but you are not obligated to do so. If
+ * you do not wish to do so, delete this exception statement from your
+ * version. If you delete this exception statement from all source files
+ * in the program, then also delete it here.
+ * 
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "PrecompiledHeadersUnitTests.h"
 #include "gtest/gtest.h"
 
 #include "../Core/OrthancException.h"