-
jcfr authored
This commit implements four main changes: (1) it updates Slicer build system to support configuring Slicer passing Slicer_USE_SYSTEM_* CMake variables (2) it updates to a newer version of CTK able to understand CTK_USE_SYSTEM_* options. List of CTK contribution associated with this update are reported below. (3) it changes curl library from "slicerlibcurl/cmcurl/curl" v7.12.1 to the more recent official CMake'ified curl v7.33.0. This has the benefit of making it easier to build against the corresponding system library. (4) It implements workaround allowing some CLIs to built on Debian-like distribution that is providing DCMTK 3.6.0. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637687 EMSegment project has also been updated to implement a similar workaround. The macro "SlicerMacroCheckExternalProjectDependency" allowing to recursively traverse the external project dependency tree has been updated. The traversal is now done in two passes. The first pass traverses the complete tree to set the value of Slicer_USE_SYSTEM_*. The second pass invokes the "ExternalProject_Add" function and displays informative messages. In addition to the usual "[OK]" and "[INCLUDED]" suffixes, an additional text "(SYSTEM)" is displayed. It means the corresponding libraries (and headers) installed on the system will be used. On Ubuntu 13.10, support for the following options have been tested simultaneously: -DSlicer_USE_PYTHONQT_WITH_OPENSSL:BOOL=ON -DSlicer_USE_SYSTEM_python:BOOL=ON -DSlicer_USE_SYSTEM_DCMTK:BOOL=ON -DSlicer_USE_SYSTEM_LibArchive:BOOL=ON -DSlicer_USE_SYSTEM_curl:BOOL=ON -DSlicer_USE_SYSTEM_teem:BOOL=ON -DSlicer_USE_SYSTEM_OpenIGTLink:BOOL=ON -DSlicer_USE_SYSTEM_OpenSSL:BOOL=ON # Implicitly set because python depends # on OpenSSL. -DSlicer_BUILD_OpenIGTLinkIF:BOOL=OFF # Only openigtlink version1 are available # and code does NOT supports only v2. To successfully build Slicer against system libraries, the corresponding packages have been installed: sudo apt-get install libssl-dev \ libdcmtk-dev \ libarchive-dev \ libpython2.7-dev \ python-numpy \ libcurl4-openssl-dev \ libteem-dev \ tk-dev \ tcl-dev \ itcl3-dev \ libopenigtlink1-dev While not tested, support for the following option has also been implemented: -DSlicer_USE_SYSTEM_ITKv4:BOOL=ON -DSlicer_USE_SYSTEM_VTK:BOOL=ON CTK updates: $ git shortlog 91cdf9e0f...02ecc27d0 Jean-Christophe Fillion-Robin (39): Ensure CTK_INSTALL_QTPLUGIN_DIR is properly set Ensure "CMAKE_INSTALL_PREFIX" is properly passed to inner project. By default, do not install application headers Install CTK's *.cmake files Merge branch '65-packaging-support' into 403-relocatable-ctkconfig-usectk Set plugin install rules for target and include files Remove commented code and unused vars from CTKConfig / CTKGenerateCTKConfig Explicitly set default value for CTK_INSTALL_QTPLUGIN_DIR Remove explicit setting of CMake policies. Improve FindDCMTK.cmake documentation Add DCMTK 3.6.0 support to ctkDICOMUtil.cpp Ensure DCMTK libraries can be found on system without setting DCMTK_DIR FindDCMTK - Workaround bug in packaging of DCMTK 3.6.0 on Debian. Add support for install-able and relocatable package. Merge branch '382-fix-find-dcmtk-issue' Merge branch '403-relocatable-ctkconfig-usectk' Merge branch '405-support-dcmtk-360' Fix -Wunused-but-set-variable in transfer function tests Merge branch '209-fix-vtk-transfer-function-test-warnings' Fix linking of VTKCoreCppTest by adding a check for linker capabilities Merge branch 'fix-vtk-core-test-link-error' COMP: FindDCMTK - Exclude -D from DCMTK_DEFINITIONS for easier re-use Merge branch '382-fix-find-dcmtk-issue' Associate DCMTK_DEFINITIONS to CTKDICOMCore Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore' Merge pull request #410 from NifTK/409-widgets-on-ctkPopupWidget-do-not-get-keyboard-focus Add DCMTK 3.6.0 support to CTK application. Merge branch '405-support-dcmtk-360' Fix configuration of CTKConfig based on DCMTK_HAVE_CONFIG_H_OPTIONAL value Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore' Add convenience function "ctk_list_to_string" Automatically reformat list passed to "CTK" inner build. COMP: Add support for CTK_USE_SYSTEM_* options Merge branch '418-support-use-system-option' FindDCMTK - Do not explicitly set DCMTK_DEFINITIONS FindDCMTK - Clean white spaces Merge branch '382-fix-find-dcmtk-issue' into 413-associated-dcmtk-definitions-to-ctkdicomcore Associate CTKDICOMCore with DCMTK_DEFINITIONS in build and install tree Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore' Miklos Espak (1): Active window flag transferred on RequestSoftwareInputPanel event Steve Pieper (2): Put all tags for a given instance into a list for a single batch insert Merge pull request #415 from pieper/414-batch-insert-tags See #1739 git-svn-id: http://svn.slicer.org/Slicer4/trunk@22724 3bd1e089-480b-0410-8dfb-8563597acbee
8c5fd778