[Repository Listing] / [Slicer4] / trunk / CMake
 

Index of /trunk/CMake

Directory revision: 26393 (of 26394)
Sticky Revision:


Name Rev. Age Author Last log entry
Parent Directory
       
View directory contents LastConfigureStep
 24984  18 months  jcfr  BUG: Update Slicer build system to report packaging errors on CDash. See #3032 This commit adds a new target named "packageupload" that will (1) build the standard 'package' target, (2) extract the list of generated packages from its standard output and (3) append the list of generated package filepaths to a file named PACKAGES.txt, (4) upload the packages on midas. Using this target a Slicer package can be uploaded to midas without relying on CTest. Within the ctest script, the target "packageupload" is built and then the URL to download packages from midas are uploaded to CDash based on the content of the file PACKAGES.txt From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View directory contents SlicerLinkerAsNeededFlagCheck
 21158  4 years  sankhesh  BUG: 2321 Added a check for linker capabilities Checks whether the linker will be able to resolve all symbols. If the check fails, another test takes place to make sure the linker is not lazy-linking. If it is, the flag --no-as-needed is added to CMAKE_EXE_LINKER_FLAGS.
View directory contents Testing
 25213  14 months  jcfr  ENH: Add SlicerExtensionDescriptionSpec CMake module * Update CMake module to Extract or Generate extension description file to use "SlicerExtensionDescriptionSpec" * Add tests
