| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Issue a deprecation warning on calls to `cmake_minimum_required` or
`cmake_policy` that set policies based on versions older than 3.5.
Note that the effective policy version includes `...<max>` treatment.
Update the check from commit 5845c218d7 (Deprecate compatibility with
CMake versions older than 2.8.12, 2020-06-12, v3.19.0-rc1~629^2).
|
|
|
|
| |
Fixes #24327
|
| |
|
|
|
|
| |
Move some `TARGET_PROPERTY` cases from `RunCMake.GeneratorExpression`.
|
|
|
|
|
|
|
|
|
|
|
| |
Logically revert commit 390a7d8647 (cmTargetPropertyComputer: Implement
GetProperty without cmMakefile, 2016-10-13, v3.8.0-rc1~445^2~9).
It relied on using `cmListFileBacktrace` to get a scope in which to
look up policies.
This does remove a backtrace from `LOCATION` property errors at generate
time, but the backtrace we reported before was incorrect. It pointed at
the addition of a target, not to the reference to the property.
|
|
|
|
|
|
|
| |
The OLD behaviors of all policies are deprecated, but only by
documentation. Add an explicit deprecation diagnostic for policies
introduced in CMake 3.14 and below to encourage projects to port
away from setting policies to OLD.
|
|
|
|
| |
Fixes: #19696
|
|
|
|
| |
Fixes: #20951
|
|\
| |
| |
| |
| |
| |
| |
| | |
eae15dce6a Genex: $<CONFIG:> now supports multiple configurations
c4cc21d20b cmVisualStudio10TargetGenerator: Do not segfault on empty config
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4924
|
| |
| |
| |
| |
| | |
Instead of having to do $<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>>
you can do $<CONFIG:Release,MinSizeRel>
|
|/
|
|
| |
Use 3.3 or 2.8.12 where possible.
|
|
|
|
| |
Move the `GENEX_EVAL` cases and friends out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `TARGET_FILE` cases and friends out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `DEVICE_LINK` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `HOST_LINK` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `LINK_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `LINK_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `COMPILE_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Move the `COMPILE_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
|
|
|
|
| |
Fixes: #20641
|
|
|
|
|
|
| |
These generator expressions can only be used in link options properties.
These expressions return the arguments respectively for device and host link
step, otherwise return an empty string.
|
|
|
|
|
|
| |
This MR may help to solve issues #19757 and #18008
Fixes: #19965
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On AIX, plugins meant to be loaded into executables via `dlopen` must be
linked with access to a list of symbols exported from the executable in
order to use them (when not using runtime linking). The AIX linker
supports specifying this list as an "import file" passed on the command
line either via the `-bI:...` option or (with a leading `#! .` line) as
a normal input file like any other library file.
The linker import file plays the same role on AIX as import libraries do
on Windows. Teach CMake to enable its import library abstraction on AIX
for executables with the `ENABLE_EXPORTS` target property set. Teach
our internal `ExportImportList` script to optionally generate a leading
`#! .` line at the top of the generated export/import list. Update our
rule for linking an executable with exports to generate a public-facing
"import library" implemented as an AIX linker import file.
With this approach, our existing infrastructure for handling import
libraries on Windows will now work for AIX linker import files too:
* Plugins that link to their executable's symbols will be automatically
linked using the import file on the command line.
* The executable's import file will be (optionally) installed and
exported for use in linking externally-built plugins.
This will allow executables and their plugins to build even if we later
turn off runtime linking.
Issue: #19163
|
|
|
|
|
|
| |
This allows for expressions such as:
$<COMPILE_LANG_AND_ID, CXX, GNU, Clang>
|
|
|
|
|
|
|
|
|
|
|
| |
For special properties like `INCLUDE_DIRECTORIES`, the pointer returned
by `cmTarget::GetProperty` is only valid until the next time the same
special property is queried on *any* target. When evaluating a nested
`TARGET_PROPERTY` generator expression we may look up such a property
more than once on different targets. Fix `TargetPropertyNode::Evaluate`
to store the lookup result in locally owned memory earlier.
Fixes: #19286
|
|\
| |
| |
| |
| |
| |
| |
| | |
e214abdaab Genex: Add COMPILE_LANG_AND_ID generator expression
f84ed796a2 Docs: Generator-expressions remove usage of `CMake-id`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3300
|
| | |
|
|/ |
|
|
|
|
|
| |
This capability complement MR !3190 and !3207
and is also needed to solve issue #18771.
|
| |
|
|
|
|
|
| |
These capabilities complement MR !3190
and is also needed to solve issue #18771.
|
| |
|
|
|
|
| |
This new capability is required to solve efficiently issue #18771
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes: #18894
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
| |
The old behavior of $<IN_LIST:...> is inconsistent with that of
if(IN_LIST), in that it does not find an empty search item even if
the list contains empty items. This change adds a new policy to
correctly handle empty items and make the behavior more consistent
with if(IN_LIST).
Fixes: #18556
|
|
|
|
|
|
|
|
| |
Evaluate to false on `$<COMPILE_LANGUAGE:Lang>` if language `Lang`
is not loaded. This is helpful in exported targets consumed in other
projects that may not enable all the same languages.
Fixes: #17952
|
|
|
|
| |
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`.
|
|
|
|
| |
Avoid enabling languages in cases that do not need them.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than injecting `CMakeLists.txt` files into each target's
`SOURCES`, teach the generators to add them during generation using
dedicated code. This avoids mutating the original targets, and avoids
polluting `$<TARGET_PROPERTY:foo,SOURCES>` with generator-specific
content.
This also avoids listing the `CMakeLists.txt` sources in the results of
`CMAKE_DEBUG_TARGET_PROPERTIES==SOURCES` so the `RunCMake.TargetSources`
test no longer needs a separate case for IDEs.
|
|\
| |
| |
| |
| |
| |
| | |
068cc545 Genex: Fix TARGET_PROPERTY value of SOURCES
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1218
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactoring in commit v3.8.0-rc1~445^2~2 (cmTarget: Move sanity checks
and computed property access to callers, 2016-10-13) exposed a typo in
commit v3.8.0-rc1~445^2~3 (cmGeneratorTarget: Implement
cmTargetPropertyComputer interface, 2016-10-13). Together they broke
the `$<TARGET_PROPERTY:mytgt,SOURCES>` generator expression in the case
that the `SOURCES` target property is populated in part by the
`target_sources` command. Add the missing `;`-separator.
Fixes: #17243
|
|/ |
|
|
|
|
| |
Closes #16733
|
|
|
|
|
|
|
|
| |
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
|