| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This allows for expressions such as:
$<COMPILE_LANG_AND_ID, CXX, GNU, Clang>
|
| |
|
|
|
|
|
| |
This allows for expressions like:
$<$<CXX_COMPILER_ID:Clang,GNU>:-DMY_PRIVATE_DEFINE>
|
| |
|
| |
|
|
|
|
|
| |
This capability complement MR !3190 and !3207
and is also needed to solve issue #18771.
|
|\
| |
| |
| |
| |
| |
| | |
ce078dda79 Relax the usage of TARGET_OBJECTS generator expression
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3178
|
| |
| |
| |
| |
| | |
The geneator expression can now be used with static, shared, and
module libraries and executables.
|
| | |
|
| |
| |
| |
| |
| | |
These capabilities complement MR !3190
and is also needed to solve issue #18771.
|
| | |
|
| |
| |
| |
| |
| | |
The generator expression $<REMOVE_DUPLICATES:list> is string-valued, not
boolean-valued.
|
| |
| |
| |
| | |
This new capability is required to solve efficiently issue #18771
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
b53766b205 CUDA: Support compiler id and version generator expressions
b544e34af6 All VersionNode use the same capitalization pattern
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3085
|
| |
| |
| |
| |
| | |
Introduce the CUDA_COMPILER_ID and CUDA_COMPILER_VERSION generator
expressions.
|
|/
|
|
|
|
|
| |
Extend the genex added by commit ca6ba3fee5 (Genex: Add a SHELL_PATH
expression, 2015-09-24, v3.4.0-rc1~37^2) to accept a `;`-list of paths,
convert them all, and generate a list separated by the native shell
`PATH``` separator.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
| |
This resolves #18550.
|
|
|
|
| |
This resolves #18549.
|
| |
|
| |
|
|
|
|
| |
And point out that STREQUAL is case sensitive.
|
|
|
|
|
| |
Makes things yet clearer and simpler.
Also correct remnant of "informational expression".
|
| |
|
| |
|
|
|
|
|
| |
* Consolidate examples
* Sort, and insert subsection headers
|
|
|
|
|
| |
Main classification by return type,
subclassification by dependences
|
|
|
|
|
| |
Rename Logical -> Boolean Generator Expressions.
It's the return type that helps us to sort the expression zoo.
|
|
|
|
|
|
|
|
|
| |
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'.
|
|
|
|
|
|
|
| |
That generator expressions enable conditional things
has not been said before.
Amended for nicer source format.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Expand "..." and "?", which could be mistaken as metacharacters
(and in the explanations of AND and OR actually were meant as
metacharacters).
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
in cmake-generator-expressions
|
| |
|
|
|
|
| |
Fixes: #17884
|
|
|
|
|
| |
Define `$<TARGET_NAME_IF_EXISTS:tgt>` to mean `tgt` if the target
exists and otherwise an empty string.
|
|
|
|
|
| |
Define `$<TARGET_EXISTS:a>` to `1` if `a` is an existed target name,
else `0`.
|
|\
| |
| |
| |
| |
| |
| | |
5089f560 Genex: Add IN_LIST logical operator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1724
|
| |
| |
| |
| | |
Implements #17679
|
|/
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|