View directory contents cuda
 25553  10 months  jcfr  STYLE: CMake: Remove unused and unmaintained custom FindCuda module Originally introduced in 2008 by r7552 (ENH:added cuda CMake scripts) and last updated in 2009 by r9363 (COMP: fix cmake file for machines that don't have cuda sdk installed ), this module and associated file are removed. Up-to-date and maintained version is available in CMake: https://cmake.org/cmake/help/v3.7/module/FindCUDA.html
View file contents BundleUtilitiesWithRPath.cmake
 23990  2 years  jcfr  ENH: BundleUtilities: Ensure framework symlinks and Info.plist exist See Slicer issue #3965 This commit integrates the upstream change kitware/cmake@41564ff //---------- Author: Adam Strzelecki <ono@java.pl> 2014-10-21 10:42:33 Committer: Brad King <brad.king@kitware.com> 2014-10-21 11:42:30 BundleUtilities: Ensure framework symlinks and Info.plist exist This restores Qt SDK 4.8 and OS X >= 10.6.5 codesign compatibility improving embedding frameworks using correct bundle layout described at: https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html 1. If Versions/VERSION/Resources/Info.plist is missing, well known incorrect locations are checked for Info.plist and Info.plist is copied from there, otherwise codesign will fail. 2. Root framework symlinks to binary and Resources are restored to point inside Versions/Current, otherwise Qt 4.8 looking for Resources/ in framework root will fail. //----------
View file contents CTestCustom.cmake.in
 26349  3 weeks  jcfr  COMP: CTestCustom: Add windows warning exceptions
View file contents CTestPackage.cmake
 19737  5 years  jcfr  COMP: Facilitate re-use of SlicerFunctionCTestPackage * Rename "SlicerFunctionCTestPackage" into "CTestPackage" * Function has now signature "ctest_package"
View file contents ExternalData.cmake
 25546  10 months  jcfr  ENH: Update ExternalData module based of InsightSoftwareConsortium/ITK@883ecb4 This commit integrates version of the ExternalData module available in InsightSoftwareConsortium/ITK@883ecb4 Here is the details of changes added to the Slicer version: $ git shortlog 5a11039..883ecb4 --no-merges CMake/ExternalData.cmake Brad King (6): ENH: ExternalData: Do not re-stage staged object files ENH: ExternalData: Allow local stores without any URL templates ENH: ExternalData: Warn on missing file instead of failing ENH: ExternalData: Add support for custom download scripts ENH: ExternalData: Add support for custom algorithm-to-URL mapping DOC: ExternalData: Update documentation to match CMake copy Matthew McCormick (4): ENH: Add Azure Storage as ExternalData source. ENH: Add ExternalData_NO_SYMLINKS option. ENH: Sync ExternalData.cmake with upstream CMake 3.6.2 ENH: ExternalData multi-algorithm support Michka Popoff (2): STYLE: Remove old cmake < 2.8.4 specific code STYLE: Remove old cmake < 2.8.5 specific code Rolf Eike Beer (2): STYLE: ExternalData: Replace MATCHES with STREQUAL where possible STYLE: ExternalData: Clean up duplicate regex matches with CMAKE_MATCH_<n>
View file contents ExternalData_config.cmake.in
 25546  10 months  jcfr  ENH: Update ExternalData module based of InsightSoftwareConsortium/ITK@883ecb4 This commit integrates version of the ExternalData module available in InsightSoftwareConsortium/ITK@883ecb4 Here is the details of changes added to the Slicer version: $ git shortlog 5a11039..883ecb4 --no-merges CMake/ExternalData.cmake Brad King (6): ENH: ExternalData: Do not re-stage staged object files ENH: ExternalData: Allow local stores without any URL templates ENH: ExternalData: Warn on missing file instead of failing ENH: ExternalData: Add support for custom download scripts ENH: ExternalData: Add support for custom algorithm-to-URL mapping DOC: ExternalData: Update documentation to match CMake copy Matthew McCormick (4): ENH: Add Azure Storage as ExternalData source. ENH: Add ExternalData_NO_SYMLINKS option. ENH: Sync ExternalData.cmake with upstream CMake 3.6.2 ENH: ExternalData multi-algorithm support Michka Popoff (2): STYLE: Remove old cmake < 2.8.4 specific code STYLE: Remove old cmake < 2.8.5 specific code Rolf Eike Beer (2): STYLE: ExternalData: Replace MATCHES with STREQUAL where possible STYLE: ExternalData: Clean up duplicate regex matches with CMAKE_MATCH_<n>
View file contents ExternalProjectAddSource.cmake
 24731  22 months  jcfr  COMP: Fix ExternalProjectAddSource to work with non-clean build directory. This commit ensure option associated with remote module are always up-to-date even when changed in an existing build directory. This particular problem was found after changing the minor version to "5" and observing that BRAINSTools module were still building in the lib/Slicer-4.4/cli-modules directory. This was explained because variables like BRAINSTools_CLI_LIBRARY_OUTPUT_DIRECTORY were not forced into the cache, preventing the "mark_as_superbuild" function from grabbing the up-to-date value.
View file contents ExternalProjectDependency.cmake
 25978  5 months  jcfr  ENH: Update ExternalProjectDependency based on commontk/Artichoke@0fff214 This commit fixes a configure error introduced in r25929 (ENH: Update ExternalProjectDependency based on commontk/Artichoke@5ee3d50) by ensuring USES_TERMINAL_* option are not used with CMake 3.3.2. Also Update CTK to integrate a similar update: $ git shortlog commontk/CTK@185e6e3..commontk/CTK@a63253f --no-merges Jean-Christophe Fillion-Robin (1): Update ExternalProjectDependency based on commontk/Artichoke@0fff214 Reported-by: Bill Lorensen <bill.lorensen@gmail.com>
View file contents ExternalProjectDependencyForPython.cmake
 26055  3 months  jcfr  ENH: cmake: Check package availability when building against system python This commit implements the check looking for required python modules when building against system version of python. For example, assuming that all required packages are installed in a python virtual environment named "slicer": $ cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/path/to/bin/qmake \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DSlicer_USE_SYSTEM_python:BOOL=1 \ ../Slicer would output text like this one: [...] -- SuperBuild - python-pyparsing => Requires python[INCLUDED], -- SuperBuild - python-pyparsing[OK] (SYSTEM) -- PYPARSING_PATH: /home/jcfr/.virtualenvs/slicer/local/lib/python2.7/site-packages -- PYPARSING_VERSION: 2.2.0 -- SuperBuild - python-packaging[OK] (SYSTEM) -- PACKAGING_PATH: /home/jcfr/.virtualenvs/slicer/local/lib/python2.7/site-packages/packaging -- PACKAGING_VERSION: 16.8 -- SuperBuild - python-six => Requires python[INCLUDED], -- SuperBuild - python-six[OK] (SYSTEM) -- SIX_PATH: /home/jcfr/.virtualenvs/slicer/local/lib/python2.7/site-packages -- SIX_VERSION: 1.10.0 [...]
View file contents ExternalProjectForNonCMakeProject.cmake
 23996  2 years  jcfr  ENH: Remove trailing spaces from flags passed to non cmake-ified project.
View file contents ExternalProjectGenerateProjectDescription.cmake
 25847  6 months  jcfr  ENH: Add external project step allowing to keep track of project version. This commit adds a module named "ExternalProjectGenerateProjectDescription" providing a convenient function allowing to add a step generating a project description file containing the name of the project and its version. For each project instrumented with this function, a file named "version-<projectnmame>.txt" is generated in ${CMAKE_BINARY_DIR}.
View file contents FindFontConfig.cmake
 23123  3 years  finetjul  COMP: Add FindFontConfig.cmake FindFontConfig.cmake is from VTK. VTKv6 was not built with the module vtkRenderingFreeTypeFontConfig because it could not find FontConfig. However, once VTK was downloaded and configured. Any find_package(FontConfig) call (e.g. in CTK) would succeed because FindFontConfig.cmake is now in the CMake search path. Issue #3514
View file contents FindGit.cmake
 26318  4 weeks  jcfr  COMP: Build system: Fix finding of SVN or Git configuring extensions This commit explicitly marks "Subversion_SVN_EXECUTABLE" and "GIT_EXECUTABLE" as cache variable in SlicerConfig and remove workaround related to: https://www.na-mic.org/Bug/view.php?id=4311 https://gitlab.kitware.com/cmake/cmake/issues/15448 This commit fixes MarginCalculator configuration error when directly configuring the extension without building the extensions index: ``` CMake Error at /path/to/Software/cmake-3.9.0-Linux-x86_64/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Subversion (missing: Subversion_SVN_EXECUTABLE) (found version "1.8.13") Call Stack (most recent call first): /path/to/Software/cmake-3.9.0-Linux-x86_64/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE) /path/to/Software/cmake-3.9.0-Linux-x86_64/share/cmake-3.9/Modules/FindSubversion.cmake:142 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) /home/jcfr/Projects/Slicer-2/CMake/SlicerMacroExtractRepositoryInfo.cmake:118 (find_package) /path/to/Projects/Slicer-2/CMake/SlicerExtensionCPack.cmake:55 (SlicerMacroExtractRepositoryInfo) CMakeLists.txt:57 (INCLUDE) ``` Also confirmed that build the extensions index worked as expected.
View file contents FindPatch.cmake
 26334  3 weeks  jcfr  ENH: Use copy of upstream FindPatch module This commit integrates the latest version of FindPatch module from https://gitlab.kitware.com/cmake/cmake/merge_requests/1184 It also updates the version of the python build system where the same change was applied: $ git shortlog b9ae615..cc93717 --no-merges Jean-Christophe Fillion-Robin (1): ApplyPatches: Use copy of upstream FindPatch.cmake
View file contents FindVcvars.cmake
 26057  3 months  jcfr  ENH: cmake: Add FindVcvars CMake module This module allows to look up path of 'vcvars(32|64|amd64).bat' scripts. It will facilitate the building of Slicer extension including python modules having compilation steps. It is being contributed to upstream CMake as https://gitlab.kitware.com/cmake/cmake/merge_requests/899
View file contents GetPrerequisitesWithRPath.cmake
 22023  4 years  jcfr  BUG: Ensure library can be loaded from different place using @rpath Before this commit, attempt have been made (r18311, r18325, r18581) to install both built-in CLI and extension CLI executable in a folder located at some depth of the main Slicer executable. This was needed because all libraries were referenced based on the location of the main Slicer executable using "@executable_path". This was working *only* in the case of built-in CLI but wasn't scaling very well for the extension CLI executable. Indeed, being able to both differentiate the different installed extension and keeping the depth to 1 level wasn't easily feasible: /path/to/Slicer.app/Contents/MacOS/Slicer /path/to/Slicer.app/Contents/cli-modules/MyCLI /path/to/Slicer.app/Contents/Extensions-21855/SkullStripper/cli-modules/MyCLI A solution could have been to install extensions directly in "Slicer.app" folder and update the cli install sub dir to get something like: /path/to/Slicer.app/Extensions-21855/SkullStripper/MyCLI While possible, it would have remain a special case to maintain. Instead, by using "@rpath", CLI modules can now be installed in the Slicer standard location "Slicer_CLIMODULES_LIB_DIR" instead of "Slicer_CLIMODULES_SUBDIR". This commit remove the special case which never worked (issue #3051) Waiting the topic "tweak-bundleutilities-for-rpath" is fully matured and integrated in CMake, use custom version of BundleUtilities and GetPrerequisites. See http://cmake.org/gitweb?p=stage/cmake.git;a=shortlog;h=refs/heads/tweak-bundleutilities-for-rpath Since our custom version of the CMake modules now consider "~/usr/.*/lib", the implementation of "gp_resolved_file_type_override" has been removed. Remove the hack specific to LibArchive (introduced by commit r19615), since the library is fixed up using the default library matching pattern, it will be installed in the expected location. SlicerExecutionModel has also been updated to link the CLI executable and library with "-rpath" so that they can resolve the location of Slicer libraries.
View file contents ITKPlatformSpecificChecks.cmake
 22807  3 years  jcfr  COMP: Modern gcc compilers have a reasonable template depth limit Current gcc compilers have a reasonable max default template depth. The -ftemplate-depth-50 flag was removed. This limited any application which used ITK to only a template depth of 50. Based on InsightSoftwareConsortium/ITK@5bcca741 From: Bradley Lowekamp <blowekamp@mail.nih.gov>
View file contents ListToString.cmake
 26201  7 weeks  jcfr  COMP: Update CMake minimum required version from 2.8.9 to 3.5 This commit removes few workarounds and explicit setting of CMake policies. Note that the setting of CMP0017 to OLD (introduced in r16366 (COMP: Update CMake policy requirements) is not needed. Slicer does not provide CMake modules that should be included by modules distributed by CMake. This will ensure the CMake version has: * support for VS 2015 (introduced in CMake 3.1) * a decent support for detecting compiler features (useful with C++11 and above) See https://cmake.org/cmake/help/v3.5/manual/cmake-compile-features.7.html * as well as support for modern cmake that will be used to modernize the Slicer build system. See https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements CMake 3.5 is also old enough (release in April 2016) and available (same version or above) in distributions like these ones: * Arch Linux * Ubuntu LTS 14.04, 16.04 * OpenSUSE Leap 42.2, 42.3 * Debian 9, Sid * Fedora 24/25/26 * Slackware 14.2 See https://pkgs.org/download/cmake // ------------ Update MultiVolumeExplorer: $ git shortlog 7e44252..c4d3b65 --no-merges Andrey Fedorov (1): ENH: helper script to get stats for a mv frame Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0 // ------------ Update MultiVolumeImporter: git shortlog 3fb2858..b2453a8 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0
View file contents MIDAS.cmake
 16461  6 years  zach.mullen  ENH: Update MIDAS.cmake
View file contents MIDASAPILogin.cmake
 25215  14 months  jcfr  ENH: MIDASAPI: Accept json response with whitespaces after the colon.
View file contents MIDASAPIUploadPackage.cmake
 25215  14 months  jcfr  ENH: MIDASAPI: Accept json response with whitespaces after the colon.
View file contents MIDASCTestUploadURL.cmake
 19752  5 years  jcfr  COMP: Signature of midas_ctest_upload_url is now explicit * The function expects two parameters: API_URL and FILEPATH
View file contents MacOSXBundleInfo.plist.in
 22870  3 years  jcfr  COMP: Adding support for Apple's Retina display for fonts Enable improved rendering of fonts on Apple's retina displays by adding a custom bundle plist file with the following additional elements: <key>NSPrincipalClass</key> <string>NSApplication</string> <key>NSHighResolutionCapable</key> <string>True</string> The remainder of the input plist file is based on the current in file from CMake. For reference: https://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/ Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Bradley Lowekamp <blowekamp@mail.nih.gov>
View file contents PreventDirWithSpaces.cmake
 23360  3 years  jcfr  COMP: Ensure PreventDirWithSpaces CMake variables is passed to inner project. This commit ensures that spaces can be used in either source or build directory when configuring Slicer inner project. This is done by passing down the variable ${PROJECT_NAME}_SKIP_DIR_WITH_SPACES_CHECK This commit also documents and simplifies usage of "PreventDirWithSpaces" CMake module.
View file contents PreventDirWithTooManyChars.cmake
 23361  3 years  jcfr  BUG: Consider inner build dir when checking for max root directory length. This commit introduces the convenience CMake module "PreventDirWithTooManyChars" and update code to account for length of the inner build subdirectory. It means if the maximum length of the top-level build directory is 40, assuming the inner build directory is "Slicer-build", the check in the inner build will expect a path of length 53.
View file contents PreventInBuildInstalls.cmake
 17362  6 years  jcfr  ENH: Prevent in build installs * Adapated from ITKv4/CMake/PreventInBuildInstalls.cmake
View file contents PreventInSourceBuilds.cmake
 24962  18 months  jcfr  STYLE: Rename Build Dir in PreventInSourceBuilds Make the name used as the build directory consistent with line 22. From: Alexis Girault <agirault@users.noreply.github.com>
View file contents Slicer3ValgrindSuppressions.supp
 15113  6 years  jcfr  COMP: Rename project Slicer3 into Slicer
View file contents SlicerBlockCTKAppLauncherSettings.cmake
 26042  4 months  jcfr  ENH: Add support for reading launcher setting using CTKAppLauncherLib This commit introduces a dependency to the statically linked library CTKAppLauncherLib This library also used internally by the regular Slicer launcher allows to read the launcher main settings and its associated revision specific settings listing extensions paths. Since on all platforms, environment variables are now consistently read from settings files, this commit removes: (1) the duplicated code path settings variables from the application using methods like: * qSlicerCoreApplicationPrivate::setPythonEnvironmentVariables() * qSlicerCoreApplicationPrivate::setTclEnvironmentVariables() * qSlicerCoreApplicationPrivate::discoverITKFactoriesDirectory() * qSlicerCorePythonManager::pythonPaths() (2) the application settings "Python/AdditionalPythonPaths" originally introduced in r20852 (BUG: Ensure extension python paths are set on MacOSX) to workaround the fact launcher settings were not used on MacOSX. Finally, this commit also ensures that PYTHONPATH associated with thirdparty libraries bundled in extension are considered on MacOSX. See Radiomics/SlicerRadiomics#18 [ci skip]
View file contents SlicerBlockCXXCoverageFlags.cmake
 18157  6 years  jcfr  STYLE: Remove year from Kitware copyright
View file contents SlicerBlockCXXRequiredFlags.cmake
 23140  3 years  jcfr  COMP: Fix "unused-local"typedefs" warning and update ITKv4 Commit r23121 removed the addition of "-Wno-unused-local-typedefs", this commit is an attempt to clean most of the warnings. It also updates the ITKv4 external project so that it checks out the Slicer ITK fork including the ITK patch currently in review. See [1], [2] $ git shortlog 01661ccf99..184b1257ad Jean-Christophe Fillion-Robin (3): COMP: Properly fix unused-local-typedefs warning using unused attribute. COMP: Fix "unused-local-typedefs" warnings COMP: Backport double conversion fix for "unused-local-typedefs" warning [1] http://review.source.kitware.com/#/c/15379/ [2] http://review.source.kitware.com/#/c/15380/
View file contents SlicerBlockFindQtAndCheckVersion.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerBlockInstallCMakeProjects.cmake
 25631  8 months  jcfr  BUG: Update ITK to fix linux packaging of itkhdf5_cpp library This patch addresses the issue reported in [1], [2] and [3] by updating ITK to include InsightSoftwareConsortium/ITK@2a07831 and by installing the ITK component "cpplibraries" to ensure hdf5_cpp get packaged in Slicer. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> [1] http://www.na-mic.org/Bug/view.php?id=4301 [2] http://www.na-mic.org/Bug/view.php?id=4302 [3] https://issues.itk.org/jira/browse/ITK-3504 From: Francois Budin <francois.budin@gmail.com>
View file contents SlicerBlockInstallDCMTKApps.cmake
 24519  2 years  fedorov  ENH: add extra DCMTK apps * dsr2html can be useful for creating human-readable representations of DICOM structured reports * xml2dcm and xml2dsr are reverse operations for existing converters to XML, which is using DCMTK-specific schema
View file contents SlicerBlockInstallDCMTKLibs.cmake
 23430  3 years  jcfr  COMP: Ensure DCMTK libraries are packaged. This commit fixes a regression introduced in r23413 where call to "find_package(DCMTK ..)" have been moved in the sub-project where it was explicitly needed. By calling, "find_package(DCMTK ..)", it now ensures that the variable "DCMTK_LIBRARIES" will be set. Note that ideally DCMTK libraries could be installed leveraging the fact the project is cmake'ified by installing the expected components.
View file contents SlicerBlockInstallExtensionPackages.cmake
 26021  4 months  jcfr  ENH: Buildsystem: Support packaging of existing extension install dirs Configuring Slicer using cmake -DSlicer_EXTENSION_INSTALL_DIRS:STRING=/path/to/ext1-install-tree;/path/to/ext2-install-tree ... will ensure the file found in each extension install directories are packaged with Slicer. Co-authored-by: Hina Shah <hina.shah@kitware.com>
View file contents SlicerBlockInstallExternalPythonModules.cmake
 24801  21 months  jcfr  STYLE: Remove VTKv5 support As discussed during the developer hangout of 2015-03-31, this commit removes support for VTKv5. Most of the h/cxx files have been updated automatically using the script "slicer_remove_vtk5_support.py" [1]. See below. The remaining of h/cxx, python and CMake files have been updated manually. slicer_remove_vtk5_support.py: cd ~/Project/Slicer ~/Download/slicer_remove_vtk5_support.py $(ack -l VTK_MAJOR_VERSION) [1] https://gist.github.com/jcfr/91d2f5d07c2a36320e48
View file contents SlicerBlockInstallLibArchive.cmake
 17191  6 years  jcfr  STYLE: Move CMake commands to match new conventions The next step in removing end-of-lines is to run through all the CMakeLists.txt files and clean them up. This also changes all the key words to lower case. The primary reason for changing key words is that all documentation for CMakeLists.txt now shows the key words as lower case. Even the printed “Mastering CMake v5” uses lower case. I’ve come across this several times in my class where students stumble over the fact that the documentation about Cmake does not match the implementation in ITK. I have a script (a wrapper around a vim macro) written that can make these substituions reliably (Tested on the BRAINS tree, the Slicer3 tree, and the ITK tree without causing any errors). More complete documentation can be found in ITK/Utilities/Maintenance/HowToCreateTheCMakeCaseConversion.txt
View file contents SlicerBlockInstallOpenSSL.cmake
 25942  5 months  lassoan  ENH: Install SSL dlls into bin folder SSL libraries (libeay32.dll, ssleay32.dll) sometimes fail to load on Windows if they are not in the same folder as SlicerApp-real.exe. This commit makes the SSL libraries installed in SlicerApp-real.exe's folder (c:\Program Files\Slicer 4.7.0-2017-04-20\bin) instead of lib folder (c:\Program Files\Slicer 4.7.0-2017-04-20\lib\Slicer-4.7\ssleay32.dll).
View file contents SlicerBlockInstallPython.cmake
 25947  5 months  jcfr  ENH: Introduce PYTHON_STDLIB_SUBDIR and PYTHON_SITE_PACKAGES_SUBDIR CMake vars This commit : (1) avoids duplicated code paths by setting these two variables only in External_python.cmake, (2) prepares the transition to python 3 by removing most of the to hard-coded "python2.7" strings (3) adds the variables to SlicerConfig to facilitate the packaging of python packages within Slicer extensions.
View file contents SlicerBlockInstallPythonQt.cmake
 23969  2 years  jcfr  ENH: Update PythonQt CMake install code to check value of PYTHONQT_INSTALL_DIR
View file contents SlicerBlockInstallQt.cmake
 26289  5 weeks  jcfr  ENH: Support Linux, macOS (partial), Windows packaging using Qt5 This commit updates CMake module installing Qt5 libraries: * Linux: Explicitly install required libraries * macOS: No update required, the fixup script is used instead. * Windows: Leverage "windeployqt" tool to automatically install libraries It also updates (for all platforms) the list of plugins that should be installed. Finally, it updates the macOS fixup rules to consider the new macOS platform plugin. It was tested on Ubuntu 15.10 and Windows using VS2015.
View file contents SlicerBlockInstallQtPlugins.cmake
 23056  3 years  jcfr  BUG: Associate component with Qt plugin install rules
View file contents SlicerBlockInstallQtTesting.cmake
 19962  5 years  benjamin.long  COMP: Package QtTesting Conflicts: CMake/UseSlicer.cmake.in
View file contents SlicerBlockInstallTcl.cmake
 23058  3 years  jcfr  ENH: Associate a component with install rules
View file contents SlicerBlockOperatingSystemNames.cmake
 19643  5 years  jcfr  ENH: Facilitate code maintenance by abstracting the operating system names. * Introduced CMake variables and macros named Slicer_OS_{LINUX, MAC, WIN}_NAME * Update the CMake script referencing hard coded operating system names * Note that since the dashboard driver script id downloaded as a single file, the operating system name is still hard coded. Ideally, the driver script could downloaded some additional script providing the requested information.
View file contents SlicerBlockPlatformCheck.cmake
 26220  6 weeks  jcfr  STYLE: SlicerBlockPlatformCheck: Remove obsolete CMake version check This commit removes check obsoleted by r26201 (COMP: Update CMake minimum required version from 2.8.9 to 3.5)
View file contents SlicerBlockSetCMakeOSXVariables.cmake
 26267  6 weeks  jcfr  COMP: Require minimum OSX deployment target of 10.9 if using Qt5 or VTK8 Require minimum OSX deployment target of 10.9. In 10.9 libc++ replaces libstdc++ as the default runtime. Requiring this minimum ensures that all libraries use libc++. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Max Smolens <max.smolens@kitware.com>
View file contents SlicerCPack.cmake
 26290  5 weeks  jcfr  BUG: SlicerCPack: Fix list of Qt plugins to install on macOS
View file contents SlicerCPackBundleFixup.cmake.in
 26289  5 weeks  jcfr  ENH: Support Linux, macOS (partial), Windows packaging using Qt5 This commit updates CMake module installing Qt5 libraries: * Linux: Explicitly install required libraries * macOS: No update required, the fixup script is used instead. * Windows: Leverage "windeployqt" tool to automatically install libraries It also updates (for all platforms) the list of plugins that should be installed. Finally, it updates the macOS fixup rules to consider the new macOS platform plugin. It was tested on Ubuntu 15.10 and Windows using VS2015.
View file contents SlicerCPackBundleVerify.cmake
 26201  7 weeks  jcfr  COMP: Update CMake minimum required version from 2.8.9 to 3.5 This commit removes few workarounds and explicit setting of CMake policies. Note that the setting of CMP0017 to OLD (introduced in r16366 (COMP: Update CMake policy requirements) is not needed. Slicer does not provide CMake modules that should be included by modules distributed by CMake. This will ensure the CMake version has: * support for VS 2015 (introduced in CMake 3.1) * a decent support for detecting compiler features (useful with C++11 and above) See https://cmake.org/cmake/help/v3.5/manual/cmake-compile-features.7.html * as well as support for modern cmake that will be used to modernize the Slicer build system. See https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements CMake 3.5 is also old enough (release in April 2016) and available (same version or above) in distributions like these ones: * Arch Linux * Ubuntu LTS 14.04, 16.04 * OpenSUSE Leap 42.2, 42.3 * Debian 9, Sid * Fedora 24/25/26 * Slackware 14.2 See https://pkgs.org/download/cmake // ------------ Update MultiVolumeExplorer: $ git shortlog 7e44252..c4d3b65 --no-merges Andrey Fedorov (1): ENH: helper script to get stats for a mv frame Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0 // ------------ Update MultiVolumeImporter: git shortlog 3fb2858..b2453a8 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0
View file contents SlicerCheckCMakeHTTPS.cmake
 26212  7 weeks  jcfr  STYLE: Refactor SlicerCheckCMakeHTTPS to automatically call test function This allows to easily download the script and check that CMake support HTTPS. For example: ``` curl -L https://raw.githubusercontent.com/Slicer/Slicer/master/CMake/SlicerCheckCMakeHTTPS.cmake -o SlicerCheckCMakeHTTPS.cmake ./CMake-3.9.0.app/Contents/bin/cmake -P ./SlicerCheckCMakeHTTPS.cmake ```
View file contents SlicerCheckSourceTree.cmake
 26393  2 days  lassoan  ENH: Added column property editor to tables module Type and other properties of any existing column and default properties of new columns can be changed using GUI. This is important for plotting, which requires numeric column types. Additional improvements: * changed defaultValue to nullValue to better reflect that the value represents missint/unknown value. * made reading and conversion of bit and char type columns more robust
View file contents SlicerConfig.cmake.in
 26331  3 weeks  jcfr  ENH: Update BRAINSTools and allows Slicer extension to depends on it. $ git shortlog 0558e43..7994f92 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Export BRAINSCommonLib target for build tree
View file contents SlicerConfigVersion.cmake.in
 18963  5 years  jcfr  ENH: Configure SlicerConfigVersion.cmake so that find_package(Slicer X.Y.Z) works See http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file
View file contents SlicerConfigureVersionHeaderTarget.cmake
 25191  15 months  jcfr  STYLE: Simplify SlicerConfigureVersionHeader target This commit introduces vtkSlicerVersionConfigureInternal.h header containing static information not expected to change between source updates. This commit also adds doxygen documentation. Suggested-by: Francois Budin <francois.budin@kitware.com>
View file contents SlicerDashboardDriverScript.cmake
 26268  6 weeks  jcfr  ENH: Support Qt5 in dashboard script When building with Qt4, QT_QMAKE_EXECUTABLE is required. When building with Qt5, Qt5_DIR is required. From: Max Smolens <max.smolens@kitware.com>
View file contents SlicerDashboardScript.TEMPLATE.cmake
 26268  6 weeks  jcfr  ENH: Support Qt5 in dashboard script When building with Qt4, QT_QMAKE_EXECUTABLE is required. When building with Qt5, Qt5_DIR is required. From: Max Smolens <max.smolens@kitware.com>
View file contents SlicerExtensionCPack.cmake
 26201  7 weeks  jcfr  COMP: Update CMake minimum required version from 2.8.9 to 3.5 This commit removes few workarounds and explicit setting of CMake policies. Note that the setting of CMP0017 to OLD (introduced in r16366 (COMP: Update CMake policy requirements) is not needed. Slicer does not provide CMake modules that should be included by modules distributed by CMake. This will ensure the CMake version has: * support for VS 2015 (introduced in CMake 3.1) * a decent support for detecting compiler features (useful with C++11 and above) See https://cmake.org/cmake/help/v3.5/manual/cmake-compile-features.7.html * as well as support for modern cmake that will be used to modernize the Slicer build system. See https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements CMake 3.5 is also old enough (release in April 2016) and available (same version or above) in distributions like these ones: * Arch Linux * Ubuntu LTS 14.04, 16.04 * OpenSUSE Leap 42.2, 42.3 * Debian 9, Sid * Fedora 24/25/26 * Slackware 14.2 See https://pkgs.org/download/cmake // ------------ Update MultiVolumeExplorer: $ git shortlog 7e44252..c4d3b65 --no-merges Andrey Fedorov (1): ENH: helper script to get stats for a mv frame Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0 // ------------ Update MultiVolumeImporter: git shortlog 3fb2858..b2453a8 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0
View file contents SlicerExtensionCPackBundleFixup.cmake.in
 26201  7 weeks  jcfr  COMP: Update CMake minimum required version from 2.8.9 to 3.5 This commit removes few workarounds and explicit setting of CMake policies. Note that the setting of CMP0017 to OLD (introduced in r16366 (COMP: Update CMake policy requirements) is not needed. Slicer does not provide CMake modules that should be included by modules distributed by CMake. This will ensure the CMake version has: * support for VS 2015 (introduced in CMake 3.1) * a decent support for detecting compiler features (useful with C++11 and above) See https://cmake.org/cmake/help/v3.5/manual/cmake-compile-features.7.html * as well as support for modern cmake that will be used to modernize the Slicer build system. See https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements CMake 3.5 is also old enough (release in April 2016) and available (same version or above) in distributions like these ones: * Arch Linux * Ubuntu LTS 14.04, 16.04 * OpenSUSE Leap 42.2, 42.3 * Debian 9, Sid * Fedora 24/25/26 * Slackware 14.2 See https://pkgs.org/download/cmake // ------------ Update MultiVolumeExplorer: $ git shortlog 7e44252..c4d3b65 --no-merges Andrey Fedorov (1): ENH: helper script to get stats for a mv frame Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0 // ------------ Update MultiVolumeImporter: git shortlog 3fb2858..b2453a8 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0
View file contents SlicerExtensionConfig.cmake.in
 25987  4 months  lassoan  ENH: Fixed AdditionalLauncherSettings.ini for extensions with dependencies AdditionalLauncherSettings.ini now contains library paths, paths, env vars, python paths from all dependent extensions. The values are passed through the <ExtensionName>Config.cmake file.
View file contents SlicerExtensionGenerateConfig.cmake
 25987  4 months  lassoan  ENH: Fixed AdditionalLauncherSettings.ini for extensions with dependencies AdditionalLauncherSettings.ini now contains library paths, paths, env vars, python paths from all dependent extensions. The values are passed through the <ExtensionName>Config.cmake file.
View file contents SlicerExtensionTemplatesGenerator.cmake
 25881  6 months  jcfr  STYLE: Add ScriptedEditorEffect to SlicerGenerateExtensionTemplates This commit adds "ScriptedEditorEffect" to the list of templates considered when executing the SlicerGenerateExtensionTemplates target.
View file contents SlicerFunctionAddPythonQtResources.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerFunctionCheckCompilerFlags.cmake
 17191  6 years  jcfr  STYLE: Move CMake commands to match new conventions The next step in removing end-of-lines is to run through all the CMakeLists.txt files and clean them up. This also changes all the key words to lower case. The primary reason for changing key words is that all documentation for CMakeLists.txt now shows the key words as lower case. Even the printed “Mastering CMake v5” uses lower case. I’ve come across this several times in my class where students stumble over the fact that the documentation about Cmake does not match the implementation in ITK. I have a script (a wrapper around a vim macro) written that can make these substituions reliably (Tested on the BRAINS tree, the Slicer3 tree, and the ITK tree without causing any errors). More complete documentation can be found in ITK/Utilities/Maintenance/HowToCreateTheCMakeCaseConversion.txt
View file contents SlicerFunctionGetGccVersion.cmake
 17191  6 years  jcfr  STYLE: Move CMake commands to match new conventions The next step in removing end-of-lines is to run through all the CMakeLists.txt files and clean them up. This also changes all the key words to lower case. The primary reason for changing key words is that all documentation for CMakeLists.txt now shows the key words as lower case. Even the printed “Mastering CMake v5” uses lower case. I’ve come across this several times in my class where students stumble over the fact that the documentation about Cmake does not match the implementation in ITK. I have a script (a wrapper around a vim macro) written that can make these substituions reliably (Tested on the BRAINS tree, the Slicer3 tree, and the ITK tree without causing any errors). More complete documentation can be found in ITK/Utilities/Maintenance/HowToCreateTheCMakeCaseConversion.txt
View file contents SlicerFunctionInstallLibrary.cmake
 21774  4 years  jcfr  COMP: Update system to use CMake built-in macro "cmake_parse_arguments" SLICER_PARSE_ARGUMENTS has been kept around but will display an error message if it used by some extension. That will give the opportunity for extension maintainer to update their CMakeLists.txt. Considering that the file "CMakeParseArguments" is also included in the code base associated with Slicer 4.2.2-1, simply updating the extension so that "cmake_parse_arguments" is used will be sufficient. Say differently, CMakeLists.txt maintained for both extension build against Slicer nightly and Slicer 4.2.2-1 won't diverge.
View file contents SlicerFunctionToday.cmake
 25782  6 months  jcfr  STYLE: Update Slicer function and macro name to lower case For search-ability, case of the function is now consistent with the lower case usage of the function. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Isaiah Norton <inorton@bwh.harvard.edu>
View file contents SlicerGenerateSlicerConfig.cmake
 26331  3 weeks  jcfr  ENH: Update BRAINSTools and allows Slicer extension to depends on it. $ git shortlog 0558e43..7994f92 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Export BRAINSCommonLib target for build tree
View file contents SlicerInstallConfig.cmake.in
 24615  23 months  lassoan  ENH: Make vtkAddon classes available in Python as vtkITK Similarly to vtkITK make vtkAddon classes (vtkOrientedGridTransform, vtkOrientedBSplineTransform) easily accessible in Python. One can now write: import vtkAddon (instead of import vtkAddonPython) to make classes available.
View file contents SlicerLinkerAsNeededFlagCheck.cmake
 21158  4 years  sankhesh  BUG: 2321 Added a check for linker capabilities Checks whether the linker will be able to resolve all symbols. If the check fails, another test takes place to make sure the linker is not lazy-linking. If it is, the flag --no-as-needed is added to CMAKE_EXE_LINKER_FLAGS.
View file contents SlicerMacroBuildApplication.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerMacroBuildBaseQtLibrary.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerMacroBuildCLI.cmake
 21634  4 years  jcfr  COMP: Add deprecated warning message to "slicerMacroBuildCLI" "SEMMacroBuildCLI" should be used instead.
View file contents SlicerMacroBuildModuleLogic.cmake
 23961  2 years  jcfr  ENH: Improve build targets organization in IDE that support folders This commit set the FOLDER property on all targets to group them into meaningful "units". This will make development easier ensuring it is possible to quickly re-build and open the source files associated with the targets of either a given module, the core libraries or even the Slicer application. Currently the grouping is: * App-SlicerApp * CMakePredefinedTargets * Core-Base * Core-Libs * FreeSurfer * ITKFactoryRegistration * [...] * Module-<NameOfModule> * [...] If for some reason, the folder organization needs to be disabled. Slicer could be configured with Slicer_USE_FOLDERS set to OFF. Projects updated in this commit: * CTK * SlicerExecutionModel * OtsuThresholdImageFilter Notes: (1) some of the targets (EMSegment, BRAINSTools, MultiVolume, ...) are still associated to the root and not yet categorized. (2) ideally few more macros/functions should be introduced: one to easily configure subject hierarchy plugin, and one to easily configure tests associated with a CLI. CTK changes: // ------------- commit commontk/CTK@ac1370e Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 14:47:09 2015 -0500 Add FOLDER parameter to ctkMacroBuildQtPlugin If specified, the target(s) associated with designer, icon engine and style plugins will be added into the specified folder when the project is configured for an IDE supporting it. For more details, see http://www.cmake.org/cmake/help/v2.8.9/cmake.html#prop_tgt:FOLDER // ------------- SlicerExecutionModel changes: // ------------- commit Slicer/SlicerExecutionModel@0b780eb Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:06:25 2015 -0500 ENH: SEMMacroBuildCLI - Add possibility to associate FOLDER with CLI targets In project building a lot of modules (i.e Slicer), whenever possible, it is better to keep the huge list of targets organized. To help with this, CMake allows to set a FOLDER target property. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_tgt:FOLDER This commit extends the SEMMacroBuildCLI API to accept an optional FOLDER parameter. If not set, the folder name will default to: <SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX><MODULE_NAME> By default the prefix is set to an empty string and the folder will be named after the module name. There are two ways to specify a default prefix value: (1) Set the variable SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX in the current scope before calling 'SEMMacroBuildCLI' (2) Configure the SlicerExecutionModel project with the option SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX Note that: - FOLDER support has been introduced in CMake >= 2.8.3 and - it can optionally be enabled in a project by setting the global property named USE_FOLDERS. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_global:USE_FOLDERS Finally, to associate CLI test expected to be in the same "FOLDER", a variable named <MODULE_NAME>_TARGETS_FOLDER is conveniently set in the current scope each time the macro SEMMacroBuildCLI is called. commit Slicer/SlicerExecutionModel@e84d231 Author: Matt McCormick <matt.mccormick@kitware.com> Date: Thu Aug 7 11:09:39 2014 -0400 BUG: Fix ModuleDescriptionParser test data dir. Fixes Parser1Test{1,2}. Simplify by consolidation of variables. // ------------- OtsuThresholdImageFilter changes: // ------------- commit :Slicer/Slicer-OtsuThresholdImageFilter@5efe412 Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:08:28 2015 -0500 Associate folder with test targets. [...] // -------------
View file contents SlicerMacroBuildModuleMRML.cmake
 23961  2 years  jcfr  ENH: Improve build targets organization in IDE that support folders This commit set the FOLDER property on all targets to group them into meaningful "units". This will make development easier ensuring it is possible to quickly re-build and open the source files associated with the targets of either a given module, the core libraries or even the Slicer application. Currently the grouping is: * App-SlicerApp * CMakePredefinedTargets * Core-Base * Core-Libs * FreeSurfer * ITKFactoryRegistration * [...] * Module-<NameOfModule> * [...] If for some reason, the folder organization needs to be disabled. Slicer could be configured with Slicer_USE_FOLDERS set to OFF. Projects updated in this commit: * CTK * SlicerExecutionModel * OtsuThresholdImageFilter Notes: (1) some of the targets (EMSegment, BRAINSTools, MultiVolume, ...) are still associated to the root and not yet categorized. (2) ideally few more macros/functions should be introduced: one to easily configure subject hierarchy plugin, and one to easily configure tests associated with a CLI. CTK changes: // ------------- commit commontk/CTK@ac1370e Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 14:47:09 2015 -0500 Add FOLDER parameter to ctkMacroBuildQtPlugin If specified, the target(s) associated with designer, icon engine and style plugins will be added into the specified folder when the project is configured for an IDE supporting it. For more details, see http://www.cmake.org/cmake/help/v2.8.9/cmake.html#prop_tgt:FOLDER // ------------- SlicerExecutionModel changes: // ------------- commit Slicer/SlicerExecutionModel@0b780eb Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:06:25 2015 -0500 ENH: SEMMacroBuildCLI - Add possibility to associate FOLDER with CLI targets In project building a lot of modules (i.e Slicer), whenever possible, it is better to keep the huge list of targets organized. To help with this, CMake allows to set a FOLDER target property. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_tgt:FOLDER This commit extends the SEMMacroBuildCLI API to accept an optional FOLDER parameter. If not set, the folder name will default to: <SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX><MODULE_NAME> By default the prefix is set to an empty string and the folder will be named after the module name. There are two ways to specify a default prefix value: (1) Set the variable SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX in the current scope before calling 'SEMMacroBuildCLI' (2) Configure the SlicerExecutionModel project with the option SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX Note that: - FOLDER support has been introduced in CMake >= 2.8.3 and - it can optionally be enabled in a project by setting the global property named USE_FOLDERS. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_global:USE_FOLDERS Finally, to associate CLI test expected to be in the same "FOLDER", a variable named <MODULE_NAME>_TARGETS_FOLDER is conveniently set in the current scope each time the macro SEMMacroBuildCLI is called. commit Slicer/SlicerExecutionModel@e84d231 Author: Matt McCormick <matt.mccormick@kitware.com> Date: Thu Aug 7 11:09:39 2014 -0400 BUG: Fix ModuleDescriptionParser test data dir. Fixes Parser1Test{1,2}. Simplify by consolidation of variables. // ------------- OtsuThresholdImageFilter changes: // ------------- commit :Slicer/Slicer-OtsuThresholdImageFilter@5efe412 Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:08:28 2015 -0500 Associate folder with test targets. [...] // -------------
View file contents SlicerMacroBuildModuleQtLibrary.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerMacroBuildModuleVTKLibrary.cmake
 24532  2 years  jcfr  COMP: Fix module library build macros to consider already set variables This commit fixes the build of SlicerRt extensions. It basically removes the hack introduced in r24530 (COMP: Set loadable module _INCLUDE_DIRS variables in Slicer project) and fixes the build of extensions already setting the <ProjectName>_INLCUDE_DIRS variable in their Qt and VTK module library CMakeLists.txt.
View file contents SlicerMacroBuildModuleWidgets.cmake
 23961  2 years  jcfr  ENH: Improve build targets organization in IDE that support folders This commit set the FOLDER property on all targets to group them into meaningful "units". This will make development easier ensuring it is possible to quickly re-build and open the source files associated with the targets of either a given module, the core libraries or even the Slicer application. Currently the grouping is: * App-SlicerApp * CMakePredefinedTargets * Core-Base * Core-Libs * FreeSurfer * ITKFactoryRegistration * [...] * Module-<NameOfModule> * [...] If for some reason, the folder organization needs to be disabled. Slicer could be configured with Slicer_USE_FOLDERS set to OFF. Projects updated in this commit: * CTK * SlicerExecutionModel * OtsuThresholdImageFilter Notes: (1) some of the targets (EMSegment, BRAINSTools, MultiVolume, ...) are still associated to the root and not yet categorized. (2) ideally few more macros/functions should be introduced: one to easily configure subject hierarchy plugin, and one to easily configure tests associated with a CLI. CTK changes: // ------------- commit commontk/CTK@ac1370e Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 14:47:09 2015 -0500 Add FOLDER parameter to ctkMacroBuildQtPlugin If specified, the target(s) associated with designer, icon engine and style plugins will be added into the specified folder when the project is configured for an IDE supporting it. For more details, see http://www.cmake.org/cmake/help/v2.8.9/cmake.html#prop_tgt:FOLDER // ------------- SlicerExecutionModel changes: // ------------- commit Slicer/SlicerExecutionModel@0b780eb Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:06:25 2015 -0500 ENH: SEMMacroBuildCLI - Add possibility to associate FOLDER with CLI targets In project building a lot of modules (i.e Slicer), whenever possible, it is better to keep the huge list of targets organized. To help with this, CMake allows to set a FOLDER target property. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_tgt:FOLDER This commit extends the SEMMacroBuildCLI API to accept an optional FOLDER parameter. If not set, the folder name will default to: <SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX><MODULE_NAME> By default the prefix is set to an empty string and the folder will be named after the module name. There are two ways to specify a default prefix value: (1) Set the variable SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX in the current scope before calling 'SEMMacroBuildCLI' (2) Configure the SlicerExecutionModel project with the option SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX Note that: - FOLDER support has been introduced in CMake >= 2.8.3 and - it can optionally be enabled in a project by setting the global property named USE_FOLDERS. See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_global:USE_FOLDERS Finally, to associate CLI test expected to be in the same "FOLDER", a variable named <MODULE_NAME>_TARGETS_FOLDER is conveniently set in the current scope each time the macro SEMMacroBuildCLI is called. commit Slicer/SlicerExecutionModel@e84d231 Author: Matt McCormick <matt.mccormick@kitware.com> Date: Thu Aug 7 11:09:39 2014 -0400 BUG: Fix ModuleDescriptionParser test data dir. Fixes Parser1Test{1,2}. Simplify by consolidation of variables. // ------------- OtsuThresholdImageFilter changes: // ------------- commit :Slicer/Slicer-OtsuThresholdImageFilter@5efe412 Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> Date: Wed Feb 4 18:08:28 2015 -0500 Associate folder with test targets. [...] // -------------
View file contents SlicerMacroBuildQtModule.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerMacroBuildScriptedModule.cmake
 24045  2 years  jcfr  BUG: Fix py_nomainwindow_qSlicerDICOMModuleGenericTest Fix the failing test ensuring "qt loadable modules" are also discovered when executing generic scripted module tests. Inspired-by: Nicole Aucoin <nicole@bwh.harvard.edu>
View file contents SlicerMacroCheckExternalProjectDependency.cmake
 22751  3 years  jcfr  COMP: Ensure 'superbuild_include_once' works independently of caller scope. By using GLOBAL property instead of a local variable, the file will be properly "include guarded" even if included from within a function. From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerMacroConfigureGenericCxxModuleTests.cmake
 21873  4 years  jcfr  COMP: Fix macro SlicerMacroConfigureGeneric{Cxx, Python}ModuleTests sanity checks Commit r21871 fixed the sanity check associated with macro "SlicerMacroConfigureGenericCxxModuleTests" by testing the content of the variable. This approach works well for function. In case of macro, only parameter referenced using ${argX} are replaced. It means the following code doesn't work: // ---------- macro(foo bar) set(var "foo") message("${var}:${${var}}") endmacro() foo("hello") // ---------- It outputs: foo: whereas the following is expected: foo:hello This commit fix the problem by explicitly testing the parameter value.
View file contents SlicerMacroConfigureGenericPythonModuleTests.cmake
 21873  4 years  jcfr  COMP: Fix macro SlicerMacroConfigureGeneric{Cxx, Python}ModuleTests sanity checks Commit r21871 fixed the sanity check associated with macro "SlicerMacroConfigureGenericCxxModuleTests" by testing the content of the variable. This approach works well for function. In case of macro, only parameter referenced using ${argX} are replaced. It means the following code doesn't work: // ---------- macro(foo bar) set(var "foo") message("${var}:${${var}}") endmacro() foo("hello") // ---------- It outputs: foo: whereas the following is expected: foo:hello This commit fix the problem by explicitly testing the parameter value.
View file contents SlicerMacroConfigureModuleCxxTestDriver.cmake
 24757  22 months  jcfr  ENH: Added output checking to module CXX tests Added a new option (WITH_VTK_ERROR_OUTPUT_CHECK) to slicerMacroConfigureModuleCxxTestDriver that enables checking of error and warning messages. If the option is enabled then the test fails if unexpected error or warning is logged. Enabled the option for all tests that had debug leaks check option (WITH_VTK_DEBUG_LEAKS_CHECK) enabled. Fixed failing tests by fixing the test, the tested code, or (most frequently) marking expected errors/warning (using TESTING_OUTPUT_ASSERT_ERRORS_BEGIN() / TESTING_OUTPUT_ASSERT_ERRORS_END() and similar macros). Reviewed-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Andras Lasso <lasso@queensu.ca>
View file contents SlicerMacroEmptyExternalProject.cmake
 17191  6 years  jcfr  STYLE: Move CMake commands to match new conventions The next step in removing end-of-lines is to run through all the CMakeLists.txt files and clean them up. This also changes all the key words to lower case. The primary reason for changing key words is that all documentation for CMakeLists.txt now shows the key words as lower case. Even the printed “Mastering CMake v5” uses lower case. I’ve come across this several times in my class where students stumble over the fact that the documentation about Cmake does not match the implementation in ITK. I have a script (a wrapper around a vim macro) written that can make these substituions reliably (Tested on the BRAINS tree, the Slicer3 tree, and the ITK tree without causing any errors). More complete documentation can be found in ITK/Utilities/Maintenance/HowToCreateTheCMakeCaseConversion.txt
View file contents SlicerMacroExtractRepositoryInfo.cmake
 26316  4 weeks  jcfr  COMP: Update ExtractRepositoryInfo macro to use top-level source directory This commit ensures that extension including packaging code from a subdirectory can detect the SCM and create packages with the expected name.
View file contents SlicerMacroGetOperatingSystemArchitectureBitness.cmake
 19949  5 years  jcfr  COMP: Prevent confusion by consistently using platform as concatenation of "Os" and "architecture". See #1204 * Rename macro SlicerMacroGetPlatformArchitectureBitness and change its associate return value from PLATFORM to OS.
View file contents SlicerMacroParseArguments.cmake
 25782  6 months  jcfr  STYLE: Update Slicer function and macro name to lower case For search-ability, case of the function is now consistent with the lower case usage of the function. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Isaiah Norton <inorton@bwh.harvard.edu>
View file contents SlicerMacroPythonTesting.cmake
 25783  6 months  jcfr  BUG: Teach 'slicer_add_python_unittest' to add module search paths This commit allows scripted module test within extension to successfully load dependent modules. Fixes http://www.na-mic.org/Bug/view.php?id=4242 From: Isaiah Norton <inorton@bwh.harvard.edu>
View file contents SlicerMacroPythonWrapModuleVTKLibrary.cmake
 25128  15 months  jcfr  STYLE: Simplify import of Logic/MRML/DisplayableManager python modules Instead of creating intermediate python scripts, this commit updates loadable modules wrapping and import mechanism to directly use the shared library. The management of PythonQt and VTK*Python module is now identical.
View file contents SlicerMacroSimpleTest.cmake
 25782  6 months  jcfr  STYLE: Update Slicer function and macro name to lower case For search-ability, case of the function is now consistent with the lower case usage of the function. Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com> From: Isaiah Norton <inorton@bwh.harvard.edu>
View file contents SlicerMacroTranslation.cmake
 26251  6 weeks  jcfr  ENH: Add preliminary support for Qt5 Support configuration using either Qt4 or Qt5 Based on preliminary work from Steve Pieper <pieper@bwh.harvard.edu> * vtkSlicerConfigure: Introduced Slicer_HAVE_QT5 and Slicer_HAVE_WEBKIT_SUPPORT. This was needed to workaround limitation of "moc" compiler preventing it from expanding macro like "QT_VERSION_CHECK. * Explicitly set QT_PLUGINS_DIR and QT_BINARY_DIR variables when using Qt5 * Update extension build system to propagate Qt version Tested with Qt 5.7 and Qt 5.9 on Ubuntu Remaining tasks: * Port extension manager * Update install/packaging rules to support Qt5 * SlicerStyle (based on CommonStyle) is disabled (see Main.cxx). Application crashes on Linux. * Fix runtime errors: * libpng warning: iCCP: known incorrect sRGB profile * QPixmap::grabWidget is deprecated, use QWidget::grab() instead Co-authored-by: Hina Shah <hina.shah@kitware.com> Co-authored-by: Max Smolens <max.smolens@kitware.com> COMP adding qt5 variables for extension testing COMP Adding Qt5 build and plugin cmake variables From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
View file contents SlicerPackageAndUploadTarget.cmake
 24989  18 months  jcfr  STYLE: Fix comment associated with packageupload target
View file contents SlicerPatch.cmake
 26336  3 weeks  jcfr  ENH: Introduce SlicerPatch.cmake allowing to apply patch only once
View file contents SlicerVersion.cmake
 25189  15 months  jcfr  STYLE: CMakeLists: Move setting of Slicer version into its own file
View file contents TopologicalSort.cmake
 17316  6 years  jcfr  ENH: Add TopologicalSort macro
View file contents UseSlicer.cmake.in
 26271  6 weeks  jcfr  ENH: Extension buildsystem: Remove custom (Experimental|Nightly)Upload targets This commit simplifies the extension build system removing targets made obsolete by adding support for the "packageupload" target in r24289 (BUG: Update extension build system to report packaging error on CDash.)
View file contents UseSlicerMacros.cmake
 26201  7 weeks  jcfr  COMP: Update CMake minimum required version from 2.8.9 to 3.5 This commit removes few workarounds and explicit setting of CMake policies. Note that the setting of CMP0017 to OLD (introduced in r16366 (COMP: Update CMake policy requirements) is not needed. Slicer does not provide CMake modules that should be included by modules distributed by CMake. This will ensure the CMake version has: * support for VS 2015 (introduced in CMake 3.1) * a decent support for detecting compiler features (useful with C++11 and above) See https://cmake.org/cmake/help/v3.5/manual/cmake-compile-features.7.html * as well as support for modern cmake that will be used to modernize the Slicer build system. See https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#build-specification-and-usage-requirements CMake 3.5 is also old enough (release in April 2016) and available (same version or above) in distributions like these ones: * Arch Linux * Ubuntu LTS 14.04, 16.04 * OpenSUSE Leap 42.2, 42.3 * Debian 9, Sid * Fedora 24/25/26 * Slackware 14.2 See https://pkgs.org/download/cmake // ------------ Update MultiVolumeExplorer: $ git shortlog 7e44252..c4d3b65 --no-merges Andrey Fedorov (1): ENH: helper script to get stats for a mv frame Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0 // ------------ Update MultiVolumeImporter: git shortlog 3fb2858..b2453a8 --no-merges Jean-Christophe Fillion-Robin (1): COMP: Update CMake version to 3.5.0
View file contents itkCheckCXXAcceptsFlags.cmake
 16372  6 years  jcfr  COMP: Added ITK CMake script allowing to get ITK required C/Cxx flags These 2 files have been copied from ITKv4
View file contents pre-commit
 21912  4 years  sankhesh  ENH: Added safeguard hook to tell developer to setup environment A placeholder pre-commit hook is installed by CMake to ensure the developer sets up the development environment before committing any changes. Addresses issue 2834.
View file contents qSlicerExport.h.in
 20475  5 years  finetjul  STYLE: Remove trailing whitespace in qSlicerExport.h.in
View file contents vtkMacroKitPythonWrap.cmake
 26314  4 weeks  jcfr  COMP: Fix regression in VTK python wrapping built using VTK7 This commit fixes a regression introduced in previous commit r26313 (COMP: Fix VTK python wrapping of extension built against Slicer with VTK8) It ensures that VTK_WRAP_INCLUDE_DIRS is also set when building with vTK <= 8. It fixes the following error reported when building EMSegment python wrappers: ``` /path/to/Slicer-build/Slicer-build/Modules/Remote/EMSegment/Qt/Logic/vtkImageEMLocalGenericClassPython.cxx: In function ‘PyObject* PyvtkImageEMLocalGenericClass_SetProbDataPtr(PyObject*, PyObject*)’: /path/to/Slicer-build/Slicer-build/Modules/Remote/EMSegment/Qt/Logic/vtkImageEMLocalGenericClassPython.cxx:262:11: error: ‘class vtkImageEMLocalGenericClass’ has no member named ‘SetProbDataPtr’ op->SetProbDataPtr(temp0); ^ /path/to/Slicer-build/Slicer-build/Modules/Remote/EMSegment/Qt/Logic/vtkImageEMLocalGenericClassPython.cxx:266:40: error: ‘class vtkImageEMLocalGenericClass’ has no member named ‘SetProbDataPtr’ op->vtkImageEMLocalGenericClass::SetProbDataPtr(temp0); ^ ```
View file contents vtkSlicerConfigure.h.in
 26260  6 weeks  jcfr  ENH: Set default QSurfaceFormat for QVTKOpenGLWidget Set default QSurfaceFormat for QVTKOpenGLWidget so that QVTKOpenGLWidget receives the proper OpenGL core profile context. From QOpenGLWidget documentation (http://doc.qt.io/qt-5/qopenglwidget.html): Note: Calling QSurfaceFormat::setDefaultFormat() before constructing the QApplication instance is mandatory on some platforms (for example, macOS) when an OpenGL core profile context is requested. This is to ensure that resource sharing between contexts stays functional as all internal contexts are created using the correct version and profile. Client code uses QVTKOpenGLWidget when SlICer_VTK_USE_QVTKOPENGLWIDGET is defined in vtkSlicerConfigure.h. Multisampling is disabled to support volume rendering and other VTK functionality that reads from the framebuffer. See https://gitlab.kitware.com/vtk/vtk/issues/1709. From: Max Smolens <max.smolens@kitware.com>
View file contents vtkSlicerVersionConfigure.h.in
 25191  15 months  jcfr  STYLE: Simplify SlicerConfigureVersionHeader target This commit introduces vtkSlicerVersionConfigureInternal.h header containing static information not expected to change between source updates. This commit also adds doxygen documentation. Suggested-by: Francois Budin <francois.budin@kitware.com>
View file contents vtkSlicerVersionConfigureInternal.h.in
 25191  15 months  jcfr  STYLE: Simplify SlicerConfigureVersionHeader target This commit introduces vtkSlicerVersionConfigureInternal.h header containing static information not expected to change between source updates. This commit also adds doxygen documentation. Suggested-by: Francois Budin <francois.budin@kitware.com>
 

  Subversion  TortoiseSVN  ViewVC