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 #####################################################################