| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
ce1cadd35a Tests/ConfigSources: fix for non main stream CMAKE_BUILD_TYPE
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5967
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- None is a valid CMAKE_BUILD_TYPE
- Most of distros uses None as CMAKE_BUILD_TYPE
- When CMAKE_BUILD_TYPE=None, main_other.cpp will be compiled and linked
into final executable, this program requires some symbols only exist
when CUSTOM_CFG_OTHER is defined.
- And CMake also allows other CMAKE_BUILD_TYPE, too, CMake documentation
specificaly mentions funny CMAKE_BUILD_TYPE like ReLeAsE [1]
Let's define them when non main stream like None is specified as CMAKE_BUILD_TYPE.
[1]: https://cmake.org/cmake/help/v3.20/variable/CMAKE_BUILD_TYPE.html
|
|/ |
|
|
|
|
|
| |
The test regularly fails updating the `vc*.pdb` compiler-generated
PDB file. Add the `/Z7` flag as the compiler suggests for this.
|
|\
| |
| |
| |
| |
| |
| | |
3af0671019 Tests: Fix ConfigSources test with empty CMAKE_BUILD_TYPE
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5643
|
| |
| |
| |
| |
| |
| | |
The test requires a non-empty `CMAKE_BUILD_TYPE` to function on
single-config generators. Force a non-empty configuration if the test
is configured explicitly with empty `-DCMAKE_BUILD_TYPE=`.
|
|/
|
|
|
|
|
|
|
| |
Move rejection of `#`, `<`, and `>` characters in outputs and byproducts
to a generate-time check. This removes the front-end check that
disallowed generator expressions. The generators have already been
updated to handle them.
Fixes: #12877
|
|
|
|
| |
Fixes: #21349
|
|
|
|
| |
Fixes: #21198
|
|
|
|
|
|
|
| |
This is now expected to work on all generators where the test runs.
Recent ancestors of this commit fix the Visual Studio generator.
Fixes: #20648
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactoring in commit 01b2d6ab74 (Modernize: Use ranged for-loops when
possible, 2019-02-07, v3.15.0-rc1~575^2) accidentally changed a loop
condition in this method from "keep iterating if srcs.empty()" to
"stop iterating if srcs.empty()". Switch it back.
The bug could only manifest in very subtle conditions in a multi-config
generator. Add one such case to the test suite.
Fixes: #20706
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In multi-config generators we memoize the computed set of source files
for a target to avoid repeating the computation when the set does not
depend on the configuration. We already track whether generator
expressions in `SOURCES` or `INTERFACE_SOURCES` reference the
configuration (`$<CONFIG:...>`). However, we previously forgot to track
whether the set of libraries whose `INTERFACE_SOURCES` are considered
depends on the configuration. This caused multi-config generators to
use the first configuration's set of sources for all configurations
in cases such as
target_link_libraries(tgt PRIVATE $<$<CONFIG:Debug>:iface_debug>)
where the `iface_debug` target has `INTERFACE_SOURCES`.
Fix this by also tracking config-dependence of the list of libraries for
evaluation of the list of source files.
Fixes: #20683
|
|
|
|
|
| |
Revise the test itself to work in all configurations and verify that
certain sources are only built by whatever configuration is tested.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow the pattern of checks that are made for INTERFACE_INCLUDE_DIRECTORIES.
Existence is already checked by cmSourceFile::GetFullPath. Add a check
to disallow relative paths in source directories. Otherwise code such as
target_sources(lib1 INTERFACE foo.cpp)
would fail if consumed by a target in a different directory.
Unlike the INTERFACE_INCLUDE_DIRECTORIES behavior, we don't care whether
the entry comes from an IMPORTED target or not. In the include directories
case, the directory for a non-imported target might not exist yet but
might be created. In the sources case, a file which does not yet
exist in the filesystem must be explicitly marked with the GENERATED
property.
Adjust existing tests and add a new test for the error.
|
|
|
|
|
|
|
| |
Extend the cmGeneratorExpressionDAGChecker with an interface
returning the name of the top target. Use that to determine
when there is a DAG violation, as required by the RunCMake.Languages
tests.
|
|
Disallow the use of config-specific source files with
the Visual Studio and Xcode generators. They don't have
any way to represent the condition currently.
Use the same common-config API in cmQtAutoGenerators. While
it accepts config-specific files, it doesn't have to support
multiple configurations yet.
Loop over the configs in cmTargetTraceDependencies
and cmGlobalGenerator::WriteSummary and consume all source
files.
Loop over the configs in cmComputeTargetDepends and compute the
object library dependencies for each config.
|