Mercurial > hg > orthanc
diff CMakeLists.txt @ 930:27d256e0b458 mac
integration mainline -> mac
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 24 Jun 2014 16:47:18 +0200 |
parents | 882833632b1f 816dccaeb7cf |
children | 3fb427ac3f53 427a1f996b7b 394a19d44f9d e57e08ed510f 8811abd6aec9 |
line wrap: on
line diff
--- a/CMakeLists.txt Wed Apr 16 17:02:07 2014 +0200 +++ b/CMakeLists.txt Tue Jun 24 16:47:18 2014 +0200 @@ -18,6 +18,8 @@ SET(DCMTK_DICTIONARY_DIR "" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (only when using system version of DCMTK)") SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") +SET(ENABLE_JPEG ON CACHE BOOL "Enable JPEG decompression") +SET(ENABLE_JPEG_LOSSLESS ON CACHE BOOL "Enable JPEG-LS (Lossless) decompression") # Advanced parameters to fine-tune linking against system libraries SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") @@ -44,6 +46,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 +54,125 @@ ##################################################################### +## 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/DicomImageInformation.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/ImageProcessing.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/Internals/DicomImageDecoder.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/ImageProcessingTests.cpp + UnitTestsSources/JpegLossless.cpp + ) + + + +##################################################################### ## Inclusion of third-party dependencies ##################################################################### @@ -86,6 +208,20 @@ endif() +if (ENABLE_JPEG) + add_definitions(-DORTHANC_JPEG_ENABLED=1) +else() + add_definitions(-DORTHANC_JPEG_ENABLED=0) +endif() + + +if (ENABLE_JPEG_LOSSLESS) + add_definitions(-DORTHANC_JPEG_LOSSLESS_ENABLED=1) +else() + add_definitions(-DORTHANC_JPEG_LOSSLESS_ENABLED=0) +endif() + + ##################################################################### ## Autogeneration of files @@ -123,6 +259,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}" ) @@ -137,57 +288,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/BagOfRunnablesBySteps.cpp - Core/MultiThreading/SharedMessageQueue.cpp - Core/MultiThreading/ThreadedCommandProcessor.cpp - Core/MultiThreading/ArrayFilledByThreads.cpp - Core/FileFormats/PngReader.cpp - Core/FileFormats/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} ) @@ -198,30 +299,7 @@ add_library(ServerLibrary STATIC ${DCMTK_SOURCES} - OrthancServer/DicomProtocol/DicomFindAnswers.cpp - OrthancServer/DicomProtocol/DicomServer.cpp - OrthancServer/DicomProtocol/DicomUserConnection.cpp - OrthancServer/FromDcmtkBridge.cpp - OrthancServer/Internals/CommandDispatcher.cpp - OrthancServer/Internals/FindScp.cpp - OrthancServer/Internals/MoveScp.cpp - OrthancServer/Internals/StoreScp.cpp - OrthancServer/OrthancInitialization.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 @@ -231,7 +309,7 @@ OrthancServer/main.cpp ) -target_link_libraries(Orthanc ServerLibrary CoreLibrary) +target_link_libraries(Orthanc ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) if (${OPENSSL_SOURCES_LENGTH} GREATER 0) target_link_libraries(Orthanc OpenSSL) @@ -258,21 +336,9 @@ include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) add_executable(UnitTests ${GTEST_SOURCES} - UnitTestsSources/DicomMap.cpp - UnitTestsSources/FileStorage.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 + ${ORTHANC_UNIT_TESTS_SOURCES} ) -target_link_libraries(UnitTests ServerLibrary CoreLibrary) +target_link_libraries(UnitTests ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) if (${OPENSSL_SOURCES_LENGTH} GREATER 0) target_link_libraries(UnitTests OpenSSL) @@ -318,28 +384,18 @@ 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/FileFormats/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/OrthancCppClient.cpp ${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/SharedLibrary.cpp ${ORTHANC_ROOT}/Resources/md5/md5.c ${ORTHANC_ROOT}/Resources/base64/base64.cpp ${ORTHANC_CPP_CLIENT_AUX} ${THIRD_PARTY_SOURCES} ${CURL_SOURCES} + ${GOOGLE_LOG_SOURCES} ) - if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD") set_target_properties(OrthancClient PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/SharedLibrary/Laaw/VersionScript.map" )