summaryrefslogtreecommitdiff
path: root/Utilities/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Utilities/Release: Drop now-unused scriptsBrad King2020-09-171-19/+1
| | | | | | | | | | | | | | Since these commits: * commit ab2276e6b9 (Utilities/Release: remove old macOS release script, 2020-09-16) * commit 7670ba8b0a (Utilities/Release: Drop win{32,64} scripts in favor of docker build, 2020-05-05, v3.18.0-rc1~203^2) * commit 689fdbfc61 (Utilities/Release: Drop linux64 script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2) several scripts we once used for producing release binaries for distribution on `cmake.org` are no longer needed.
* Utilities: also support an already extracted doc treeBen Boeckel2020-09-161-0/+5
|
* replace remove and remove_directory with rm in testsJohnny Jazeix2019-11-131-1/+1
|
* clang-tidy: add option CMake_RUN_CLANG_TIDYDaniel Pfeifer2017-05-041-0/+3
|
* Drop KWStyle checks in favor of clang-format and Git hooksBrad King2016-11-081-1/+1
| | | | | | We now define code layout by clang-format and enforce whitespace with Git hooks. There is no need to run KWStyle anymore, as all we used it to check was line length anyway.
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* CMake: Prevent WiX installations over existing NSIS installationsNils Gladitz2016-02-091-0/+4
| | | | | | | | Use a custom action to look for Uninstall.exe in the user selected installation prefix. Its presence indicates a previous NSIS installation. Inform the user and request manual resolution of the issue.
* Utilities/Release: Pass pre-built docs tarballBrad King2014-01-291-1/+22
| | | | | | | | Avoid requiring all build machines for the upstream packaging process to have Python and Sphinx installed. Instead create a way to build the documentation once on the host machine and copy it to each build machine as a tarball with content to include in the installation tree for packaging.
* Build Help documentation during CMake build using SphinxBrad King2013-10-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a Utilities/Sphinx directory to hold CMake build code to run the Sphinx (sphinx-doc.org) documentation generation tool. Create a CMakeLists.txt file there capable of building either as a subdirectory of the main CMake build, or as a standalone documentation build. Add cache options SPHINX_MAN and SPHINX_HTML to select output formats and SPHINX_EXECUTABLE to specify the sphinx-build executable. Add bootstrap options --sphix-man and --sphinx-html to select output formats and --sphinx-build=<sb> to specify the sphinx-build executable. Create a "conf.py.in" file to configure_file into "conf.py" to tell sphinx-build how to build our documents. Create a "cmake.py" Sphinx extension module defining: * The "cmake-module" directive used in Help/module/*.rst files to scan .rst markup from the corresponding Modules/*.cmake file. * A Sphinx domain called "cmake" defining documentation object types for CMake Help/<type> directories: command, generator, manual, module, policy, prop_*, and variable. Add a "role" for each type to perform cross-references. Teach the roles to treat "<XYZ>" as placeholders instead of explicit targets if not preceded by a space. Add cmake domain directives to define command and variable objects explicitly in .rst file content. This will allow modules to define their own commands and variables and have them indexed and linkable. * A Sphinx document transform that converts Help/<type>/*.rst documents into cmake domain objects of the corresponding <type> and adds index entries for them. This will automatically index all CMake documentation objects and provide cross-reference targets for them with no special markup in the .rst files.
* Drop documentation generation during buildBrad King2013-10-151-120/+0
| | | | | | Drop the 'documentation' build target. We will no longer use the executables to generate their own documentation. New infrastructure will be introduced later to generate documentation.
* Drop xmllint documentation testsBrad King2013-10-151-31/+0
| | | | | Drop these tests since we will drop docbook output along with other documentation formatters.
* Move cmake.m4 from Utilities to AuxiliaryBrad King2013-10-151-1/+0
| | | | | The latter fits more consistently with other third party integration files.
* cmTarget: Deprecate the LOCATION target property with a policy.Stephen Kelly2013-10-111-6/+3
| | | | | | | | | | | | The final location and name of a build-target is not determined until generate-time. However, reading the LOCATION property from a target is currently allowed at configure time. Apart from creating possibly-erroneous results, this has an impact on the implementation of cmake itself, and prevents some major cleanups from being made. Disallow reading LOCATION from build-targets with a policy. Port some existing uses of it in CMake itself to use the TARGET_FILE generator expression.
* Clean up install rules of CMake itself (#14371)Brad King2013-08-261-2/+3
| | | | | | | | | | | Ensure CMAKE_DATA_DIR, CMAKE_DOC_DIR, and CMAKE_MAN_DIR are always relative paths in CMake code, and set defaults accordingly. Use the install() command instead of install_files() and install_targets(). This is more modern and also avoids stripping of the first character from user-specified destinations. While at it, fix the default destinations reported in the bootstrap help.
* cmake-gui: Fix build rules for Qt5 on WindowsBrad King2013-08-071-5/+5
| | | | | Set policy CMP0020 to NEW to get WinMain from Qt. Fix the documentation custom command PATH for cmake-gui to find the Qt5 DLLs.
* docbook: Add CMake.DocBook test to validate xml (#13508)Daniel Pfeifer2012-09-081-6/+15
| | | | The DocBook DTD is provided in "Utilities/xml/docbook-4.5".
* Simplify CMake.HTML documentation test command lineDaniel Pfeifer2012-09-071-8/+8
| | | | | | Drop the "cmake -E chdir" wrapper and instead pass the DTD directory to xmllint's --path option using url encoding. While at it, move the XHTML1 DTD to "Utilities/xml/xhtml1" to make room for additional DTDs.
* Remove CMake multiline block-end command argumentsMarcin Wojdyr2012-08-151-2/+1
| | | | removing arguments omitted in 9db3116226cb99fcf54e936c833953abcde9b729
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-3/+3
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-30/+30
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* cmake.m4: Use modern signature of install(FILES ...)David Cole2011-08-261-1/+1
| | | | | | | The older install_files command uses a leading slash in front of the destination directory, whereas the modern signature does not. Use the modern signature since that's what the CMake devs are now used to.
* Add a cmake.m4 for using cmake in autoconf projects instead of pkgconfigAlex Neundorf2011-08-111-0/+1
| | | | | | | This file has been written today from scratch by Matthias Kretz and it BSD-licensed. Alex
* No CMake.HTML test if xmllint has no --nonet.David Cole2010-11-041-28/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit bb1df1ec, we temporarily ran an alternate test, guaranteed to fail when the --help output of xmllint did not contain --nonet and --path. This commit simply eliminates the test altogether in this condition rather than make an attempt (doomed to fail) to pull down the dtd over the internet. On date=2010-11-04, the CMake dashboard results showed that the test failed on the following CMake dashboard machines: dash8.kitware dash8.kitwarein.com dashsun1 dashsun1.kitware ferrari This is a very small subset of the dashboard machines, and we have enough proof from enough other machines that the test passes with xmllint versions new enough to have the --nonet support. Therefore, eliminate the CMake.HTML test on machines with old versions of xmllint. To run the test, make sure you run it on a machine with a new enough xmllint.
* Make HTML test fail when --nonet arg is not available.David Cole2010-11-021-3/+27
| | | | | | Also, emit "xmllint" and "xmllint --version" output before failing so that we can inspect the output from all the dashboard machines in CDash test results.
* Run CMake.HTML test with older xmllint (#10857)Brad King2010-06-231-11/+19
| | | | | Old versions of xmllint do not have --nonet or --path options. Fall back to the network-access form in this case.
* Run CMake.HTML test without net access (#10857)Brad King2010-06-221-1/+9
| | | | | Use xmllint's --nonet option to avoid downloading the xhtml DTD. Provide the DTD and its dependencies locally.
* Documentation: Test XHTML complianceBrad King2010-03-011-0/+14
| | | | | Use xmllint to validate our generated HTML documentation. See issue #10338.
* Documentation: Cleanup installation rulesBrad King2010-03-011-29/+35
| | | | | | Organize Utilities/CMakeLists.txt to avoid duplicate install command calls. We collect each type of documentation in a variable listing its files for installation and then use one install call at the end.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-0/+11
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* BUG: Fix cmake-gui docs generation PATH featureBrad King2009-02-241-2/+5
| | | | | Automatic addition of the Qt DLL location to PATH can be done only for generators that use a Windows shell.
* ENH: Help cmake-gui docs generation on WindowsBrad King2009-02-241-0/+11
| | | | | | | | We use a custom command to run 'cmake-gui --help...' to generate the documentation for the application. Since this is a Qt application, the executable must find the Qt DLLs in order to run. As a convenience, if QtCore4.dll appears next to qmake.exe, we put its location in the PATH environment variable when running the custom command on Windows.
* ENH: add cmake gui docsBill Hoffman2009-02-131-0/+1
|
* STYLE: add "--help-policy" and "--help-policies" to the documentationAlexander Neundorf2008-05-131-1/+11
| | | | | | | -generate and install the policy documentation files -generate and install the docbook files for cmake, ctest, cpack, ccmake (cmake-gui not yet ?) Alex
* ENH: some more cleanup, fixes, and patch for HTML outputKen Martin2007-10-241-1/+7
|
* STYLE: better error message, name the new manpages cmakecommands,Alexander Neundorf2007-07-131-8/+8
| | | | | | cmakecompat, cmakeprops and cmakemodules Alex
* BUG: the cmake deps depend on cmakeAlexander Neundorf2007-07-061-1/+1
| | | | Alex
* BUG: fix build with cmake < 2.4Alexander Neundorf2007-07-021-16/+15
| | | | Alex
* ENH: generate separate documentation for the commands, compatiblityAlexander Neundorf2007-06-281-6/+40
| | | | | | | | commands, modules and properties as html, text and man pages. The names of the man pages are cmcommands, cmcompat, cmprops and cmmodules, so they are easy to type. Alex
* ENH:Alexander Neundorf2007-06-281-2/+2
| | | | | | | | | | | | -in the full documentation there is now an extra section for compatibility commands, so users see which commands they shouldn't use -cmake -h <command> now also works with lower case commands --help-fullm --help-command, --help-module and --help-property now determine the output format from the extension of the given filename Let me know if there are some things I overlooked. Alex
* STYLE: use a macro for generating the documentationAlexander Neundorf2007-06-151-97/+37
| | | | Alex
* STYLE: add man page for cpackAlexander Neundorf2007-06-141-0/+18
| | | | Alex
* STYLE: use GET_TARGET_PROPERTY(LOCATION) instead of manually building theAlexander Neundorf2007-06-071-13/+6
| | | | | | path to the executables (tested with cmake 2.2.3) Alex
* ENH: add KWStyle supportBill Hoffman2007-05-101-1/+1
|
* ENH: Added option BUILD_CursesDialog if curses is found. This allows people ↵Brad King2006-02-081-22/+20
| | | | to disable building the dialog even when curses is found.
* COMP: Fixed build on VC++ Express 2005. Explicitly testing for MFC to ↵Brad King2006-02-021-2/+2
| | | | determine whether to build the MFCDialog.
* BUG: converted to 1.8 form of custom commandsKen Martin2005-07-151-27/+16
|
* ENH: More cleanups and reorganizationAndy Cedilnik2005-03-041-2/+2
|
* ENH: Moved decision to build MFCDialog up to top level. It is used in both ↵Brad King2003-08-221-26/+22
| | | | the Source and Utilities directories.
* ENH: Added documentation for ctest.Brad King2003-08-061-0/+20
|