Mercurial > hg > orthanc
view CMakeLists.txt @ 11:09f1eceaccec
merge
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 20 Jul 2012 11:46:52 +0200 |
parents | 3a584803783e |
children | c38716a8a146 |
line wrap: on
line source
cmake_minimum_required(VERSION 2.8) project(Palantir) include(${CMAKE_SOURCE_DIR}/Resources/CMake/AutoGeneratedCode.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/DownloadPackage.cmake) include(CheckIncludeFiles) SET(STATIC_BUILD ON CACHE BOOL "Static build of the third-party libraries (necessary for Windows)") SET(RELEASE_BUILD OFF CACHE BOOL "Release build") if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") CHECK_INCLUDE_FILES(rpc.h HAVE_UUID_H) else() CHECK_INCLUDE_FILES(uuid/uuid.h HAVE_UUID_H) endif() if ("${HAVE_UUID_H}" STREQUAL "") message(FATAL_ERROR "Please install the uuid-dev package") endif() SET(THIRD_PARTY_SOURCES) include(${CMAKE_SOURCE_DIR}/Resources/CMake/BoostConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/DcmtkConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/MongooseConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/ZlibConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/SQLiteConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/JsonCppConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibCurlConfiguration.cmake) include(${CMAKE_SOURCE_DIR}/Resources/CMake/LibPngConfiguration.cmake) if (${CMAKE_COMPILER_IS_GNUCXX}) set(CMAKE_C_FLAGS "-Wall -pedantic -Wno-implicit-function-declaration") # --std=c99 makes libcurl not to compile set(CMAKE_CXX_FLAGS "-Wall -pedantic -Wno-long-long -Wno-variadic-macros") elseif (${MSVC}) add_definitions( -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_SECURE_NO_DEPRECATE=1 ) include_directories(${CMAKE_SOURCE_DIR}/Resources/VisualStudio) link_libraries(netapi32) endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") add_definitions( -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 ) set(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined") set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined") # http://www.mail-archive.com/cmake@cmake.org/msg08837.html set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") link_libraries(uuid pthread rt) elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") add_definitions( -DWINVER=0x0501 -D_CRT_SECURE_NO_WARNINGS=1 ) link_libraries(rpcrt4 ws2_32) endif() if (${STATIC_BUILD}) add_definitions(-DPALANTIR_STATIC=1) else() add_definitions(-DPALANTIR_STATIC=0) endif() if (${RELEASE_BUILD}) add_definitions( -DPALANTIR_RELEASE=1 ) EmbedResources( PREPARE_DATABASE PalantirServer/PrepareDatabase.sql PALANTIR_EXPLORER PalantirExplorer ) else() add_definitions( -DPALANTIR_RELEASE=0 -DPALANTIR_PATH=\"${CMAKE_SOURCE_DIR}\" ) EmbedResources( PREPARE_DATABASE PalantirServer/PrepareDatabase.sql ) endif() add_library(CoreLibrary STATIC ${AUTOGENERATED_SOURCES} ${THIRD_PARTY_SOURCES} Core/ChunkedBuffer.cpp Core/Compression/BufferCompressor.cpp Core/Compression/ZlibCompressor.cpp Core/PalantirException.cpp Core/DicomFormat/DicomArray.cpp Core/DicomFormat/DicomMap.cpp Core/DicomFormat/DicomTag.cpp Core/FileStorage.cpp Core/HttpServer/EmbeddedResourceHttpHandler.cpp Core/HttpServer/FilesystemHttpHandler.cpp Core/HttpServer/HttpHandler.cpp Core/HttpServer/HttpOutput.cpp Core/HttpServer/MongooseServer.cpp Core/MultiThreading/BagOfRunnablesBySteps.cpp Core/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 PalantirCppClient/HttpClient.cpp PalantirCppClient/HttpException.cpp ) add_library(ServerLibrary PalantirServer/DicomIntegerPixelAccessor.cpp PalantirServer/DicomProtocol/DicomFindAnswers.cpp PalantirServer/DicomProtocol/DicomServer.cpp PalantirServer/DicomProtocol/DicomUserConnection.cpp PalantirServer/FromDcmtkBridge.cpp PalantirServer/Internals/CommandDispatcher.cpp PalantirServer/Internals/FindScp.cpp PalantirServer/Internals/MoveScp.cpp PalantirServer/Internals/StoreScp.cpp PalantirServer/PalantirInitialization.cpp PalantirServer/PalantirRestApi.cpp PalantirServer/ServerIndex.cpp PalantirServer/ToDcmtkBridge.cpp PalantirServer/ToDcmtkBridge.cpp PalantirServer/DicomIntegerPixelAccessor.cpp ) add_executable(Palantir PalantirServer/main.cpp ) add_executable(UnitTests ${GTEST_SOURCES} UnitTests/main.cpp UnitTests/SQLite.cpp UnitTests/SQLiteChromium.cpp UnitTests/Versions.cpp ) TARGET_LINK_LIBRARIES(Palantir ServerLibrary CoreLibrary) TARGET_LINK_LIBRARIES(UnitTests ServerLibrary CoreLibrary) find_package(Doxygen) if (DOXYGEN_FOUND) configure_file( ${CMAKE_SOURCE_DIR}/Resources/Palantir.doxygen ${CMAKE_CURRENT_BINARY_DIR}/Palantir.doxygen @ONLY) add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Palantir.doxygen WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM ) endif(DOXYGEN_FOUND)