| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
C++ module sources should not be included by any other TUs, so their
presence cannot matter for order-only dependencies of the entire target.
Exclude them.
Update CMP0154 to take this into consideration and add tests to the
`CXXModules` suite (which already deals with module support detection).
|
| |
|
| |
|
|
|
|
|
| |
We actually only need to look at outputs just added to the vector, not
all outputs that have been detected so far.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error
badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8895
|
| |
| |
| |
| |
| |
| |
| | |
The `-ifcOnly` flag is understood by MSBuild, but there are unresolved
questions about how to integrate with with CMake's model.
See: #25328
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8886
|
| |/
| |
| |
| |
| |
| |
| | |
These paths are added outside the normal property management mechanisms.
Shuttle the value to the C++ module export as needed.
Fixes: #25289
|
|\ \
| |/
|/|
| |
| |
| |
| | |
35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8883
|
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE,
and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was
provided. Restore this behavior for backwards compatibility.
Fixes: #25338
|
|/
|
|
|
|
|
|
|
|
|
| |
Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user
projects to break when using Qt versions older than 6.6.
Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further
investigation.
Issue: #20074
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8865
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Under CMP0155's NEW behavior, projects that explicitly enable C++20
support with `set(CMAKE_CXX_STANDARD 20)` may also explicitly
disable scanning with `set(CMAKE_CXX_SCAN_FOR_MODULES OFF)`.
We already propagate `CMAKE_CXX_STANDARD` into `try_compile` test
projects, so propagate `CMAKE_CXX_SCAN_FOR_MODULES` too.
Fixes: #25313
|
|/
|
|
|
|
| |
Help users avoid errors about module support when they may not need it.
While at it, polish sentence syntax in the diagnostic messages.
|
|
|
|
|
|
| |
Previously we scanned any targets for which C++ 20 is enabled,
even if enabled only by the compiler's default, such as when
`CXXFLAGS=-std=c++20`.
|
|
|
|
|
| |
Previously we only tracked when an explicit setting requires the
standard level to be higher than the compiler's default.
|
| |
|
| |
|
|
|
|
|
| |
Regardless of whether the feature requires a new (higher) standard
level, always report the standard level that the feature needs.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With CMP0155 NEW behavior, we scan C++ sources in targets using C++ 20,
i.e., in which the `cxx_std_20` feature is available. However, our
check for C++ feature availability may incorrectly succeed in two cases:
* MSVC versions from VS 2013 do not model C++ standard levels,
so we assume all features are available as a heuristic to let
projects at least try compiling with them.
* During ABI detection the `CMAKE_CXX20_COMPILE_FEATURES` variable is not
populated so we assume all features are available, knowing that our
ABI detection project does not need them.
For purposes of detecting targets using C++ 20, we do not want to assume
`cxx_std_20` is available, so verify that we really know it is.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
b0612796b1 cmDebugTools: add header
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8849
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This provides a utility macro which prints out:
- location of the call;
- the expression being evaluated; and
- the value of the expression.
Evaluates to the value of the expression.
Inspired by Rust's `dbg!` macro.
See: https://doc.rust-lang.org/stable/std/macro.dbg.html
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
437280b127 cxxmodules: scan C++ sources for imports by default
3cddd11649 Ninja: message about not compiled sources explicitly
068fde1c34 cmGeneratorTarget: use `this->` for method calls
197a6bf171 cxxmodules: rework control logic for scanning regular C++ sources
5eb7bd641a Tests/RunCMake/CXXModules: remove rules file requirement
ff18acc301 CXXModules: remove `EXPERIMENTAL` from C++ module variable names
0c07f39006 cmExperimental: remove the flag for C++ modules
68caec9137 Help: add a manpage for cxxmodule support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !8828
|
| | |
| | |
| | |
| | |
| | | |
Existing projects are not using C++ modules in their sources,
so introduce policy CMP0155 to enable scanning by default.
|
| | |
| | |
| | |
| | |
| | |
| | | |
With CMP0155, filesets with only non-compiled sources do not go through
the collation path that detects it. Detect it explicitly like the Visual
Studio generator does.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that scanning support is no longer experimental, the logic for
whether or not to scan C++ 20 sources is now important because all
projects are now exposted to the logic. Make the scanning rules explicit
in the documentation and rework the queries to localize all of the
associated logic.
A policy to handle the ultimate fallback logic will be implemented in a
following commit.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
All the major compilers now have scheduled releases with support for
scanning, so remove the experimental gate.
Fixes: #18355
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
d267c128a2 ctest: Restore support for --timeout values higher than default test timeout
dd779a4bc2 Tests: Clarify RunCMake.CTestTimeout case name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8851
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since refactoring in commit 0a5aeaf302 (cmCTestRunTest: Consolidate test
timeout selection logic, 2023-05-04, v3.27.0-rc1~120^2) we accidentally
truncate `--timeout` values to ctest's default `TimeOut`. Fix the
logic to prefer the flag whenever the `TIMEOUT` property is not set.
In combination with the prior refactoring, this also fixes a bug that
caused `--timeout` values of 10000000 seconds or more to be ignored.
Fixes: #23979
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
4e50320978 Help: Allow help for arbitrary keywords
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8674
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Changes `cmake --help [arg]` to search `Help/*/` instead of `Help/command/`
Allows editors to easily display manual for `<cword>`
|
| |_|_|/
|/| | | |
|
| |_|/
|/| | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
42654cc818 Tests/CXXModules: add tests for modules with include requirements
7217cb78cf Tests/CXXModules: relax line number matching in stderr
b3d1bbbbcc cmExportFileGenerator: relocate include directories for C++ modules
349ff8b080 cmGeneratorTarget: remove not-INTERFACE assertion
681a763425 cmGeneratorTarget: use a character literal
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8838
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Include directories are paths that need munged on install to support the
installation prefix.
Fixes: #25275
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
IMPORTED INTERFACE targets which provide C++ modules may have include
directories that need checked for whether they are system directories or
not. These directories are intended for the module compilation
themselves (which may include headers that module consumers do not need).
|
| | | | |
|