diff --git a/README.md b/README.md index e1db17e..538ff38 100644 --- a/README.md +++ b/README.md @@ -1,271 +1,208 @@ # RTToolbox RTToolbox is a software library to support quantitative analysis of treatment outcome for radiotherapy. The RTToolbox was designed following object-oriented design (OOD) principles and was implemented in the language C++. Features include: * import of radiotherapy data (e.g. dose distributions and structure sets) from DICOM-RT format and other standard image processing formats * DVH calculation * Dose statistic calculation * arithmetic operations on dose distributions * structure relationship analyses (e.g. fully-contained, partially-contained) * Calculation of dose comparison indices such as Conformity Index (CI), Homogeneity Index (HI) and Conformation Number (CN) * Calculation of biological models including TCP, NTCP, EUD and BED Also, the RTToolbox provides apps e.g. for DVH/Dose Statistic calculation or Dose accumulation that provides a convenient access of RT scenarios without computer-science knowledge. ## Getting Started These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. ### Prerequisites #### Build system * [CMake](https://cmake.org), version 3.1 or higher #### Compiler * Visual Studio 2013 * Visual Studio 2015 * Visual Studio 2017 * GCC 5.4 * GCC 7.3 Other compilers may work as well, but are not tested. #### Linking Static/Dynamic library support Can be changed with advanced option `BUILD_SHARED_LIBS` :warning: building RTToolbox as dynamic library under Windows and as static library under Linux is an experimental feature. #### Third party libraries * [boost](http://www.boost.org ), version 1.64.0 or higher -* [DCMTK](http://dicom.offis.de/dcmtk.php.en ), with RT support - 3.6.1_20121102 or newer +* [DCMTK](http://dicom.offis.de/dcmtk.php.en ) 3.6.5 or higher * [ITK](https://itk.org ), version 4.4 or higher (*optional*) * for DoseInterpolation support with ITK transformation or ITK File IO support * [MatchPoint](http://mitk.org/download/thirdparty/MatchPoint_rev1610.tar.gz ), version 0.12 or higher (*optional*) * for DoseInterpolation support with MatchPoint registration objects :information_source: To make sure everything runs smoothly, please make sure that all libraries and the RTToolbox are either compiled with `/MD` or `/MT` flags. ##### Boost In case you work with Windows, we recommend using the [pre-build versions of boost](https://sourceforge.net/projects/boost/files/boost-binaries/). If you want to build the library yourself, consider the following: Build (using the same compiler options as RTToolbox, usually `STATIC LINKING` and `x64` architecture). The following components are needed: * `filesystem`, * `system` and * `program_options` * if you plan to build the apps (*optional*) :information_source: eventually, it might be needed to add the CMake variable `BOOST_LIBRARYDIR` and set it to the respective library path of boost. For Windows: To build Boost open a command prompt, change to your boost source directory and copy following command(s): Debug: -`b2 -j12 --with-filesystem --with-system --with-thread --with-program_options --with-date_time --with-atomic --with-chrono toolset=msvc-14.1 address-model=64 variant=debug threading=multi link=shared define=_BIND_TO_CURRENT_VCLIBS_VERSION` +`b2 -j12 --with-filesystem --with-system --with-thread --with-program_options --with-date_time --with-atomic --with-chrono toolset= address-model=64 variant=debug threading=multi link=shared define=_BIND_TO_CURRENT_VCLIBS_VERSION` Release: -`b2 -j12 --with-filesystem --with-system --with-thread --with-program_options --with-date_time --with-atomic --with-chrono toolset=msvc-14.1 address-model=64 variant=release threading=multi link=shared` +`b2 -j12 --with-filesystem --with-system --with-thread --with-program_options --with-date_time --with-atomic --with-chrono toolset= address-model=64 variant=release threading=multi link=shared` +Set the in the commands above accordingly. If you don´t require `program_options` delete `--with-program_options` from the command before executing it. ##### DCMTK For Windows: - -To compile DCMTK with `/MD` flags (standard for all other libs), you need to patch the CMAKE options of DCMTK (`PathToDCMTK\CMake\dcmtkPrepare.cmake`), either by replacing `"/MT"` with `"/MD"` or by explicitly replacing lines 135 to 171 with the following lines: - -``` -IF(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS AND NOT BUILD_SHARED_LIBS) - - - # settings for Microsoft Visual Studio - - IF(CMAKE_GENERATOR MATCHES "Visual Studio .*") - - # get Visual Studio Version - - STRING(REGEX REPLACE "Visual Studio ([0-9]+).*" "\\1" VS_VERSION "${CMAKE_GENERATOR}") - - # these settings never change even for C or C++ - - SET(CMAKE_C_FLAGS_DEBUG "/MDd /Z7 /Od") - - SET(CMAKE_C_FLAGS_RELEASE "/DNDEBUG /MD /O2") - - SET(CMAKE_C_FLAGS_MINSIZEREL "/DNDEBUG /MD /O2") - - SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/DNDEBUG /MDd /Z7 /Od") - - - SET(CMAKE_CXX_FLAGS_DEBUG "/MDd /Z7 /Od") - - SET(CMAKE_CXX_FLAGS_RELEASE "/DNDEBUG /MD /O2") - - SET(CMAKE_CXX_FLAGS_MINSIZEREL "/DNDEBUG /MD /O2") - - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/DNDEBUG /MDd /Z7 /Od") - - # specific settings for the various Visual Studio versions - - IF(VS_VERSION EQUAL 6) - - SET(CMAKE_C_FLAGS "/nologo /W3 /GX /Gy /YX") - - SET(CMAKE_CXX_FLAGS "/nologo /W3 /GX /Gy /YX /Zm500") # /Zm500 increments heap size which is needed on some system to compile templates in dcmimgle - - ENDIF(VS_VERSION EQUAL 6) - - IF(VS_VERSION EQUAL 7) - - SET(CMAKE_C_FLAGS "/nologo /W3 /Gy") - - SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") - - ENDIF(VS_VERSION EQUAL 7) - - IF(VS_VERSION GREATER 7) - - SET(CMAKE_C_FLAGS "/nologo /W3 /Gy /EHsc") - - SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy /EHsc") - - ENDIF(VS_VERSION GREATER 7) - - ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio .*") - - -ENDIF(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS AND NOT BUILD_SHARED_LIBS) -``` +To compile DCMTK with `/MD` flags (standard for all other libs), you need to set DCMTK_COMPILE_WIN32_MULTITHREADED_DLL to "ON". `BUILD_APPS` can be switched off. Then build DCMTK. For Linux: install required dependencies (Ubuntu 18.04 and newer): `sudo apt-get install libpng-dev libtiff5-dev libxml2-dev libjpeg8-dev zlib1g-dev libwrap0-dev libssl-dev` install required dependencies (Ubuntu 17.10 and older): `sudo apt-get install libpng12-dev libtiff5-dev libxml2-dev libjpeg8-dev zlib1g-dev libwrap0-dev libssl-dev` Enable `BUILD_SHARED_LIBS`. `BUILD_APPS` can be switched off. ##### ITK Build ITK with default options. :warning: ensure that compiler enables C++11 features by setting `CMAKE_CXX_STANDARD=11` (default for supported compilers) :warning: if you use ITK 5, turn on `RTTB_ITK5_SUPPORT` :warning: Only use one ITK version consistently throughout all libraries and RTToolbox! Otherwise, linker errors will occur. ##### MatchPoint Configure MatchPoint. Please disable `BUILD_TESTING` before building it. :warning: ensure that compiler enables C++11 features by setting `CMAKE_CXX_STANDARD=11` (default for supported compilers) :warning: Only use one ITK version consistently throughout all libraries and RTToolbox! Otherwise, linker errors will occur. :warning: MatchPoint currently does not support ITK 5 ### Building RT-Toolbox * Configure with CMake * Set `BOOST_INCLUDE_DIR` to the main boost directory. Eventually set `BOOST_LIBRARYDIR` to the respective path (e.g. `/lib64-msvc-14.1\` for Visual Studio 2017 and 64-bit) * Select all packages you like to build (Parameters `BUILD_*` ; e.g. `BUILD_IO_Dicom`). * `BUILD_IO_Dicom`: Reading and writing of DICOM-RT files * `BUILD_IO_HELAX`: Reading of Helax DICOM files * `BUILD_IO_ITK`: Generic reading/writing with ITK * `BUILD_Interpolation`: Dose Interpolation * `BUILD_InterpolationMatchPointTransformation`: Dose Interpolation with Match Point registration support. * `BUILD_Masks`: Voxelization support * `BUILD_Models`: Calculation of dosimetrical models like TCP, NTCP etc. * `BUILD_Apps`: To build the RTTB command line apps (five available) * `BioModelCalc`: calculate the radiobiological effect based on dose * `DoseAcc`: Do dose accumulation * `DoseMap`: Do dose mapping * `DoseTool`: Compute Dose statistics and DVH * `VoxelizerTool`: Voxelize an RTSTRUCT file Some modules of RT-Toolbox are mandatory (e.g. `RTTBCore`) and build automatically. :information_source: enabling `BUILD_All_Modules` builds all modules (except Apps and Testing modules). :information_source: if you build RTTB with VS dynamic, you must ensure that code that uses RTTB DLLs uses the same STL Set `DCMTK_DIR` to your dcmtk binary file directory and `DCMTK_SOURCE_DIR` to your dcmtk source directory. If you want to build RT-Toolbox with ITK and/or MatchPoint set your `ITK_DIR` to your itk binary file directory and/or `MatchPoint_DIR` to your binary matchpoint directory. All directory entries left empty do not require a manual input. Finally, Generate the compilation files for your environment and built it. ### Examples Some examples can be found in ´testing/examples´: * `RTBioModelExampleTest`: Computation of Biological model indices (TCP/NTCP) from a given DVH * `RTDoseStatisticsDicomTest`: Computation of dose statistics (max dose/mean dose/min dose/Dx/Vx) based on dose data for a specified structure * `RTDVHTest`: Computation of statistics (max value/mean value/min value/Dx/Vx) based on a DVH Other examples include: * `DVHCalculatorTest` (`testing/core`): Computation of a DVH from dose and structure * `VoxelizationValidationTest` (`testing/validation`): Computation of a voxelization * `ITKDoseAccessorConverterTest`: (`testing/io/itk`): Saving image RTToolbox image data as an ITK file * `DoseIndex tests`: (`testing/indices`): Computation of different dose indices (e.g. Conformation Number, Conformal Index, Conformity index) ## Running the tests [CTest](https://cmake.org/Wiki/CMake/Testing_With_CTest) is used as testing framework. See their documentation for general testing questions. :information_source: The used testing library Litmus is build automatically. :warning: currently, you have access to testing data only with ssh. That means that a [phabricator](https://phabricator.mitk.org/) account and access to `RTTB-data` repository is mandatory. Please contact rttb(at)dkfz.de for further information. Enabling testing is done as follows: * Enable `BUILD_TESTING` * Configure with CMake * Enable tests of interest * Generate CMake configuration * Build RT-Toolbox * Run tests (build `RUN_TESTS` project or call `ctest` in commandline) to ensure that everything is correct. :information_source: `BUILD_Tester_All` builds all test modules. ## Contributing Please add a github issue and send a pull request if you want to contribute. ## Versioning We use the Ubuntu Release versioning scheme. v2017.02 was released in February 2017. We aim at releasing stable versions once a year. For the versions available, see the [tags on this repository](https://github.com/MIC-DKFZ/RTTB/tags). ## Authors See the list of [contributors](https://github.com/MIC-DKFZ/RTTB/contributors) who participated in this project. ## License This project is licensed under the BSD License - see the [LICENSE](LICENSE) file for details ## Contact Software Development for Integrated Diagnostics and Therapy (SIDT), German Cancer Research Center (DKFZ), Heidelberg, Germany. Web: https://www.dkfz-heidelberg.de/en/mic/research/SIDT/sidt_projects.html E-mail: rttb(at)dkfz.de ## Acknowledgments * **Billie Thompson** - *Template of the readme* - [PurpleBooth](https://github.com/PurpleBooth) diff --git a/cmake/PackageDepends/RTTB_BoostBinaries_Config.cmake b/cmake/PackageDepends/RTTB_BoostBinaries_Config.cmake deleted file mode 100644 index 7441226..0000000 --- a/cmake/PackageDepends/RTTB_BoostBinaries_Config.cmake +++ /dev/null @@ -1,28 +0,0 @@ - IF(NOT DEFINED RTTB_USE_MITK_BOOST) - OPTION(RTTB_USE_MITK_BOOST "RTTB should use a boost which is available in the MITK superbuild external projects structure." OFF) - MARK_AS_ADVANCED(RTTB_USE_MITK_BOOST) - ENDIF(NOT DEFINED RTTB_USE_MITK_BOOST) - - IF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) - SET(Boost_USE_STATIC_LIBS OFF) - ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK) - ELSE(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) - SET(Boost_USE_STATIC_LIBS ON) - ENDIF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) - - SET(BOOST_MIN_VERSION "1.64.0") - - SET(RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE filesystem system ${RTTB_Boost_ADDITIONAL_COMPONENT}) - FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS ${RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE} QUIET) - - foreach(boost_component ${RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE}) - list(APPEND ALL_LIBRARIES "Boost::${boost_component}") - endforeach() - - LIST(APPEND ALL_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS}) - - IF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) - IF(MSVC) - list(APPEND ALL_LIBRARIES "Boost::dynamic_linking" "bcrypt") - ENDIF(MSVC) - ENDIF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) diff --git a/cmake/PackageDepends/RTTB_Boost_Config.cmake b/cmake/PackageDepends/RTTB_Boost_Config.cmake index 2dc217d..02a5f49 100644 --- a/cmake/PackageDepends/RTTB_Boost_Config.cmake +++ b/cmake/PackageDepends/RTTB_Boost_Config.cmake @@ -1,29 +1,31 @@ IF(NOT DEFINED RTTB_USE_MITK_BOOST) OPTION(RTTB_USE_MITK_BOOST "RTTB should use a boost which is available in the MITK superbuild external projects structure." OFF) MARK_AS_ADVANCED(RTTB_USE_MITK_BOOST) ENDIF(NOT DEFINED RTTB_USE_MITK_BOOST) IF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) SET(Boost_USE_STATIC_LIBS OFF) ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK) ELSE(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) SET(Boost_USE_STATIC_LIBS ON) ENDIF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) SET(BOOST_MIN_VERSION "1.64.0") -SET(RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE ${Boost_REQUIRED_COMPONENTS_BY_MODULE} ${RTTB_Boost_ADDITIONAL_COMPONENT}) +SET(_RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE ${Boost_REQUIRED_COMPONENTS_BY_MODULE} ${RTTB_Boost_ADDITIONAL_COMPONENT}) -FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS ${RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE} QUIET) +SET(_RTTB_Boost_FIND_COMPONENTS ${_RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE}) +LIST(REMOVE_ITEM _RTTB_Boost_FIND_COMPONENTS "headers") +FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS ${_RTTB_Boost_FIND_COMPONENTS} QUIET) -if(Boost_REQUIRED_COMPONENTS_BY_MODULE) - foreach(boost_component ${Boost_REQUIRED_COMPONENTS_BY_MODULE}) +if(_RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE) + foreach(boost_component ${_RTTB_Boost_REQUIRED_COMPONENTS_BY_MODULE}) list(APPEND ALL_LIBRARIES "Boost::${boost_component}") endforeach() endif() IF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) IF(MSVC) list(APPEND ALL_LIBRARIES "Boost::dynamic_linking" "bcrypt") ENDIF(MSVC) ENDIF(BUILD_SHARED_LIBS OR RTTB_USE_MITK_BOOST) diff --git a/cmake/PackageDepends/RTTB_DCMTK_Config.cmake b/cmake/PackageDepends/RTTB_DCMTK_Config.cmake index 91297ab..821a2f5 100644 --- a/cmake/PackageDepends/RTTB_DCMTK_Config.cmake +++ b/cmake/PackageDepends/RTTB_DCMTK_Config.cmake @@ -1,236 +1,10 @@ -#----------------------------------------------------------------------------- -# Find DCMTK -#----------------------------------------------------------------------------- - -#----------------------------------------------------------------------------- -# This part is based on the findDCMTK of CMake 2.8.8 -# it was patched because: -# 1. the find_library statement had an incomplete set -# of search paths. If building DCMTK with Visual -# Studio the libs are to be found in /lib/release -# or /lib/debug -# 2. the module DCMRT was not included (but needed by RTToolbox) -# -IF(DEFINED DCMTK_DIR) - IF(NOT IS_ABSOLUTE ${DCMTK_DIR}) - SET(DCMTK_DIR "${RTToolbox_BINARY_DIR}/${DCMTK_DIR}") - ENDIF(NOT IS_ABSOLUTE ${DCMTK_DIR}) -ENDIF(DEFINED DCMTK_DIR) - -if(NOT DCMTK_FOUND AND NOT DCMTK_DIR) - IF (NOT WIN32) - set(DCMTK_DIR "/usr/include/dcmtk/") - ENDIF(NOT WIN32) +if(NOT WIN32 AND NOT APPLE) + set(MISSING_LIBS_REQUIRED_BY_DCMTK tiff z) endif() -#ensure that we always have the variable as cache, independent from -#setting it via gui or command line -set(DCMTK_DIR ${DCMTK_DIR} CACHE PATH "Root of DCMTK tree.") - -IF(DEFINED DCMTK_SOURCE_DIR) - IF(NOT IS_ABSOLUTE ${DCMTK_SOURCE_DIR}) - SET(DCMTK_SOURCE_DIR "${RTToolbox_BINARY_DIR}/${DCMTK_SOURCE_DIR}") - ENDIF(NOT IS_ABSOLUTE ${DCMTK_SOURCE_DIR}) -ENDIF(DEFINED DCMTK_SOURCE_DIR) - -if(NOT DCMTK_FOUND AND NOT DCMTK_SOURCE_DIR) - set(DCMTK_SOURCE_DIR ${DCMTK_DIR}) -endif() - -#ensure that we always have the variable as cache, independent from -#setting it via gui or command line -set(DCMTK_SOURCE_DIR ${DCMTK_SOURCE_DIR} CACHE PATH "Root of DCMTK tree.") - -IF(NOT DEFINED RTTB_USE_MITK_DCMTK) - OPTION(RTTB_USE_MITK_DCMTK "RTTB should use a DCMTK which is available in the MITK superbuild external projects structure." OFF) - MARK_AS_ADVANCED(RTTB_USE_MITK_DCMTK) -ENDIF(NOT DEFINED RTTB_USE_MITK_DCMTK) - -OPTION(RTTB_USE_ML_DCMTK "RTTB should use a DCMTK which is available in the MeVisLab package structure." OFF) -MARK_AS_ADVANCED(RTTB_USE_ML_DCMTK) - - if(NOT DCMTK_FOUND) - set(DCMTK_FOUND True) - - set(DCMTK_DEBUG_LIB_SEARCH_PATH - ${DCMTK_DIR}/${lib}/libsrc/Debug - ${DCMTK_DIR}/${lib}/Debug - ${DCMTK_DIR}/lib/Debug - ${DCMTK_DIR}/Debug - ) - - set(DCMTK_LIB_SEARCH_PATH - ${DCMTK_DIR}/${lib}/libsrc - ${DCMTK_DIR}/${lib}/libsrc/Release - ${DCMTK_DIR}/${lib}/Release - ${DCMTK_DIR}/lib/Release - ${DCMTK_DIR}/lib - ${DCMTK_DIR} - ) - - set(DCMTK_LIB_SEARCH_NAMES - dcmdata - dcmimage - dcmimgle - dcmjpeg - dcmnet - dcmpstat - dcmqrdb - dcmdsig - dcmsr - dcmtls - dcmrt - ijg12 - ijg16 - ijg8 - ofstd - oflog - ) - - if(${RTTB_USE_ML_DCMTK}) - set(DCMTK_DEBUG_LIB_SEARCH_PATH ${DCMTK_DIR}/lib ) - set(DCMTK_LIB_SEARCH_PATH ${DCMTK_DIR}/lib ) - set(DCMTK_LIB_SEARCH_NAMES ${DCMTK_LIB_SEARCH_NAMES} zlib) - endif(${RTTB_USE_ML_DCMTK}) - - - -foreach(lib ${DCMTK_LIB_SEARCH_NAMES}) - - set(debuglib ${lib}) - - if(${RTTB_USE_MITK_DCMTK}) - set(debuglib ${lib}d) - elseif(${RTTB_USE_ML_DCMTK}) - set(debuglib ${lib}_d) - endif(${RTTB_USE_MITK_DCMTK}) - - find_library(DCMTK_${lib}_DEBUG_LIBRARY - ${debuglib} - PATHS ${DCMTK_DEBUG_LIB_SEARCH_PATH}) - - find_library(DCMTK_${lib}_LIBRARY - ${lib} - PATHS ${DCMTK_LIB_SEARCH_PATH}) - - if((${UNIX}) AND (NOT DCMTK_${lib}_DEBUG_LIBRARY)) - set(DCMTK_${lib}_DEBUG_LIBRARY ${DCMTK_${lib}_LIBRARY} CACHE PATH "Path to a library" FORCE) - endif((${UNIX}) AND (NOT DCMTK_${lib}_DEBUG_LIBRARY)) - - mark_as_advanced(DCMTK_${lib}_LIBRARY) - mark_as_advanced(DCMTK_${lib}_DEBUG_LIBRARY) - -# add_library(${lib} STATIC IMPORTED) -# set_target_properties(${lib} PROPERTIES IMPORTED_LOCATION ${DCMTK_${lib}_LIBRARY} IMPORTED_LOCATION_DEBUG ${DCMTK_${lib}_DEBUG_LIBRARY}) - - if(DCMTK_${lib}_LIBRARY ) - list(APPEND DCMTK_LIBRARIES optimized ${DCMTK_${lib}_LIBRARY}) - endif() - - if(DCMTK_${lib}_DEBUG_LIBRARY) - list(APPEND DCMTK_LIBRARIES debug ${DCMTK_${lib}_DEBUG_LIBRARY}) - endif() - - if(NOT DCMTK_${lib}_LIBRARY) - message(STATUS "Cannot find library DCMTK_${lib}_LIBRARY") - endif() - - if(NOT DCMTK_${lib}_DEBUG_LIBRARY) - message(STATUS "Cannot find library DCMTK_${lib}_DEBUG_LIBRARY") - endif() - - endforeach() - - -set(DCMTK_config_TEST_HEADER osconfig.h) -set(DCMTK_dcmdata_TEST_HEADER dctypes.h) -set(DCMTK_dcmimage_TEST_HEADER dicoimg.h) -set(DCMTK_dcmimgle_TEST_HEADER dcmimage.h) -set(DCMTK_dcmjpeg_TEST_HEADER djdecode.h) -set(DCMTK_dcmnet_TEST_HEADER assoc.h) -set(DCMTK_dcmpstat_TEST_HEADER dcmpstat.h) -set(DCMTK_dcmqrdb_TEST_HEADER dcmqrdba.h) -set(DCMTK_dcmrt_TEST_HEADER drmdose.h) -set(DCMTK_dcmsign_TEST_HEADER sicert.h) -set(DCMTK_dcmsr_TEST_HEADER dsrtree.h) -set(DCMTK_dcmtls_TEST_HEADER tlslayer.h) -set(DCMTK_ofstd_TEST_HEADER ofstdinc.h) -set(DCMTK_oflog_TEST_HEADER oflog.h) - -foreach(dir - config - dcmdata - dcmimage - dcmimgle - dcmjpeg - dcmnet - dcmpstat - dcmqrdb - dcmrt - dcmsign - dcmsr - dcmtls - ofstd - oflog) - find_path(DCMTK_${dir}_INCLUDE_DIR - ${DCMTK_${dir}_TEST_HEADER} - PATHS - ${DCMTK_DIR}/${dir}/include - ${DCMTK_DIR}/${dir} - ${DCMTK_DIR}/include/${dir} - ${DCMTK_DIR}/include/dcmtk/${dir} - ${DCMTK_DIR}/${dir}/include/dcmtk/${dir} - ${DCMTK_SOURCE_DIR}/${dir}/include - ${DCMTK_SOURCE_DIR}/${dir} - ${DCMTK_SOURCE_DIR}/dcmtk/${dir} - ${DCMTK_SOURCE_DIR}/include/${dir} - ${DCMTK_SOURCE_DIR}/include/dcmtk/${dir} - ${DCMTK_SOURCE_DIR}/${dir}/include/dcmtk/${dir} - ) - mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR) - - if(DCMTK_${dir}_INCLUDE_DIR) - list(APPEND - DCMTK_INCLUDE_DIRS - ${DCMTK_${dir}_INCLUDE_DIR} ${DCMTK_SOURCE_DIR}/${dir}/include ${DCMTK_DIR}/${dir}/include) - endif() -endforeach() - -if(WIN32) - list(APPEND DCMTK_LIBRARIES iphlpapi netapi32 wsock32 ws2_32) -endif() - -if(UNIX) - list(APPEND DCMTK_LIBRARIES pthread) + find_package(DCMTK NO_MODULE REQUIRED) endif() - -if(DCMTK_ofstd_INCLUDE_DIR) - get_filename_component(DCMTK_dcmtk_INCLUDE_DIR - ${DCMTK_ofstd_INCLUDE_DIR} - PATH - CACHE) - list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR}) - mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR) -endif() - -endif() - -#----------------------------------------------------------------------------- -# RTTB part to use the found DCMTK -# -IF(NOT DCMTK_FOUND) - MESSAGE(SEND_ERROR "DCMTK development files not found.\n Please check variables (e.g. DCMTK_DIR) for include directories and libraries.\nYou may set environment variable DCMTK_DIR before pressing 'configure'") -ENDIF(NOT DCMTK_FOUND) - -IF( NOT WIN32 ) - SET(MISSING_LIBS_REQUIRED_BY_DCMTK wrap tiff) -ENDIF( NOT WIN32 ) - -LIST(APPEND ALL_INCLUDE_DIRECTORIES ${DCMTK_INCLUDE_DIRS} ${DCMTK_DIR}/include) -IF(DEFINED RTTB_USE_MITK_DCMTK) - LIST(APPEND ALL_INCLUDE_DIRECTORIES ${DCMTK_SOURCE_DIR}) -ENDIF(DEFINED RTTB_USE_MITK_DCMTK) - -LIST(APPEND ALL_LIBRARIES ${DCMTK_LIBRARIES} ${MISSING_LIBS_REQUIRED_BY_DCMTK}) +list(APPEND ALL_INCLUDE_DIRECTORIES ${DCMTK_INCLUDE_DIRS}) +list(APPEND ALL_LIBRARIES ${DCMTK_LIBRARIES} ${MISSING_LIBS_REQUIRED_BY_DCMTK}) \ No newline at end of file diff --git a/cmake/PackageDepends/RTTB_Litmus_Config.cmake b/cmake/PackageDepends/RTTB_Litmus_Config.cmake index f5d2607..f44533a 100644 --- a/cmake/PackageDepends/RTTB_Litmus_Config.cmake +++ b/cmake/PackageDepends/RTTB_Litmus_Config.cmake @@ -1,16 +1,15 @@ #----------------------------------------------------------------------------- # Litmus is built automatically. Just set include dir and link directories #----------------------------------------------------------------------------- set(Litmus_INCLUDE_DIRS "${LITMUS_SOURCE_DIR}/code/common;${LITMUS_SOURCE_DIR}/code/itk;${LITMUS_BUILD_DIR}") set(Litmus_LIBRARY_DIRS "${LITMUS_BUILD_DIR}/bin") #these test modules need LitmusITK. ITK is available as it is needed by all submodules IF (BUILD_Tester_All OR (BUILD_Tester_IO AND BUILD_IO_ITK) OR (BUILD_Tester_Interpolation AND BUILD_InterpolationMatchPointTransformation)) SET(Litmus_ITK "LitmusITK") ENDIF() LIST(APPEND ALL_INCLUDE_DIRECTORIES ${Litmus_INCLUDE_DIRS}) LIST(APPEND ALL_LIBRARIES LitmusCommon ${Litmus_ITK}) - -LINK_DIRECTORIES(${Litmus_LIBRARY_DIRS}) +LIST(APPEND ALL_LINK_DIRECTORIES ${Litmus_LIBRARY_DIRS}) diff --git a/cmake/PackageDepends/RTTB_RTTBData_Config.cmake b/cmake/PackageDepends/RTTB_RTTBData_Config.cmake new file mode 100644 index 0000000..95b23a0 --- /dev/null +++ b/cmake/PackageDepends/RTTB_RTTBData_Config.cmake @@ -0,0 +1,3 @@ +#----------------------------------------------------------------------------- +# RTTBData is automatically fetched. Just set include dir and link directories +#----------------------------------------------------------------------------- diff --git a/cmake/rttbMacroCreateTestModule.cmake b/cmake/rttbMacroCreateTestModule.cmake index 9c03e26..61799b6 100644 --- a/cmake/rttbMacroCreateTestModule.cmake +++ b/cmake/rttbMacroCreateTestModule.cmake @@ -1,175 +1,213 @@ ################################################################## # -# RTTB_CREATE_MODULE +# RTTB_CREATE_TEST_MODULE # #! Creates a module for the automatic module dependency system within RTTB. #! Configurations are generated in the moduleConf directory. #! #! USAGE: #! #! \code -#! RTTB_CREATE_MODULE( +#! RTTB_CREATE_TEST_MODULE( #! [INCLUDE_DIRS ] -#! [INTERNAL_INCLUDE_DIRS ] #! [DEPENDS ] -#! [PROVIDES ] #! [PACKAGE_DEPENDS ] #! [HEADER_TEST] #! \endcode #! #! \param MODULE_NAME_IN The name for the new module # ################################################################## MACRO(RTTB_CREATE_TEST_MODULE MODULE_NAME_IN) - MACRO_PARSE_ARGUMENTS(MODULE - "INCLUDE_DIRS;INTERNAL_INCLUDE_DIRS;DEPENDS;DEPENDS_INTERNAL;PROVIDES;PACKAGE_DEPENDS;ADDITIONAL_LIBS" - "HEADER_TESTS" - ${ARGN}) - - SET(MODULE_NAME "${RTToolbox_PREFIX}${MODULE_NAME_IN}Tests") - SET(WAIT_FOR_DEPENDENCY_LIBS "Litmus") #each test depends on Litmus - - # assume worst case - SET(MODULE_IS_ENABLED 0) - # first we check if we have an explicit module build list - IF(RTTB_MODULES_TO_BUILD) - LIST(FIND RTTB_MODULES_TO_BUILD ${MODULE_NAME} _MOD_INDEX) - IF(_MOD_INDEX EQUAL -1) - SET(MODULE_IS_EXCLUDED 1) - ENDIF() - ENDIF() - - IF(NOT MODULE_IS_EXCLUDED) - MESSAGE(STATUS "configuring Tests ${MODULE_NAME}...") - # first of all we check for the dependencies - RTTB_CHECK_MODULE(_MISSING_DEP ${MODULE_DEPENDS}) - IF(_MISSING_DEP) - MESSAGE("Module ${MODULE_NAME} won't be built, missing dependency: ${_MISSING_DEP}") - SET(MODULE_IS_ENABLED 0) - ELSE(_MISSING_DEP) - SET(MODULE_IS_ENABLED 1) - # now check for every package if it is enabled. This overlaps a bit with - # RTTB_CHECK_MODULE ... - FOREACH(_package ${MODULE_PACKAGE_DEPENDS}) - IF((DEFINED RTTB_USE_${_package}) AND NOT (RTTB_USE_${_package})) - MESSAGE("Module ${MODULE_NAME} won't be built. Turn on RTTB_USE_${_package} if you want to use it.") - SET(MODULE_IS_ENABLED 0) - ENDIF() - ENDFOREACH() - - IF(NOT MODULE_PROVIDES) - SET(MODULE_PROVIDES ${MODULE_NAME}) - ENDIF(NOT MODULE_PROVIDES) - - SET(DEPENDS "${MODULE_DEPENDS}") - SET(DEPENDS_BEFORE "not initialized") - SET(PACKAGE_DEPENDS "${MODULE_PACKAGE_DEPENDS}") - RTTB_USE_MODULE("${MODULE_DEPENDS}") - - # ok, now create the module itself - INCLUDE_DIRECTORIES(. ${ALL_INCLUDE_DIRECTORIES}) - INCLUDE(files.cmake) - - ORGANIZE_SOURCES(SOURCE ${CPP_FILES} - HEADER ${H_FILES} - TXX ${TXX_FILES} - DOC ${DOX_FILES} - ) - - IF(ALL_LIBRARY_DIRS) - # LINK_DIRECTORIES applies only to targets which are added after the call to LINK_DIRECTORIES - LINK_DIRECTORIES(${ALL_LIBRARY_DIRS}) - ENDIF(ALL_LIBRARY_DIRS) - - SET(coverage_sources ${CPP_FILES} ${H_FILES} ${TXX_FILES}) - - ADD_EXECUTABLE(${MODULE_PROVIDES} ${coverage_sources} ${CPP_FILES_GENERATED}) - - IF(ALL_LIBRARIES) - TARGET_LINK_LIBRARIES(${MODULE_PROVIDES} ${ALL_LIBRARIES}) - ENDIF(ALL_LIBRARIES) - - IF(MODULE_HEADER_TESTS) - MESSAGE(STATUS "generating header tests ${MODULE_NAME}...") - SET(HEADER_TEST_CPP "${CMAKE_CURRENT_BINARY_DIR}/${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest.cpp") - MESSAGE(STATUS "generating header tests ${HEADER_TEST_CPP}") - - FILE(WRITE ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_HEADER}) - FOREACH(_h_file ${H_FILES}) - FILE(APPEND ${HEADER_TEST_CPP} "#include <${_h_file}>\n") - ENDFOREACH() - FILE(APPEND ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_FOOTER}) - - ADD_EXECUTABLE(${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest ${HEADER_TEST_CPP}) - - IF(ALL_LIBRARIES) - TARGET_LINK_LIBRARIES(${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest ${ALL_LIBRARIES}) - ENDIF(ALL_LIBRARIES) - - ENDIF(MODULE_HEADER_TESTS) - - # Necessary so the build waits for libs to build - ADD_DEPENDENCIES(${MODULE_NAME} ${WAIT_FOR_DEPENDENCY_LIBS}) - - #----------------------------------------------------------------------------- - - IF(RTToolbox_BINARY_DIR) - SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTToolbox_BINARY_DIR}) - ELSE(RTToolbox_BINARY_DIR) - SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTTBTesting_BINARY_DIR}) - ENDIF(RTToolbox_BINARY_DIR) - - WRITE_FILE( - "${RTToolbox_SYSTEM_INFORMATION_DIR}/testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME}/BuildNameNotes.xml" - - "\n" - "\n" - "\n" - "\n" - "Wed Oct 24 1:00:00 EST\n" - "\n" - "Here is some basic information:\n" - "RTToolbox_SOURCE_DIR = ${RTToolbox_SOURCE_DIR}\n" - "RTToolbox_BINARY_DIR = ${RTToolbox_BINARY_DIR}\n" - "RTTBTesting_SOURCE_DIR = ${RTTBTesting_SOURCE_DIR}\n" - "RTTBTesting_BINARY_DIR = ${RTTBTesting_BINARY_DIR}\n" - "CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n" - "CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}\n" - "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n" - "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}\n" - "CMAKE_SYSTEM = ${CMAKE_SYSTEM}\n" - "CMAKE_MAKE_PROGRAM = ${CMAKE_MAKE_PROGRAM}\n" - "\n" - "\n" - "\n" - "\n" - ) - - ENDIF(_MISSING_DEP) - ENDIF(NOT MODULE_IS_EXCLUDED) + + set(_macro_params) + + set(_macro_multiparams + INCLUDE_DIRS # include directories: [PUBLIC|PRIVATE|INTERFACE] + DEPENDS # list of modules this module depends on: [PUBLIC|PRIVATE|INTERFACE] + PACKAGE_DEPENDS # list of "packages this module depends on (e.g. Qt, VTK, etc.): [PUBLIC|PRIVATE|INTERFACE] + ) + + set(_macro_options + HEADER_TESTS + ) + + cmake_parse_arguments(MODULE "${_macro_options}" "${_macro_params}" "${_macro_multiparams}" ${ARGN}) + + SET(MODULE_NAME "${RTToolbox_PREFIX}${MODULE_NAME_IN}Tests") + SET(WAIT_FOR_DEPENDENCY_LIBS "Litmus") #each test depends on Litmus + set(MODULE_FILES_CMAKE files.cmake) + + # ----------------------------------------------------------------- + # Check if module should be build + + set(MODULE_TARGET ${MODULE_NAME}) + + # assume worst case + SET(MODULE_IS_ENABLED 0) + # first we check if we have an explicit module build list + IF(RTTB_MODULES_TO_BUILD) + LIST(FIND RTTB_MODULES_TO_BUILD ${MODULE_NAME} _MOD_INDEX) + IF(_MOD_INDEX EQUAL -1) + SET(MODULE_IS_EXCLUDED 1) + ENDIF() + ENDIF() + + IF(NOT MODULE_IS_EXCLUDED) + MESSAGE(STATUS "configuring Tests ${MODULE_NAME}...") + # first of all we check for the dependencies + _rttb_parse_package_args(${MODULE_PACKAGE_DEPENDS}) + rttb_check_module_dependencies(MODULES ${MODULE_DEPENDS} + PACKAGES ${PACKAGE_NAMES} + MISSING_DEPENDENCIES_VAR _MISSING_DEP + PACKAGE_DEPENDENCIES_VAR PACKAGE_NAMES) + + if(_MISSING_DEP) + message("${_Module_type} ${MODULE_NAME} won't be built, missing dependency: ${_MISSING_DEP}") + set(MODULE_IS_ENABLED 0) + else() + set(MODULE_IS_ENABLED 1) + # now check for every package if it is enabled. This overlaps a bit with + # RTTB_CHECK_MODULE ... + foreach(_package ${PACKAGE_NAMES}) + if((DEFINED RTTB_USE_${_package}) AND NOT (RTTB_USE_${_package})) + message("${_Module_type} ${MODULE_NAME} won't be built. Turn on RTTB_USE_${_package} if you want to use it.") + set(MODULE_IS_ENABLED 0) + break() + endif() + endforeach() + endif() + endif() + + # ----------------------------------------------------------------- + # Start creating the module + + if(MODULE_IS_ENABLED) + + if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE_FILES_CMAKE}") + include(${MODULE_FILES_CMAKE}) + endif() + + if(CPP_FILES) + set(MODULE_HEADERS_ONLY 0) + else() + set(MODULE_HEADERS_ONLY 1) + endif() + + if(MODULE_FORCE_STATIC) + set(_STATIC ${RTTB_WIN32_FORCE_STATIC) + else() + set(_STATIC ) + endif(MODULE_FORCE_STATIC) + + ORGANIZE_SOURCES( + SOURCE ${CPP_FILES} + HEADER ${H_FILES} + TXX ${TXX_FILES} + DOC ${DOX_FILES} + ) + + set(coverage_sources + ${CPP_FILES} ${H_FILES} ${GLOBBED__H_FILES} ${CORRESPONDING__H_FILES} ${TXX_FILES}) + + ADD_EXECUTABLE(${MODULE_TARGET} ${coverage_sources} ${CPP_FILES_GENERATED}) + + SET(DEPENDS "${MODULE_DEPENDS}") + SET(DEPENDS_BEFORE "not initialized") + + rttb_use_modules(TARGET ${MODULE_TARGET} + MODULES ${DEPENDS} + PACKAGES ${MODULE_PACKAGE_DEPENDS} + ) + + # add include directories + target_include_directories(${MODULE_TARGET} PUBLIC .) + target_include_directories(${MODULE_TARGET} PUBLIC ${MODULE_INCLUDE_DIRS}) + + IF(MODULE_HEADER_TESTS) + MESSAGE(STATUS "generating header tests ${MODULE_NAME}...") + SET(HEADER_TEST_CPP "${CMAKE_CURRENT_BINARY_DIR}/${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest.cpp") + MESSAGE(STATUS "generating header tests ${HEADER_TEST_CPP}") + + FILE(WRITE ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_HEADER}) + FOREACH(_h_file ${H_FILES}) + FILE(APPEND ${HEADER_TEST_CPP} "#include <${_h_file}>\n") + ENDFOREACH() + FILE(APPEND ${HEADER_TEST_CPP} ${RTTB_HEADER_TESTS_FOOTER}) + + ADD_EXECUTABLE(${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest ${HEADER_TEST_CPP}) + + SET(DEPENDS "${MODULE_DEPENDS}") + SET(DEPENDS_BEFORE "not initialized") + + rttb_use_modules(TARGET ${RTToolbox_PREFIX}${MODULE_NAME_IN}HeaderTest + MODULES ${DEPENDS} + PACKAGES ${MODULE_PACKAGE_DEPENDS} + ) + + ENDIF(MODULE_HEADER_TESTS) + + # Necessary so the build waits for libs to build + ADD_DEPENDENCIES(${MODULE_NAME} ${WAIT_FOR_DEPENDENCY_LIBS}) + + #----------------------------------------------------------------------------- + + IF(RTToolbox_BINARY_DIR) + SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTToolbox_BINARY_DIR}) + ELSE(RTToolbox_BINARY_DIR) + SET(RTToolbox_SYSTEM_INFORMATION_DIR ${RTTBTesting_BINARY_DIR}) + ENDIF(RTToolbox_BINARY_DIR) + + WRITE_FILE( + "${RTToolbox_SYSTEM_INFORMATION_DIR}/testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME}/BuildNameNotes.xml" + + "\n" + "\n" + "\n" + "\n" + "Wed Oct 24 1:00:00 EST\n" + "\n" + "Here is some basic information:\n" + "RTToolbox_SOURCE_DIR = ${RTToolbox_SOURCE_DIR}\n" + "RTToolbox_BINARY_DIR = ${RTToolbox_BINARY_DIR}\n" + "RTTBTesting_SOURCE_DIR = ${RTTBTesting_SOURCE_DIR}\n" + "RTTBTesting_BINARY_DIR = ${RTTBTesting_BINARY_DIR}\n" + "CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n" + "CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}\n" + "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n" + "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}\n" + "CMAKE_SYSTEM = ${CMAKE_SYSTEM}\n" + "CMAKE_MAKE_PROGRAM = ${CMAKE_MAKE_PROGRAM}\n" + "\n" + "\n" + "\n" + "\n" + ) + + endif() ENDMACRO(RTTB_CREATE_TEST_MODULE) SET(RTTB_HEADER_TESTS_HEADER "// -----------------------------------------------------------------------\n" "// RTToolbox - DKFZ radiotherapy quantitative evaluation library\n" "//\n" "// (c) Copyright 2007, DKFZ, Heidelberg, Germany\n" "// ALL RIGHTS RESERVED\n" "//\n" "// THIS FILE CONTAINS CONFIDENTIAL AND PROPRIETARY INFORMATION OF DKFZ.\n" "// ANY DUPLICATION, MODIFICATION, DISTRIBUTION, OR\n" "// DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY PROHIBITED\n" "// WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF DKFZ.\n" "//\n" "//------------------------------------------------------------------------\n" "// Automatically generated header test file \n" "#if defined(_MSC_VER)\n" "#pragma warning ( disable : 4786 )\n" "#endif\n" "#include \n") SET(RTTB_HEADER_TESTS_FOOTER "\nint main ( int , char* )\n" "{\n" " return EXIT_SUCCESS;\n" "}\n") diff --git a/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt b/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt index dd0e0a7..a047d44 100644 --- a/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt +++ b/testing/interpolation/InterpolationMatchPointTransformation/CMakeLists.txt @@ -1,14 +1,14 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(INTERPOLATION_MP_TRANSFORMATION_TESTS ${EXECUTABLE_OUTPUT_PATH}/${RTToolbox_PREFIX}InterpolationMPTransformationTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(SimpleMappableDoseAccessorWithMatchPointTest ${INTERPOLATION_MP_TRANSFORMATION_TESTS} SimpleMappableDoseAccessorWithMatchPointTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/LinearIncreaseX.dcm") -RTTB_CREATE_TEST_MODULE(InterpolationMPTransformation DEPENDS RTTBInterpolation RTTBInterpolationMatchPointTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus MatchPoint RTTBData) +RTTB_CREATE_TEST_MODULE(InterpolationMPTransformation DEPENDS RTTBInterpolation RTTBInterpolationMatchPointTransformation RTTBDicomIO PACKAGE_DEPENDS Litmus MatchPoint RTTBData ITK) diff --git a/testing/io/models/CMakeLists.txt b/testing/io/models/CMakeLists.txt index ab4adad..094b6d3 100644 --- a/testing/io/models/CMakeLists.txt +++ b/testing/io/models/CMakeLists.txt @@ -1,16 +1,16 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(MODELSIO_TEST ${EXECUTABLE_OUTPUT_PATH}/${RTToolbox_PREFIX}ModelsIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(ModelsIOTest ${MODELSIO_TEST} ModelsIOTest "${TEST_DATA_ROOT}/BioModel/XML/referenceBioModeltcpleqIOTest.xml" "${TEST_DATA_ROOT}/BioModel/XML/referenceBioModelntcplkIOTest.xml" ) -RTTB_CREATE_TEST_MODULE(ModelsIO DEPENDS RTTBModelsIO RTTBModels PACKAGE_DEPENDS Boost Litmus RTTBData) +RTTB_CREATE_TEST_MODULE(ModelsIO DEPENDS RTTBModelsIO RTTBModels PACKAGE_DEPENDS Boost|filesystem Litmus RTTBData) diff --git a/testing/io/other/CMakeLists.txt b/testing/io/other/CMakeLists.txt index add8322..3c651d3 100644 --- a/testing/io/other/CMakeLists.txt +++ b/testing/io/other/CMakeLists.txt @@ -1,17 +1,17 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(OTHERIO_TEST ${EXECUTABLE_OUTPUT_PATH}/${RTToolbox_PREFIX}OtherIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(DoseStatisticsIOTest ${OTHERIO_TEST} DoseStatisticsIOTest) ADD_TEST(DVHXMLIOTest ${OTHERIO_TEST} DVHXMLIOTest) -RTTB_CREATE_TEST_MODULE(OtherIO DEPENDS RTTBOtherIO PACKAGE_DEPENDS Boost Litmus RTTBData) +RTTB_CREATE_TEST_MODULE(OtherIO DEPENDS RTTBOtherIO PACKAGE_DEPENDS Boost|filesystem Litmus RTTBData) diff --git a/testing/masks/CMakeLists.txt b/testing/masks/CMakeLists.txt index b92df68..c92918b 100644 --- a/testing/masks/CMakeLists.txt +++ b/testing/masks/CMakeLists.txt @@ -1,20 +1,20 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(Boost_Mask_TESTS ${EXECUTABLE_OUTPUT_PATH}/${RTToolbox_PREFIX}MaskTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- ADD_TEST(BoostMaskTest ${Boost_Mask_TESTS} BoostMaskTest) -RTTB_CREATE_TEST_MODULE(Mask DEPENDS RTTBDicomIO RTTBMask PACKAGE_DEPENDS BoostBinaries Litmus DCMTK) +RTTB_CREATE_TEST_MODULE(Mask DEPENDS RTTBDicomIO RTTBMask PACKAGE_DEPENDS PRIVATE Boost|filesystem Litmus DCMTK) IF (CMAKE_COMPILER_IS_GNUCC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals") ENDIF() \ No newline at end of file