Mercurial > hg > orthanc
comparison OrthancServer/CMakeLists.txt @ 5024:c2ebc47f4f18 delayed-deletion
wip: adding DelayedDeletion plugin
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 20 Jun 2022 16:53:21 +0200 |
parents | d0c34145320c |
children | 6ad2bea0e07e |
comparison
equal
deleted
inserted
replaced
5021:559b35d18ef7 | 5024:c2ebc47f4f18 |
---|---|
58 SET(BUILD_MODALITY_WORKLISTS ON CACHE BOOL "Whether to build the sample plugin to serve modality worklists") | 58 SET(BUILD_MODALITY_WORKLISTS ON CACHE BOOL "Whether to build the sample plugin to serve modality worklists") |
59 SET(BUILD_RECOVER_COMPRESSED_FILE ON CACHE BOOL "Whether to build the companion tool to recover files compressed using Orthanc") | 59 SET(BUILD_RECOVER_COMPRESSED_FILE ON CACHE BOOL "Whether to build the companion tool to recover files compressed using Orthanc") |
60 SET(BUILD_SERVE_FOLDERS ON CACHE BOOL "Whether to build the ServeFolders plugin") | 60 SET(BUILD_SERVE_FOLDERS ON CACHE BOOL "Whether to build the ServeFolders plugin") |
61 SET(BUILD_CONNECTIVITY_CHECKS ON CACHE BOOL "Whether to build the ConnectivityChecks plugin") | 61 SET(BUILD_CONNECTIVITY_CHECKS ON CACHE BOOL "Whether to build the ConnectivityChecks plugin") |
62 SET(BUILD_HOUSEKEEPER ON CACHE BOOL "Whether to build the Housekeeper plugin") | 62 SET(BUILD_HOUSEKEEPER ON CACHE BOOL "Whether to build the Housekeeper plugin") |
63 SET(BUILD_DELAYED_DELETION ON CACHE BOOL "Whether to build the DelayedDeletion plugin") | |
63 SET(ENABLE_PLUGINS ON CACHE BOOL "Enable plugins") | 64 SET(ENABLE_PLUGINS ON CACHE BOOL "Enable plugins") |
64 SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") | 65 SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") |
65 | 66 |
66 | 67 |
67 ##################################################################### | 68 ##################################################################### |
534 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux | 535 LIBRARY DESTINATION share/orthanc/plugins # Destination for Linux |
535 ) | 536 ) |
536 endif() | 537 endif() |
537 | 538 |
538 | 539 |
540 if (ENABLE_PLUGINS AND (BUILD_DELAYED_DELETION OR BUILD_CONNECTIVITY_CHECKS)) | |
541 include(ExternalProject) | |
542 | |
543 endif() | |
544 | |
539 | 545 |
540 ##################################################################### | 546 ##################################################################### |
541 ## Build the "ConnectivityChecks" plugin | 547 ## Build the "ConnectivityChecks" plugin |
542 ##################################################################### | 548 ##################################################################### |
543 | 549 |
544 if (ENABLE_PLUGINS AND BUILD_CONNECTIVITY_CHECKS) | 550 if (ENABLE_PLUGINS AND BUILD_CONNECTIVITY_CHECKS) |
545 include(ExternalProject) | 551 |
546 | 552 set(ConnectivityChecksFlags) |
547 set(Flags) | |
548 | 553 |
549 if (CMAKE_TOOLCHAIN_FILE) | 554 if (CMAKE_TOOLCHAIN_FILE) |
550 # Take absolute path to the toolchain | 555 # Take absolute path to the toolchain |
551 get_filename_component(TMP ${CMAKE_TOOLCHAIN_FILE} REALPATH BASE ${CMAKE_SOURCE_DIR}) | 556 get_filename_component(TMP ${CMAKE_TOOLCHAIN_FILE} REALPATH BASE ${CMAKE_SOURCE_DIR}) |
552 list(APPEND Flags -DCMAKE_TOOLCHAIN_FILE=${TMP}) | 557 list(APPEND ConnectivityChecksFlags -DCMAKE_TOOLCHAIN_FILE=${TMP}) |
553 endif() | 558 endif() |
554 | 559 |
555 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase") | 560 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase") |
556 list(APPEND Flags | 561 list(APPEND ConnectivityChecksFlags |
557 -DLSB_CC=${CMAKE_LSB_CC} | 562 -DLSB_CC=${CMAKE_LSB_CC} |
558 -DLSB_CXX=${CMAKE_LSB_CXX} | 563 -DLSB_CXX=${CMAKE_LSB_CXX} |
559 ) | 564 ) |
560 endif() | 565 endif() |
561 | 566 |
563 SOURCE_DIR "${CMAKE_SOURCE_DIR}/Plugins/Samples/ConnectivityChecks" | 568 SOURCE_DIR "${CMAKE_SOURCE_DIR}/Plugins/Samples/ConnectivityChecks" |
564 | 569 |
565 # We explicitly provide a build directory, in order to avoid paths | 570 # We explicitly provide a build directory, in order to avoid paths |
566 # that are too long on our Visual Studio 2008 CIS | 571 # that are too long on our Visual Studio 2008 CIS |
567 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ConnectivityChecks-build" | 572 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ConnectivityChecks-build" |
573 | |
574 # this helps triggering build when changing the external project | |
575 BUILD_ALWAYS 1 | |
568 | 576 |
569 CMAKE_ARGS | 577 CMAKE_ARGS |
570 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} | 578 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} |
571 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR} | 579 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR} |
572 -DPLUGIN_VERSION=${ORTHANC_VERSION} | 580 -DPLUGIN_VERSION=${ORTHANC_VERSION} |
573 -DSTATIC_BUILD=${STATIC_BUILD} | 581 -DSTATIC_BUILD=${STATIC_BUILD} |
574 -DALLOW_DOWNLOADS=${ALLOW_DOWNLOADS} | 582 -DALLOW_DOWNLOADS=${ALLOW_DOWNLOADS} |
575 -DUSE_SYSTEM_BOOST=${USE_SYSTEM_BOOST} | 583 -DUSE_SYSTEM_BOOST=${USE_SYSTEM_BOOST} |
576 -DUSE_LEGACY_JSONCPP=${USE_LEGACY_JSONCPP} | 584 -DUSE_LEGACY_JSONCPP=${USE_LEGACY_JSONCPP} |
577 ${Flags} | 585 ${ConnectivityChecksFlags} |
578 | 586 |
579 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | 587 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} |
580 -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} | 588 -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} |
581 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | 589 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} |
582 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | 590 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} |
602 ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}ConnectivityChecks${Suffix}.${ORTHANC_VERSION} | 610 ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}ConnectivityChecks${Suffix}.${ORTHANC_VERSION} |
603 DESTINATION "share/orthanc/plugins") | 611 DESTINATION "share/orthanc/plugins") |
604 endif() | 612 endif() |
605 endif() | 613 endif() |
606 | 614 |
615 | |
616 ##################################################################### | |
617 ## Build the "DelayedDeletion" plugin | |
618 ##################################################################### | |
619 | |
620 if (ENABLE_PLUGINS AND BUILD_DELAYED_DELETION) | |
621 | |
622 set(DelayedDeletionFlags) | |
623 | |
624 if (CMAKE_TOOLCHAIN_FILE) | |
625 # Take absolute path to the toolchain | |
626 get_filename_component(TMP ${CMAKE_TOOLCHAIN_FILE} REALPATH BASE ${CMAKE_SOURCE_DIR}) | |
627 list(APPEND DelayedDeletionFlags -DCMAKE_TOOLCHAIN_FILE=${TMP}) | |
628 endif() | |
629 | |
630 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase") | |
631 list(APPEND DelayedDeletionFlags | |
632 -DLSB_CC=${CMAKE_LSB_CC} | |
633 -DLSB_CXX=${CMAKE_LSB_CXX} | |
634 ) | |
635 endif() | |
636 | |
637 externalproject_add(DelayedDeletion | |
638 SOURCE_DIR "${CMAKE_SOURCE_DIR}/Plugins/Samples/DelayedDeletion" | |
639 | |
640 # We explicitly provide a build directory, in order to avoid paths | |
641 # that are too long on our Visual Studio 2008 CIS | |
642 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/DelayedDeletion-build" | |
643 | |
644 # this helps triggering build when changing the external project | |
645 BUILD_ALWAYS 1 | |
646 | |
647 CMAKE_ARGS | |
648 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} | |
649 -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR} | |
650 -DPLUGIN_VERSION=${ORTHANC_VERSION} | |
651 -DSTATIC_BUILD=${STATIC_BUILD} | |
652 -DALLOW_DOWNLOADS=${ALLOW_DOWNLOADS} | |
653 -DUSE_SYSTEM_BOOST=${USE_SYSTEM_BOOST} | |
654 -DUSE_LEGACY_JSONCPP=${USE_LEGACY_JSONCPP} | |
655 ${DelayedDeletionFlags} | |
656 | |
657 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | |
658 -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} | |
659 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | |
660 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | |
661 -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} | |
662 -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} | |
663 ) | |
664 | |
665 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
666 if (MSVC) | |
667 set(Prefix "") | |
668 else() | |
669 set(Prefix "lib") # MinGW | |
670 endif() | |
671 | |
672 install(FILES | |
673 ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}DelayedDeletion.dll | |
674 DESTINATION "lib") | |
675 else() | |
676 list(GET CMAKE_FIND_LIBRARY_PREFIXES 0 Prefix) | |
677 list(GET CMAKE_FIND_LIBRARY_SUFFIXES 0 Suffix) | |
678 install(FILES | |
679 ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}DelayedDeletion${Suffix} | |
680 ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}DelayedDeletion${Suffix}.${ORTHANC_VERSION} | |
681 DESTINATION "share/orthanc/plugins") | |
682 endif() | |
683 endif() | |
607 | 684 |
608 | 685 |
609 ##################################################################### | 686 ##################################################################### |
610 ## Build the "Housekeeper" plugin | 687 ## Build the "Housekeeper" plugin |
611 ##################################################################### | 688 ##################################################################### |