Mercurial > hg > orthanc-wsi
diff Resources/Graveyard/CMakeLists.txt @ 63:3252fbf149e3
test
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Nov 2016 18:23:09 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Graveyard/CMakeLists.txt Fri Nov 25 18:23:09 2016 +0100 @@ -0,0 +1,240 @@ +cmake_minimum_required(VERSION 2.8) +project(OrthancWSIApplications) + + +##################################################################### +## Parameters of the build +##################################################################### + +# Generic parameters +SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") +SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages") +SET(ENABLE_PROFILING OFF CACHE BOOL "Whether to enable the generation of profiling information with gprof") + +# Optional components +SET(ENABLE_SSL OFF CACHE BOOL "Include support for SSL") +SET(USE_DCMTK_361 OFF CACHE BOOL "Use forthcoming DCMTK version 3.6.1 in static builds (instead of 3.6.0)") + +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(TMP ON) +else() + set(TMP OFF) +endif() + + +# Advanced parameters to fine-tune linking against system libraries +SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost") +SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl") +SET(USE_SYSTEM_DCMTK ON CACHE BOOL "Use the system version of DCMTK") +SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") +SET(USE_SYSTEM_LIBJPEG ON CACHE BOOL "Use the system version of libjpeg") +SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of libpng") +SET(USE_SYSTEM_LIBTIFF ON CACHE BOOL "Use the system version of libtiff") +SET(USE_SYSTEM_OPENJPEG ON CACHE BOOL "Use the system version of OpenJpeg") +SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL") +SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib") + +SET(DCMTK_DICTIONARY_DIR "" CACHE PATH "Directory containing the DCMTK dictionaries \"dicom.dic\" and \"private.dic\" (only when using system version of DCMTK)") + + +##################################################################### +## Configure mandatory third-party components +##################################################################### + +SET(ORTHANC_WSI_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) +SET(ORTHANC_ROOT ${ORTHANC_WSI_DIR}/Resources/Orthanc) +SET(USE_OPENJPEG_JP2 ON) +SET(ENABLE_JPEG OFF) # Disable DCMTK's support for JPEG, that clashes with libtiff +SET(ENABLE_JPEG_LOSSLESS OFF) # Disable DCMTK's support for JPEG-LS +SET(ENABLE_DCMTK_NETWORK OFF) # Disable DCMTK's support for DICOM networking +SET(STANDALONE_BUILD ON) # Embed DCMTK's dictionaries for static builds +SET(USE_DCMTK_361_PRIVATE_DIC OFF) # No need for private tags + +include(CheckIncludeFiles) +include(CheckIncludeFileCXX) +include(CheckLibraryExists) +include(FindPythonInterp) +include(FindPkgConfig) +include(CheckSymbolExists) + +include(${ORTHANC_ROOT}/Resources/CMake/Compiler.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/AutoGeneratedCode.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/VisualStudioPrecompiledHeaders.cmake) + +# Third-party components shipped with Orthanc +include(${ORTHANC_ROOT}/Resources/CMake/DcmtkConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/LibJpegConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake) +include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake) + +# Include components specific to WSI +include(${ORTHANC_WSI_DIR}/Resources/CMake/Version.cmake) +include(${ORTHANC_WSI_DIR}/Resources/CMake/BoostExtendedConfiguration.cmake) +include(${ORTHANC_WSI_DIR}/Resources/CMake/OpenJpegConfiguration.cmake) +include(${ORTHANC_WSI_DIR}/Resources/CMake/LibTiffConfiguration.cmake) + +add_definitions( + -DORTHANC_ENABLE_BASE64=1 + -DORTHANC_ENABLE_CURL=1 + -DORTHANC_ENABLE_DCMTK=1 + -DORTHANC_ENABLE_LOGGING=1 + -DORTHANC_ENABLE_MD5=0 + -DORTHANC_ENABLE_JPEG=0 # Disable DCMTK's support for JPEG + -DORTHANC_ENABLE_PKCS11=0 + -DORTHANC_ENABLE_PLUGINS=1 # To enable class Orthanc::SharedLibrary + -DORTHANC_ENABLE_PUGIXML=0 + -DORTHANC_SANDBOXED=0 + ) + + +##################################################################### +## Configure optional third-party components +##################################################################### + +if (ENABLE_SSL) + set(ENABLE_PKCS11 OFF) + add_definitions(-DORTHANC_ENABLE_SSL=1) + include(${ORTHANC_ROOT}/Resources/CMake/OpenSslConfiguration.cmake) +else() + add_definitions(-DORTHANC_ENABLE_SSL=0) +endif() + + +##################################################################### +## Create the list of the source files that depend upon the +## precompiled headers +##################################################################### + +set(ORTHANC_WSI_SOURCES + ${ORTHANC_WSI_DIR}/Framework/Algorithms/PyramidReader.cpp + ${ORTHANC_WSI_DIR}/Framework/Algorithms/ReconstructPyramidCommand.cpp + ${ORTHANC_WSI_DIR}/Framework/Algorithms/TranscodeTileCommand.cpp + ${ORTHANC_WSI_DIR}/Framework/DicomToolbox.cpp + ${ORTHANC_WSI_DIR}/Framework/DicomizerParameters.cpp + ${ORTHANC_WSI_DIR}/Framework/Enumerations.cpp + ${ORTHANC_WSI_DIR}/Framework/ImageToolbox.cpp + ${ORTHANC_WSI_DIR}/Framework/ImagedVolumeParameters.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/DecodedTiledPyramid.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramid.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidInstance.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/DicomPyramidLevel.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/HierarchicalTiff.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/OpenSlideLibrary.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/OpenSlidePyramid.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/PyramidWithRawTiles.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/SingleLevelDecodedPyramid.cpp + ${ORTHANC_WSI_DIR}/Framework/Inputs/TiledPyramidStatistics.cpp + ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Reader.cpp + ${ORTHANC_WSI_DIR}/Framework/Jpeg2000Writer.cpp + ${ORTHANC_WSI_DIR}/Framework/Targets/FolderTarget.cpp + ${ORTHANC_WSI_DIR}/Framework/Targets/OrthancTarget.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/DicomPyramidWriter.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/HierarchicalTiffWriter.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/InMemoryTiledImage.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/MultiframeDicomWriter.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/PyramidWriterBase.cpp + ${ORTHANC_WSI_DIR}/Framework/Outputs/TruncatedPyramidWriter.cpp + ) + +set(ORTHANC_CORE_SOURCES + ${ORTHANC_ROOT}/Core/ChunkedBuffer.cpp + ${ORTHANC_ROOT}/Core/DicomFormat/DicomArray.cpp + ${ORTHANC_ROOT}/Core/DicomFormat/DicomMap.cpp + ${ORTHANC_ROOT}/Core/DicomFormat/DicomTag.cpp + ${ORTHANC_ROOT}/Core/DicomFormat/DicomValue.cpp + ${ORTHANC_ROOT}/Core/Enumerations.cpp + ${ORTHANC_ROOT}/Core/HttpClient.cpp + ${ORTHANC_ROOT}/Core/Images/IImageWriter.cpp + ${ORTHANC_ROOT}/Core/Images/Image.cpp + ${ORTHANC_ROOT}/Core/Images/ImageAccessor.cpp + ${ORTHANC_ROOT}/Core/Images/ImageBuffer.cpp + ${ORTHANC_ROOT}/Core/Images/ImageProcessing.cpp + ${ORTHANC_ROOT}/Core/Images/JpegErrorManager.cpp + ${ORTHANC_ROOT}/Core/Images/JpegReader.cpp + ${ORTHANC_ROOT}/Core/Images/JpegWriter.cpp + ${ORTHANC_ROOT}/Core/Images/PngReader.cpp + ${ORTHANC_ROOT}/Core/Images/PngWriter.cpp + ${ORTHANC_ROOT}/Core/Logging.cpp + ${ORTHANC_ROOT}/Core/MultiThreading/BagOfTasksProcessor.cpp + ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp + ${ORTHANC_ROOT}/Core/SystemToolbox.cpp + ${ORTHANC_ROOT}/Core/TemporaryFile.cpp + ${ORTHANC_ROOT}/Core/Toolbox.cpp + ${ORTHANC_ROOT}/Core/WebServiceParameters.cpp + ${ORTHANC_ROOT}/OrthancServer/FromDcmtkBridge.cpp + ${ORTHANC_ROOT}/OrthancServer/ServerEnumerations.cpp + ${ORTHANC_ROOT}/OrthancServer/ToDcmtkBridge.cpp + ${ORTHANC_ROOT}/Plugins/Engine/SharedLibrary.cpp + ${ORTHANC_ROOT}/Resources/ThirdParty/base64/base64.cpp + ) + +EmbedResources( + ${DCMTK_DICTIONARIES} + BRIGHTFIELD_OPTICAL_PATH ${ORTHANC_WSI_DIR}/Resources/BrightfieldOpticalPath.json + SAMPLE_DATASET ${ORTHANC_WSI_DIR}/Resources/SampleDataset.json + SRGB_ICC_PROFILE ${ORTHANC_WSI_DIR}/Resources/sRGB.icc + ) + + +##################################################################### +## Setup precompiled headers for Microsoft Visual Studio +##################################################################### + +if (MSVC) + add_definitions(-DORTHANC_USE_PRECOMPILED_HEADERS=1) + + ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( + "PrecompiledHeaders.h" "${ORTHANC_WSI_DIR}/Framework/Orthanc/Core/PrecompiledHeaders.cpp" ORTHANC_CORE_SOURCES) + + ADD_VISUAL_STUDIO_PRECOMPILED_HEADERS( + "PrecompiledHeadersWSI.h" "${ORTHANC_WSI_DIR}/Framework/PrecompiledHeadersWSI.cpp" ORTHANC_WSI_SOURCES) + + source_group(ThirdParty\\OrthancCore FILES ${ORTHANC_CORE_SOURCES}) +endif() + + +##################################################################### +## Build a hello world +##################################################################### + +add_executable(Hello + ${ORTHANC_CORE_SOURCES} + ${ORTHANC_WSI_SOURCES} + ${AUTOGENERATED_SOURCES} + + # Mandatory components + ${BOOST_SOURCES} + ${CURL_SOURCES} + ${DCMTK_SOURCES} + ${JSONCPP_SOURCES} + ${LIBJPEG_SOURCES} + ${LIBPNG_SOURCES} + ${LIBTIFF_SOURCES} + ${OPENJPEG_SOURCES} + ${ZLIB_SOURCES} + + # Optional components + ${OPENSSL_SOURCES} + + ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomDatasetReader.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomPath.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/DicomTag.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/FullOrthancDataset.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/IOrthancConnection.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancHttpConnection.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/OrthancPluginConnection.cpp + ${ORTHANC_ROOT}/Plugins/Samples/Common/SimplifiedOrthancDataset.cpp + + Hello.cpp + ${ORTHANC_WSI_DIR}/Applications/ApplicationToolbox.cpp + + ${DICOMIZER_RESOURCES} + ) + +add_definitions(-DHAS_ORTHANC_EXCEPTION=1) + +target_link_libraries(Hello ${DCMTK_LIBRARIES})