summaryrefslogtreecommitdiffstats
path: root/Help/manual/cmake-generator-expressions.7.rst
Commit message (Collapse)AuthorAgeFilesLines
* Fortran: Add compiler ID/Version generator expressionsAndrew Paprocki2019-01-181-0/+13
| | | | | | | | | | | | Adds `Fortran_COMPILER_ID` and `Fortran_COMPILER_VERSION` generator expression support to match equivalent `C_COMPILER_ID`, `CXX_COMPILER_ID`, `C_COMPILER_VERSION`, and `CXX_COMPILER_VERSION` support. This is very helpful in the case where the C/C++ compiler suite is a different type of compiler from the platform Fortran compiler and projects use generator expressions to assign compiler flags and definitions. (e.g. `GNU` C/C++ and `SunPro` Fortran on Linux)
* Help: Say early on that generator expressions can be nested.Joachim Wuttke (o)2018-11-061-2/+4
|
* Help: add section on debugging generator expressions.Joachim Wuttke (h)2018-11-061-0/+22
| | | | This resolves #18550.
* Help: Explain conversion rules of $<BOOL:string>.Joachim Wuttke (h)2018-11-061-2/+10
| | | | This resolves #18549.
* Help: Code example for case-insensitive comparisonJoachim Wuttke (h)2018-11-061-3/+12
|
* Help: Terminate explanations with a dot.Joachim Wuttke (h)2018-11-061-4/+4
|
* Help: Expand placeholders in string comparisons.Joachim Wuttke (h)2018-11-061-6/+8
| | | | And point out that STREQUAL is case sensitive.
* Help: sort conditional expressions below string-valued ones.Joachim Wuttke (h)2018-11-061-30/+29
| | | | | Makes things yet clearer and simpler. Also correct remnant of "informational expression".
* Help: Add deprecation date of $<CONFIGURATION>Joachim Wuttke (h)2018-11-061-1/+1
|
* Help: Add note on omitted <..> notation in cmake-generator-expressions(7)Joachim Wuttke (h)2018-11-061-0/+5
|
* Help: Revise documentation of string-valued generator expressionsJoachim Wuttke (h)2018-11-061-92/+111
| | | | | * Consolidate examples * Sort, and insert subsection headers
* Help: 3 subtypes of boolean generator expressions.Joachim Wuttke (h)2018-11-061-10/+20
| | | | | Main classification by return type, subclassification by dependences
* Help: Cross-link conditional and boolean expressions.Joachim Wuttke (h)2018-11-061-18/+24
| | | | | Rename Logical -> Boolean Generator Expressions. It's the return type that helps us to sort the expression zoo.
* Help: new section on conditional generator expressionsJoachim Wuttke (h)2018-11-061-8/+15
| | | | | | | | | Before, the closely related signatures $<condition:true_value> $<IF:condition,true_value,false_value> were explained in two different sections. The former section was badly explained, with '0' and '1' in place of the formal parameter 'condition'.
* Help: rm unmotivated "This means that"Joachim Wuttke (h)2018-11-061-4/+4
| | | | | | | That generator expressions enable conditional things has not been said before. Amended for nicer source format.
* Help: expand "ver", "pol", ...Joachim Wuttke (h)2018-11-061-19/+23
| | | | | | | No need to save a few characters on formal parameters. Use this occasion to correct $<PLATFORM_ID:comp>: the parameter is a platform_id, not a compiler_id.
* Help: expand "..." and "?" in logical generator expressionsJoachim Wuttke (h)2018-11-061-13/+20
| | | | | | Expand "..." and "?", which could be mistaken as metacharacters (and in the explanations of AND and OR actually were meant as metacharacters).
* Help: Clarify usage of TARGET_PROPERTY generator expressionKyle Edwards2018-10-261-1/+4
| | | | | | When using $<TARGET_PROPERTY:prop>, the value of prop comes from the consuming target rather than the current target. Add a note to clarify this.
* Help: Apply syntax highlighting to cmake-generator-expressions.7Joachim Wuttke (o)2018-10-251-6/+18
|
* docs: add some 'see also' helper textsBrian Heim2018-09-131-0/+5
| | | | in cmake-generator-expressions
* Help: Formatting typo fix in cmake-generator-expressions(7)Raul Tambre2018-09-101-1/+1
|
* Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>Marc Chevrier2018-04-231-0/+39
| | | | Fixes: #17884
* genex: Add TARGET_NAME_IF_EXISTS expressionAlex Turbov2018-03-281-0/+3
| | | | | Define `$<TARGET_NAME_IF_EXISTS:tgt>` to mean `tgt` if the target exists and otherwise an empty string.
* genex: Add TARGET_EXISTS to check for target existenceAlex Turbov2018-03-091-0/+2
| | | | | Define `$<TARGET_EXISTS:a>` to `1` if `a` is an existed target name, else `0`.
* Merge topic 'genex-IN_LIST-operator'Brad King2018-02-161-0/+2
|\ | | | | | | | | | | | | 5089f560 Genex: Add IN_LIST logical operator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1724
| * Genex: Add IN_LIST logical operatorMarc Chevrier2018-02-071-0/+2
| | | | | | | | Implements #17679
* | Help: Expand string(MAKE_C_IDENTIFIER) docsCraig Scott2018-02-111-1/+2
|/ | | | | The MAKE_C_IDENTIFIER subcommand was also buried in the docs for the TIMESTAMP subcommand, so it has been pulled out to its own subheading.
* Genex: Enable COMPILE_LANGUAGE for INCLUDE_DIRECTORIES with VS and XcodeBrad King2018-01-121-18/+13
| | | | | | | | | | | | | | | The set of compile flags used for a target's C and C++ sources is based on the linker language. By default this is always the C++ flags if any C++ sources appear in the target, and otherwise the C flags. Therefore we can define the `COMPILE_LANGUAGE` generator expression in `INCLUDE_DIRECTORIES` to match the selected language. This is not exactly the same as for other generators, but is the best VS and Xcode can do. It is also sufficient for many use cases since the set of include directories for C and C++ is frequently similar but may be distinct from those for other languages like CUDA. Fixes: #17435
* Genex: Enable COMPILE_LANGUAGE for COMPILE_DEFINITIONS with VS and XcodeBrad King2018-01-121-11/+16
| | | | | | | | | | | | | | | The set of compile flags used for a target's C and C++ sources is based on the linker language. By default this is always the C++ flags if any C++ sources appear in the target, and otherwise the C flags. Therefore we can define the `COMPILE_LANGUAGE` generator expression in `COMPILE_DEFINITIONS` to match the selected language. This is not exactly the same as for other generators, but is the best VS and Xcode can do. It is also sufficient for many use cases since the set of definitions for C and C++ is frequently similar but may be distinct from those for other languages like CUDA. Issue: #17435
* Genex: Enable COMPILE_LANGUAGE for COMPILE_OPTIONS with Visual StudioBrad King2017-11-201-5/+7
| | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc4~3^2~1 (VS: Fix target_compile_options for CUDA, 2017-06-21), the evaluation of `COMPILE_LANGUAGE` receives the proper language. The set of compile flags used for a target's C and C++ sources is based on the linker language. By default this is always the C++ flags if any C++ sources appear in the target, and otherwise the C flags. Therefore we can define the `COMPILE_LANGUAGE` generator expression in `COMPILE_OPTIONS` to match the selected language. This is not exactly the same as for other generators, but is the best VS can do. It is also sufficient for many use cases since the set of allowed flags for C and C++ is almost the same in Visual Studio. Furthermore, since the VS generator moves many of the flags to declarative `.vcxproj` elements, it will automatically avoid passing C++ flags for C sources. Issue: #17435
* Genex: Allow TARGET_OBJECTS to be used everywhereRobert Maynard2017-04-181-3/+1
| | | | | | | | | Previously the `TARGET_OBJECTS` generator expression was limited only to use in a buildsystem context so that Xcode's placeholders in object file paths can be evaluated. Lift this restriction so that the expression can at least be used in most settings. Co-Author: Brad King <brad.king@kitware.com>
* Help: Fix error in $<COMPILE_LANGUAGE:lang> exampleNils Gladitz2017-04-041-1/+1
|
* Genex: Add `TARGET_BUNDLE_[CONTENT_]_DIR` generator expressionsGregor Jasny2017-03-301-0/+9
| | | | Closes #16733
* Genex: Add `IF` generator expressionColby Pike2017-01-261-0/+2
| | | | | | | | This allows a single condition to be used to choose between two alternatives. Without this the condition must be duplicated with one surrounded by `NOT`. Closes: #15585
* Add additional <= and >= comparison operatorsChuck Atkins2016-08-091-2/+6
| | | | | This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION equivalents to use the combined <= and >= functionality.
* Fix spelling typos in comments and documentation (#16037)Felix Geyer2016-03-291-1/+1
| | | | | The Debian package checker tool (lintian) detected several typos in CMake.
* Genex: Add a SHELL_PATH expressionStefan Kislinskiy2015-09-281-0/+4
| | | | | | | | | Some commands on Windows do not understand forward slash paths and require backslashes. In order to help projects generate shell invocations of such commands, provide a generator expression to convert paths to the shell-preferred path format for the current generator. This will allow custom commands to generate paths the same way CMake does for compiler command invocations.
* Help: Document supported compilers in cmake-compile-features.7Robert Maynard2015-04-071-1/+1
| | | | | | | Extend sentences in other documentation linking to this manual to say that it has a list of supported compilers. Co-Author: Brad King <brad.king@kitware.com>
* Help: Move docs of $<0:...> and $<1:...> to output section.Stephen Kelly2015-03-101-4/+4
| | | | | These are not 'logical' expressions. They create output and are often used together with the logical expressions.
* Genex: Allow COMPILE_LANGUAGE when processing include directories.Stephen Kelly2015-03-091-1/+5
| | | | Issue an error if this is encountered by an IDE generator.
* Genex: Allow COMPILE_LANGUAGE when processing compile definitions.Stephen Kelly2015-03-091-0/+10
| | | | Issue an error if this is encountered by an IDE generator.
* Genex: Enable use of COMPILE_LANGUAGE for compile options.Stephen Kelly2015-03-091-0/+30
| | | | | | Follow-ups will allow the use of the generator expression for compile definitions and include directories for non-IDE generators.
* Help: Drop TOC from latex manualsBrad King2014-11-061-1/+1
| | | | A latex document can have its own TOC.
* Help/manual: Avoid long lines in code blocksBrad King2014-10-221-1/+11
| | | | | | Update the wording of some examples to avoid long lines in code blocks. Otherwise the formatted documentation can exceed certain column width limitations.
* Genex: Implement generator expressions for target PDB files.Nils Gladitz2014-07-311-0/+11
|
* Make $<LINK_ONLY> available to projects (#14751)Brad King2014-07-161-0/+7
| | | | | | | | Previously this generator expression was used internally by the target_link_libraries command to honor private linking requirements of static libraries in their INTERFACE_LINK_LIBRARIES. Remove the check that limits $<LINK_ONLY> to this use case to make it available for project code to use too.
* Help: Link to variables corresponding to id and version expressions (#15012)Brad King2014-07-141-1/+6
| | | | | | In the cmake-generator-expressions(7) manual, link to the variables that correspond to the PLATFORM_ID, C_COMPILER_ID, CXX_COMPILER_ID, C_COMPILER_VERSION, and CXX_COMPILER_VERSION generator expressions.
* Help: Add a manual for compiler feature control.Stephen Kelly2014-05-271-1/+3
| | | | | | | | Link to it from the documentation of related properties, variables and commands. Extend the cmake-developer(7) documentation with notes on extending feature support for compilers.
* Features: Add COMPILE_FEATURES generator expression.Stephen Kelly2014-05-211-0/+6
| | | | | | | | | | | | Allow setting build properties based on the features available for a target. The availability of features is determined at generate-time by evaluating the link implementation. Ensure that the <LANG>_STANDARD determined while evaluating COMPILE_FEATURES in the link implementation is not lower than that provided by the INTERFACE of the link implementation. This is similar to handling of transitive properties such as POSITION_INDEPENDENT_CODE.
* Genex: Only evaluate TARGET_OBJECTS to determine target sources.Stephen Kelly2014-04-021-1/+3
| | | | | | | | | | The output of this expression may contain macros for IDEs to replace such as $(Configuration), $(CURRENT_ARCH) etc. To avoid generating content which is not usable in other contexts, report an error if there is an attempt to use it in other contexts. This commit may be reverted in the future if a solution to the above difference is implemented.