comparison Resources/Orthanc/CMake/DownloadOrthancFramework.cmake @ 269:938257eebc03

simplification
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 10 Jun 2020 16:47:06 +0200
parents 4e9d30c19b4b
children d3b58d11e3ec 2c3555b8eabc
comparison
equal deleted inserted replaced
268:6171ef61c512 269:938257eebc03
133 # DICOMweb 1.1 (framework pre-1.6.0) 133 # DICOMweb 1.1 (framework pre-1.6.0)
134 set(ORTHANC_FRAMEWORK_MD5 "7e09e9b530a2f527854f0b782d7e0645") 134 set(ORTHANC_FRAMEWORK_MD5 "7e09e9b530a2f527854f0b782d7e0645")
135 endif() 135 endif()
136 endif() 136 endif()
137 endif() 137 endif()
138 else() 138
139 elseif (NOT ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
139 message("Using the Orthanc framework from a path of the filesystem. Assuming mainline version.") 140 message("Using the Orthanc framework from a path of the filesystem. Assuming mainline version.")
140 set(ORTHANC_FRAMEWORK_MAJOR 999) 141 set(ORTHANC_FRAMEWORK_MAJOR 999)
141 set(ORTHANC_FRAMEWORK_MINOR 999) 142 set(ORTHANC_FRAMEWORK_MINOR 999)
142 set(ORTHANC_FRAMEWORK_REVISION 999) 143 set(ORTHANC_FRAMEWORK_REVISION 999)
143 endif() 144 endif()
381 ## 382 ##
382 383
383 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system") 384 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
384 set(ORTHANC_FRAMEWORK_LIBDIR "" CACHE PATH "") 385 set(ORTHANC_FRAMEWORK_LIBDIR "" CACHE PATH "")
385 386
387 if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND
388 CMAKE_COMPILER_IS_GNUCXX) # MinGW
389 set(DYNAMIC_MINGW_STDLIB ON) # Disable static linking against libc (to throw exceptions)
390 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libstdc++")
391 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++")
392 endif()
393
394 include(CheckIncludeFile)
386 include(CheckIncludeFileCXX) 395 include(CheckIncludeFileCXX)
387 include(FindPythonInterp) 396 include(FindPythonInterp)
388 include(${CMAKE_CURRENT_LIST_DIR}/Compiler.cmake) 397 include(${CMAKE_CURRENT_LIST_DIR}/Compiler.cmake)
389 include(${CMAKE_CURRENT_LIST_DIR}/DownloadPackage.cmake) 398 include(${CMAKE_CURRENT_LIST_DIR}/DownloadPackage.cmake)
390 include(${CMAKE_CURRENT_LIST_DIR}/AutoGeneratedCode.cmake) 399 include(${CMAKE_CURRENT_LIST_DIR}/AutoGeneratedCode.cmake)
391 set(EMBED_RESOURCES_PYTHON ${CMAKE_CURRENT_LIST_DIR}/EmbedResources.py) 400 set(EMBED_RESOURCES_PYTHON ${CMAKE_CURRENT_LIST_DIR}/EmbedResources.py)
392 401
393 # Look for mandatory dependency JsonCpp (cf. JsonCppConfiguration.cmake) 402 if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
394 find_path(JSONCPP_INCLUDE_DIR json/reader.h 403 # Look for mandatory dependency JsonCpp (cf. JsonCppConfiguration.cmake)
395 /usr/include/jsoncpp 404 find_path(JSONCPP_INCLUDE_DIR json/reader.h
396 /usr/local/include/jsoncpp 405 /usr/include/jsoncpp
397 ) 406 /usr/local/include/jsoncpp
398 407 )
399 message("JsonCpp include dir: ${JSONCPP_INCLUDE_DIR}") 408
400 include_directories(${JSONCPP_INCLUDE_DIR}) 409 message("JsonCpp include dir: ${JSONCPP_INCLUDE_DIR}")
401 link_libraries(jsoncpp) 410 include_directories(${JSONCPP_INCLUDE_DIR})
402 411 link_libraries(jsoncpp)
403 CHECK_INCLUDE_FILE_CXX(${JSONCPP_INCLUDE_DIR}/json/reader.h HAVE_JSONCPP_H) 412
404 if (NOT HAVE_JSONCPP_H) 413 CHECK_INCLUDE_FILE_CXX(${JSONCPP_INCLUDE_DIR}/json/reader.h HAVE_JSONCPP_H)
405 message(FATAL_ERROR "Please install the libjsoncpp-dev package") 414 if (NOT HAVE_JSONCPP_H)
406 endif() 415 message(FATAL_ERROR "Please install the libjsoncpp-dev package")
407 416 endif()
408 # Look for mandatory dependency Boost (cf. BoostConfiguration.cmake) 417
409 include(FindBoost) 418 # Look for mandatory dependency Boost (cf. BoostConfiguration.cmake)
410 find_package(Boost COMPONENTS filesystem thread system date_time regex) 419 include(FindBoost)
411 420 find_package(Boost COMPONENTS filesystem thread system date_time regex)
412 if (NOT Boost_FOUND) 421
413 message(FATAL_ERROR "Unable to locate Boost on this system") 422 if (NOT Boost_FOUND)
414 endif() 423 message(FATAL_ERROR "Unable to locate Boost on this system")
415 424 endif()
416 include_directories(${Boost_INCLUDE_DIRS}) 425
417 link_libraries(${Boost_LIBRARIES}) 426 include_directories(${Boost_INCLUDE_DIRS})
427 link_libraries(${Boost_LIBRARIES})
428
429 # Optional component - Lua
430 if (ENABLE_LUA)
431 include(FindLua)
432
433 if (NOT LUA_FOUND)
434 message(FATAL_ERROR "Please install the liblua-dev package")
435 endif()
436
437 include_directories(${LUA_INCLUDE_DIR})
438 link_libraries(${LUA_LIBRARIES})
439 endif()
440
441 # Optional component - SQLite
442 if (ENABLE_SQLITE)
443 CHECK_INCLUDE_FILE(sqlite3.h HAVE_SQLITE_H)
444 if (NOT HAVE_SQLITE_H)
445 message(FATAL_ERROR "Please install the libsqlite3-dev package")
446 endif()
447 link_libraries(sqlite3)
448 endif()
449 endif()
450
451 # Optional component - Google Test
452 if (ENABLE_GOOGLE_TEST)
453 set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test")
454 set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google Test shipped with libgtest-dev (Debian only)")
455 mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
456 include(${CMAKE_CURRENT_LIST_DIR}/GoogleTestConfiguration.cmake)
457 endif()
418 458
419 # Look for Orthanc framework shared library 459 # Look for Orthanc framework shared library
420 include(CheckCXXSymbolExists) 460 include(CheckCXXSymbolExists)
421 461
422 find_path(ORTHANC_FRAMEWORK_INCLUDE_DIR OrthancFramework.h 462 if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
423 /usr/include/orthanc-framework 463 set(ORTHANC_FRAMEWORK_INCLUDE_DIR ${ORTHANC_FRAMEWORK_ROOT})
424 /usr/local/include/orthanc-framework 464 include_directories(${ORTHANC_FRAMEWORK_ROOT}/..)
425 ${ORTHANC_FRAMEWORK_ROOT} 465 else()
426 ) 466 find_path(ORTHANC_FRAMEWORK_INCLUDE_DIR OrthancFramework.h
467 /usr/include/orthanc-framework
468 /usr/local/include/orthanc-framework
469 ${ORTHANC_FRAMEWORK_ROOT}
470 )
471 endif()
427 472
428 message("Orthanc framework include dir: ${ORTHANC_FRAMEWORK_INCLUDE_DIR}") 473 message("Orthanc framework include dir: ${ORTHANC_FRAMEWORK_INCLUDE_DIR}")
429 include_directories(${ORTHANC_FRAMEWORK_INCLUDE_DIR}) 474 include_directories(${ORTHANC_FRAMEWORK_INCLUDE_DIR})
430 475
431 set(CMAKE_REQUIRED_INCLUDES "${ORTHANC_FRAMEWORK_INCLUDE_DIR}") 476 set(CMAKE_REQUIRED_INCLUDES "${ORTHANC_FRAMEWORK_INCLUDE_DIR}")