| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
e77655555c cmExperimental: gate build database support behind a flag
23cbeb5035 ci: enable `build_database` CXXModules tests
6863c1d823 Tests/CXXModules: add tests for module commands
123107c1a4 Tests/CXXModules: add support for running targets under a given config
438038b5e1 Tests/CXXModules: support building specific targets of example trees
84bc710d84 cmGlobalGenerator: generate build database files for targets
670f753f24 cmDyndepCollation: write build database metadata
dcf9a66ffe cxxmodules: plumb control data for exporting build databases
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9708
|
| |
| |
| |
| |
| |
| | |
This is needed to inject arguments through flag generation mechanisms so
that they can all be unescaped uniformly. Eventually, these methods
should go away and the escape/unescape dance be avoided completely.
|
|/ |
|
|
|
|
|
|
| |
The function attempts to read the path to cmd executable from the
COMSPEC environment variable. Falls back to cmd.exe if the respective
environment variable is not set or path doesn't exist.
|
|
|
|
|
|
|
|
|
|
|
| |
By specifying CODEGEN as an argument to add_custom_command the
custom command will be added to a codegen build target.
The intent is to provide a convenient way for users to get
their generated files without having to build the whole project.
This can be helpful for code analysis tools which can be useful
for IDEs and CI.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
0e5250e63c Ninja: Add option for parallel install
daeb8fffa2 Help: Add Builtin Targets section to Ninja help
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9505
|
| |
| |
| |
| |
| |
| |
| | |
Adds the global property ``INSTALL_PARALLEL`` to enable a parallel install
target for Ninja.
Fixes: #25459
|
|\ \
| |/
|/|
| |
| |
| |
| | |
9e2f31ec23 cmCxxModuleMapper: add a query for the open mode for the modmap
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9525
|
| |
| |
| |
| |
| |
| | |
GCC (MinGW) wants to use `\n` on Windows too.
Fixes: #25974
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
36dc8d6d50 Ninja: Fix Fortran module deps in files INCLUDEd by preprocessed sources
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9351
|
| |
| |
| |
| |
| |
| |
| | |
If a preprocessed source also uses the Fortran `INCLUDE` directive,
search the original source file's directory.
Fixes: #25792
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
3f8a59a05c cxxmodules: return failure from the collator when private usage is found
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9257
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
3f8a59a05c cxxmodules: return failure from the collator when private usage is found
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9257
|
| | | |
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
a7424b636b Ninja: make the collator rule use `restat = 1`
e24eecfc33 Tests/CXXModules: add a test to ensure that `restat` works for collation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9259
|
| |/
| |
| |
| | |
This avoids rebuilds when the module metadata does not change.
|
| |
| |
| |
| | |
It is only required for Ninja < 1.7 though.
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
255c2e1430 Ninja: LINK_OPTIONS property should support newlines
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9096
|
| |
| |
| |
| | |
Fixes: #25513
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
beb1393f8f Merge branch 'revert-exact-collation-depends-3.27' into fortran-objects-as-sources-fix
a033dce326 Makefiles: provide, but do not consume, "forward linked" target dirs
7cd0adab1b cmCommonTargetGenerator: use modules from linked object-referenced targets
1175f1c874 LinkItem: track `cmSourceFile` instances for external objects
d2fa56772f Ninja: support "forwarding" modules from other targets
ec1e589bec Ninja: Revert exact collation dependencies for 3.27
06df59b930 cmCommonTargetGenerator: return forward linked target dirs too
f8729ab366 cmLocalUnixMakefileGenerator3: handle object-referencing Fortran modules
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8989
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a target uses objects from another target which provides modules as
sources, the modules provided by the referenced target must also be
treated as if they were provided by the referencing target. Add the
concept of "forwarding" modules so that consumers can use modules
created by these sources as well.
Note that this is only sensible for Fortran where module usages are
implicit as far as CMake's visibility model is concerned. C++ modules
have their own concept of visibility which does not require or support
such `$<TARGET_OBJECTS>` reuse in this way.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
bb7a0497ef cmTransformDepfile: warn when a depfile is not written to
c22c473bde Tests/Ninja*/CustomCommandDepfile: check that deps are in the database
b0177003e1 cmGlobalNinjaGenerator: tell `ninja` to actually read the depfile
45eff9145e cmAddCustomCommandCommand: use `cmStrCat`
c6445c615b Tests/RunCMake/Ninja: fix subdir prefix check
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8911
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
But only do so if the depfile is not specified as an output of the
command. Otherwise the command will out-of-date itself as `ninja`
deletes depfiles that it incorporates into the database and a missing
output will cause the command to run again.
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| | |
1f507580a1 cmGlobalGenerator: give context about module queries
889aa0354a CMP0155: ignore scanning for sources if no scanner is available
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8925
|
| |
| |
| |
| |
| |
| | |
Some queries are merely investigating support in order to change
behavior. Let the method know so that any internal errors can be skipped
over.
|
| |
| |
| |
| |
| | |
The implementation is the same and the called method used internally is
`virtual`, so just make the call non-virtual.
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
This requires knowing when a generated header is public, which we can
model using file sets. Add policy CMP0154 to treat generated sources
as private by default in targets with file sets. Generated public
headers can be specified in public file sets.
Fixes: #24959
Issue: #15555
|
|
|
|
|
|
|
|
|
| |
If the COMSPEC is set to an absolute path, use it instead of just
`cmd.exe`. This avoids searching for the tool in the current working
directory and the `PATH`. If COMSPEC is not set to an absolute path,
fall back to the existing behavior.
Issue: #18350
|
| |
|
|
|
|
|
|
| |
`include-what-you-use` diagnostics, in practice, are specific to
the environment's compiler and standard library. Update includes
to satisfy IWYU for our CI job under Debian 12.
|
|
|
|
|
|
| |
Ensure correct escaping for Ninja and Makefile generators.
Fixes: #25049
|
|\
| |
| |
| |
| |
| |
| |
| | |
677b28dc7b Ninja: include module mapper flags in `compile_commands.json`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8611
|
| |
| |
| |
| | |
Fixes: #24618
|
|/ |
|
|
|
|
| |
It is now subsumed by the UUID setting completely.
|
|
|
|
|
|
|
|
| |
When the build system re-runs `cmake` to regenerate itself, preserve the
`--compile-no-warning-as-error` option if it was used when `cmake` was
last explicitly invoked. Normally such settings are preserved in the
cache, but the purpose of this option is to be beyond the reach of
project code.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
d38779df2a ci: Enable RunCMake.CXXModules collation cases in clang jobs
69e4525241 Tests/CXXModules: add example for private modules between targets
18f87c87f8 cmCxxModuleMapper: track whether modules are private or not
56f7d6f827 cmCxxModuleMapper: add a structure to represent BMI locations
8207a3a266 cmDyndepCollation: add a query for visibility of an object's modules
e8efcbec8c iwyu: ignore `std::remove_reference` requirements
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8476
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows collation to give a useful error message when it finds usage
of a private module rather than collation just not informing the
compilation and the compiler erroring out about not being able to import
unknown modules (which exists, but it was not told about due to
visibility).
Fixes: #24652
|
|/
|
|
|
|
|
|
| |
De-duplicate code check rule generation in Ninja and Makefile generators
by moving their implementation to `cmCommonTargetGenerator`.
Previously Ninja was generating code check rules per language.
It was changed to generate code check rules for each source file.
|
|
|
|
|
|
|
| |
Since commit b0a6161190 (Fortran: Add Fortran_PREPROCESS property,
2020-04-24, v3.18.0-rc1~116^2~3), if `Fortran_PREPROCESS` is `OFF`, the
Ninja generator does not properly detect dependencies on sources loaded
via the Fortran INCLUDE directive. Fix this and add a test.
|
|
|
|
|
| |
The value represents the source file to be scanned.
It is not always preprocessor output.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
426f3295f6 Ninja: Use more efficient data structures to collect outputs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8371
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
a67cd9c39c Ninja: Restore slash style for MinGW tools when extra languages are enabled
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8368
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit f3ca199c9b (cmGlobalNinjaGenerator: Factor out GNU-like
command-line detection on Windows, 2023-03-18, v3.26.1~2^2~6), we
accidentally "unrecognize" MinGW tools on Windows if a language other
than C or CXX is enabled. This causes the wrong slash style to be
generated in paths in `build.ninja`.
Fixes: #24642
|