summaryrefslogtreecommitdiffstats
path: root/Modules/FeatureSummary.cmake
Commit message (Collapse)AuthorAgeFilesLines
* CMakeParseArguments: Remove superfluous includes of CMakeParseArgumentsKyle Edwards2018-12-141-2/+0
| | | | | | | | | | | | | | Because cmake_parse_arguments() has been implemented as a native command, there is no need to include(CMakeParseArguments) anymore. Its inclusion has been removed from several CMake modules. Tests/CMakeOnly/CMakeLists.txt has been changed to include the *building* CMake's copy of CMakeParseArguments rather than the *built* CMake's copy. This file included the *built* copy because when this file was introduced, CMake could still be built with versions that didn't supply cmake_parse_arguments(). Now, CMake requires 3.1 or greater, where cmake_parse_arguments() existed but was still in the form of a module, so we include it from the *building* CMake.
* Fix trivial typos in textluzpaz2017-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some are user facing. Found using codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt` whereby the whitelist contained: ans dum helpfull emmited emmitted buil iff isnt nto ot pathes substract te todays upto whitespaces
* FeatureSummary: Add FeatureSummary_<TYPE>_DESCRIPTION global propertiesDaniele E. Domenichelli2017-02-061-2/+17
| | | | | | The global property FeatureSummary_<TYPE>_DESCRIPTION can be defined for each type to replace the type name with the specified string whenever the package type is used in an output string.
* FeatureSummary: Add DEFAULT_DESCRIPTION option to feature_summaryDaniele E. Domenichelli2017-02-061-14/+32
| | | | | If enabled and only one package type is selected, it will print the default title for the selected package type.
* FeatureSummary: Fix documentationDaniele E. Domenichelli2017-02-061-8/+10
|
* FeatureSummary: Refactor to use global properties for package typesDaniele E. Domenichelli2017-01-261-70/+171
| | | | | | | | | | | | | | | | These new global properties were added: * FeatureSummary_PKG_TYPES: Package types accepted by FeatureSummary (default REQUIRED RECOMMENDED OPTIONAL RUNTIME). * FeatureSummary_REQUIRED_PKG_TYPES: Package types that will cause FeatureSummary to abort when called with FATAL_ON_MISSING_REQUIRED_PACKAGES and a package in these categories is missing (default REQUIRED). * FeatureSummary_DEFAULT_PKG_TYPE: Default package type assigned when not explicitly assigned by the user (default OPTIONAL). This allows to add and remove new package types that can be printed selectively using the "WHAT" argument.
* FeatureSummary: Allow lists of dependencies in ADD_FEATURE_INFODaniele E. Domenichelli2017-01-261-2/+12
|
* FeatureSummary: Add QUIET_ON_EMPTY option to feature_summaryDaniele E. Domenichelli2017-01-261-13/+23
| | | | | This option suppresses the output when the list of packages that belong to the selected category is empty.
* FeatureSummary: Do not force OPTIONAL type in SET_PACKAGE_PROPERTIESDaniele E. Domenichelli2017-01-261-16/+14
| | | | | | | | | | | The OPTIONAL type is used anyway as default when the type is not set Since RUNTIME < OPTIONAL, forcing it here forces the user to set "RUNTIME" at the first SET_PACKAGE_PROPERTIES, otherwise it is impossible to set it later. Without this it is impossible, for example, to add package information (URL and DESCRIPTION) in the FindPackage file, but allow the package to be RUNTIME.
* FeatureSummary: Add deprecation warnings to deprecated commandsDaniele E. Domenichelli2017-01-261-0/+6
|
* FeatureSummary: Clean printed outputDaniele E. Domenichelli2017-01-261-6/+9
| | | | | | | * Remove space before commas * Do not add an empty line before the first type of packages Also fix a typo in unit test.
* Don't include CMakeParseArgumentsDaniel Pfeifer2017-01-111-3/+0
| | | | | | | | | | | | The cmake_parse_arguments command is builtin with version 3.5. The CMakeParseArguments module is empty and exists for backwards compatibility with CMake 3.4 and lower. Remove the includes of CMakeParseArguments from CMake's modules. The modules are always used with the current version of CMake. Leave the includes in the tests, as the tests may be run with an older version of CMake.
* Simplify CMake per-source license noticesBrad King2016-09-271-13/+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.
* FeatureSummary: Add include() to examplesBrad King2016-09-151-0/+2
| | | | | | | Since this module's documentation already includes complete usage examples, make them more complete by showing the include() explicitly. Issue: #16309
* FeatureSummary: Format documentationBrad King2016-09-151-247/+241
| | | | | Revise the documentation using reStructuredText inline markup and explicit blocks so that it formats well.
* FeatureSummary: Convert docs to a bracket commentBrad King2016-09-151-265/+266
| | | | | Use a bracket comment to hold the documentation instead of a block of line comments. This will make further updates easier.
* FeatureSummary: Order function implementations the same as the documentationBrad King2016-09-151-77/+73
|
* Use string(APPEND) in ModulesDaniel Pfeifer2016-07-271-6/+6
| | | | | | | Automate with: find Modules -type f -print0 | xargs -0 perl -i -0pe \ 's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
* Modules: Check for ARGC before using ARGV#Daniele E. Domenichelli2015-02-271-2/+8
| | | | ARGV# could be defined from a parent scope.
* FeatureSummary: Print each feature info only onceGregor Jasny2015-02-231-0/+3
| | | | | | | If a feature is added multiple times via ADD_FEATURE_INFO it should appear only once in FEATURE_SUMMARY. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* FeatureSummary: Fix bracket in documentation.Christoph GrĂ¼ninger2015-01-231-2/+2
|
* Modules: Wrap long lines in pre-formatted documentation blocksBrad King2014-11-061-1/+1
| | | | Help format the blocks better for display without a wide screen.
* Modules: Format documentation to avoid over-long preformatted linesBrad King2014-10-221-27/+43
| | | | | | Convert several preformatted code block literals that enumerate lists of options or variables to use reST definition lists instead. Manually wrap other long lines in code blocks.
* Replace MATCHES ".+" tests with NOT STREQUAL ""Rolf Eike Beer2014-04-141-2/+2
|
* FeatureSummary: Add missing titles for PACKAGES_FOUND and PACKAGES_NOT_FOUNDDaniele E. Domenichelli2014-03-141-0/+2
| | | | Since now these can be used with the WHAT argument a title is required.
* FeatureSummary: Allow to combine and reorder values for the "WHAT" optionDaniele E. Domenichelli2014-03-031-17/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example it is now possible to do: feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES) That produces an output like: -- -- The following features have been enabled: * Feature1 * Feature2 -- The following features have been disabled: * Feature2 Skipping the lists that are empty. Without this patch this would require to do: message(STATUS "") feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "The following features have been enabled:") feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "The following features have been disabled:") And empty lists would not be skipped. The behaviour when WHAT has a single argument (ALL or any option) is unchanged.
* FeatureSummary: Don't list transitive package dependenciesStephen Kelly2014-02-031-0/+6
| | | | | | | | | | | | | | Set a global property in the find_package implementation. Track and reset that property in the find_dependency macro. Read the property in FeatureSummary when determining whether to print output. This means that packages which are found only as dependencies are not listed by FeatureSummary, but if a project uses find_package elsewhere directly, then it will be listed by FeatureSummary. Suggested-by: Alex Merry http://thread.gmane.org/gmane.comp.kde.devel.frameworks/10640
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-143/+220
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* Find* (and some other): use ${CMAKE_CURRENT_LIST_DIR} in include()Rolf Eike Beer2012-11-041-1/+1
| | | | | | This solves a lots of warnings, e.g. in the FindModulesExecuteAll test. If the installed version on the system is rather old this may even lead to bugs, e.g. https://bugs.gentoo.org/show_bug.cgi?id=436540
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-16/+16
| | | | | | | | | | | | | | | | | 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-189/+189
| | | | | | | | | | | | | | | | | 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
* FeatureSummary.cmake: nicer formattingAlex Neundorf2012-05-131-2/+2
| | | | Alex
* various typo and formatting fixes in manual pages (#12975)Modestas Vainius2012-02-181-1/+1
| | | | | | | | | | | | | | | | The patch fixes the following lintian warnings: W: cmake-data: manpage-has-errors-from-man usr/share/man/man1/cmakemodules.1.gz 2728: warning: macro `..' not defined I: cmake-data: spelling-error-in-manpage usr/share/man/man1/cmakemodules.1.gz overriden overridden I: cmake-data: spelling-error-in-manpage usr/share/man/man1/cmakemodules.1.gz overriden overridden I: cmake-data: spelling-error-in-manpage usr/share/man/man1/cmakemodules.1.gz explicitely explicitly I: cmake-data: spelling-error-in-manpage usr/share/man/man1/cmakemodules.1.gz jave java W: cmake-data: manpage-has-errors-from-man usr/share/man/man1/cmakeprops.1.gz 1040: warning [p 25, 3.7i]: can't break line W: cmake: manpage-has-errors-from-man usr/share/man/man1/cmake.1.gz 4233: warning [p 85, 1.3i]: can't break line I: cmake: spelling-error-in-manpage usr/share/man/man1/cmake.1.gz overriden overridden I: cmake: spelling-error-in-manpage usr/share/man/man1/cmake.1.gz overriden overridden I: cmake: spelling-error-in-manpage usr/share/man/man1/cmake.1.gz explicitely explicitly I: cmake: spelling-error-in-manpage usr/share/man/man1/cmake.1.gz jave java
* Don't warn when setting a property multiple times to the same value #12464Alex Neundorf2011-09-181-2/+2
| | | | | | Patch by Yury Kudryashov Alex
* Fix typos in FeatureSummary.cmake (#12462)Alex Neundorf2011-09-181-4/+4
| | | | | | Patch by Yury Kudrashov Alex
* Make the formatting of feature_summary output a little better.Stephen Kelly2011-08-271-1/+1
|
* FeatureSummary.cmake: update documentationAlex Neundorf2011-07-171-18/+81
| | | | Alex
* FeatureSummary.cmake: cosmeticsAlex Neundorf2011-07-171-34/+39
| | | | | | | -move the compat function to the bottom of the file -make all except one endif() empty Alex
* FeatureSummary.cmake: only higher TYPEs can override previous TYPEsAlex Neundorf2011-07-171-2/+9
| | | | | | This way e.g. a REQUIRED cannot become OPTIONAL, only the other way round Alex
* FeatureSummary.cmake: error out when a REQUIRED package is missingAlex Neundorf2011-07-171-4/+16
| | | | Alex
* FeatureSummary.cmake: add INCLUDE_QUIET_PACKAGES keywordAlex Neundorf2011-07-171-26/+38
| | | | | | | | | Now found packages are not stored in ENABLED/DISABLED_FEATURES anymore, but always in PACKAGES_FOUND/NOT_FOUND. ENABLED/DISABLED_FEATURES is now only used via ADD_FEATURE_INFO(), e.g. for stuff set via option(). Alex
* FeatureSummary.cmake: remove "comment" fieldAlex Neundorf2011-07-171-12/+8
| | | | | | | | What was given as comment to set_package_info(), now goes into the PURPOSE field. It was not clear what the comment should contain, with the PURPOSE this is much clearer now. Alex
* Extend FeatureSummary: add PURPOSE of package and TYPEAlex Neundorf2011-07-171-29/+167
| | | | | | | | | | | | | | With the PURPOSE a project can state what the package in question is used for in the project (as opposed to describing what the package does in general). TYPE can be one of OPTIONAL (default) RUNTIME - not needed for building, only at runtime RECOMMENDED - as OPTIONAL, but you should really have it REQUIRED - cmake will fail if one of these is not found This can be set using the new function set_package_properties() Alex
* Close ENDFUNCTION() properly with the same name as FUNCTION()Alex Neundorf2010-09-211-1/+1
| | | | Alex
* Set a default DESCRIPTION if none is given for ALL mode of feature_summary()Alex Neundorf2010-09-211-2/+6
| | | | Alex
* APPEND and not-APPEND mode of feature_summary() were swappedAlex Neundorf2010-09-211-2/+2
| | | | Alex
* Add macro ADD_FEATURE_INFO() and improve docs.Alex Neundorf2010-08-251-20/+70
| | | | | | | | | | ADD_FEATURE_INFO() can be used to set the info for a feature, e.g. an option(). set_feature_info() has been renamed to set_package_info(), since this is about found or not found packages. For compatiblity set_feature_info() is still provided. Alex
* Improve wording of the documentation.Alex Neundorf2010-08-241-5/+7
| | | | Alex
* Improve documentation.Alex Neundorf2010-08-241-21/+57
| | | | Alex
* Log the required package version and major improvement to FeatureSummaryAlex Neundorf2010-08-241-14/+77
| | | | | | | | | | | | | | | | | | | | find_package() now also stores the required version automatically, so it can be used by FeatureSummary.cmake. This was one of the requested features for setting up nightly builds for KDE, since with this functionality it will be possible to write a file at the end of each project which lists all required packages and their versions. This file could then be compared for equality with an older one and if something has changed the build maintainer can be emailed. In FeatureSummary.cmake there is now a new function feature_summary(), which also allows to print the log to a file or into a variable. It also allows to specify whether to append to a file or to write a new one, and what information to log. Docs are still missing. Alex