| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Issue: #26401
|
|
|
|
|
| |
For policy-specific tests, use the version before the policy was
introduced. Otherwise, use 3.10 where possible.
|
|
|
|
|
|
|
|
|
|
|
| |
In build statements we use a single `DEP_FILE = ...` binding that is
shared between `depfile = $DEP_FILE` and `command = ... $DEP_FILE ...`
bindings in the corresponding rule. In cases that the command's shell
argument needs quoting, add a separate `depfile = ...` binding to the
build statement to express the depfile path without quoting. Otherwise
`ninja` tries to open a file path that contains literal quotes.
Fixes: #26287
|
| |
|
|
|
|
| |
Also rename from "CustomCommandDependencies".
|
| |
|
|
|
|
| |
Also rename from "CompilerDependencies".
|
| |
|
|
|
|
| |
Fixes: #25419
|
|
|
|
| |
This generator has been deprecated since CMake 3.27. Remove it.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
7198f0d149 Makefile: Fix double escaping when DEPFILE is used
5162ff64d4 Makefile: Reduce string copies
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9138
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit cfd8a5ac1f (Makefiles: Add support of DEPFILE for
add_custom_command, 2020-12-04, v3.20.0-rc1~237^2~1) we added a
`ConvertToOutputPath` call on a path given to the `depends` field of
`WriteMakeRule`. The latter already handles escaping for Makefile
syntax.
Fixes: #25554
|
|/ |
|
|
|
|
|
| |
The test regularly fails updating the `vc*.pdb` compiler-generated
PDB file. Add the `/Z7` flag as the compiler suggests for this.
|
|
|
|
|
|
|
| |
Unfortunately it breaks in combination with LTO due to a bug in the GNU
linker.
Fixes: #25014
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Based on work done by @ben.boeckel (!8051)
Fixes: #22217
|
|
|
|
|
|
|
|
| |
For policy-specific tests, use the version before the policy was
introduced. Otherwise, use 3.5 where possible.
Also, remove `cmake_minimum_required()` and `project()` calls from
individual cases where they are handled by `CMakeLists.txt`.
|
|
|
|
| |
This generator has been deprecated since CMake 3.22. Remove it.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
02b2607a5c Help: Add release note for MCST LCC compiler support
e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture
0995c75301 Tests/RPM: skip tests tat rely on debugedit if it's not found
ea55ac9a51 Tests/RunCMake/CommandLine: Deal with locales that are different from English
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6608
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Divert LCC compiler as a new one, instead of treating it as GNU.
Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).
This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.
Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
|
|/
|
|
|
| |
The Borland compiler takes a long time to process a large number of
include files. Sometimes the test times out. Reduce its size.
|
|
|
|
| |
Fixes: #22486
|
|
|
|
|
|
|
|
| |
Transform the depfile into MSBuild `AdditionalInputs` content. Add
MSBuild Targets to update `AdditionalInputs` and the `.tlog` files for
future builds without actually modifying the `.vcxproj` file.
Fixes: #20286
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ninja treats every (normalized) path as its own node. It does not
recognize `/abs/path/to/file` in a depfile as matching `path/to/file`
even when `build.ninja` and the working directory are in `/abs/`.
See Ninja Issue 1251. In cases where we pass absolute paths to the
compiler, it will write a depfile containing absolute paths. If those
files are generated in the build tree by custom commands, `build.ninja`
references them by relative path in build statement outputs, so Ninja
does not hook up the dependency and rebuild the project correctly.
Add infrastructure to work around this problem by adding implicit
outputs to custom command build statements that reference the main
outputs by absolute path. Use a `${cmake_ninja_workdir}` placeholder
to avoid repeating the base path. For example:
build out.txt | ${cmake_ninja_workdir}out.txt: CUSTOM_COMMAND ...
Ninja will create two nodes for the output file, one with a relative
path and one with an absolute path. A depfile may then mention either
form of the path and Ninja will hook up the dependency. Unfortunately
Ninja will also stat the file twice.
Issue: #13894
Fixes: #21865
|
|
|
|
|
|
| |
Exclude the case on generators where it does not yet work.
Issue: #21865
|
|
|
|
|
|
| |
This MR extend the support of 'DEPFILE' to buildsystem version 1.
Issue: #20286
|
|
|
|
| |
Issue: #20286
|
|
|
|
|
|
| |
This facility is very useful for 'Ninja Multi-Config' and required
as well for future support of DEPFILE in 'Xcode' and 'Visual Studio'
generators (#20286).
|
|
|
|
| |
Fixes: #21694
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
b8b6573db8 Xcode: Use deterministic object ids for script build phases
2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids
d250b67722 cmGlobalXCodeGenerator: Adopt pbxproj object id generation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5671
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Xcode "new build system" only considers a script build phase up to
date if it has run before, even if outputs are newer than inputs. Use a
deterministic object id for script build phases associated with custom
commands so that they do not need to re-run after CMake re-generates the
project.
Fixes: #21669
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since one depender has multiple dependees, depend makefile generated
same depender line by line, to reduce file size and refine make file
parse speed, merge same dependers to one. And add a testcase for
large depend.make which generated source file includes 20000 header
files and run build and incremental build
Signed-off-by: Wangkai <wangkai86@huawei.com>
Signed-off-by: Zhaoyingdong <zhaoyingdong@huawei.com>
|
| |
| |
| |
| | |
Issue: #20286, #21415
|
| |
| |
| |
| |
| | |
Issue: #20286
Fixes: #21415
|
|/
|
|
|
|
|
|
|
|
|
| |
Each source compilation generates a dependencies file. These dependencies
files are consolidated in one file per target. This consolidation is done
as part of command 'cmake -E cmake_depends` launched before evaluation of
makefile dependency graph.
The consolidation uses the same approach as `CMake` dependencies management.
Fixes: #21321
|
|
|
|
| |
Fixes: #20780
|
|\
| |
| |
| |
| |
| |
| | |
0199dd9f1b ExternalProject: expose _ep_cache_args_script to the caller
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4710
|
| |
| |
| |
| |
| |
| |
| | |
This is needed so that the caller can add a dependency on the cache
file.
Fixes: #20668
|
|/
|
|
|
|
|
|
| |
The GNU `as --help` shows `--MD <file>` as an option to generate depfiles
as needed by Ninja. There is no `-MT <target>` flag but fortunately the
generated files automatically account for the `-o <obj>` flag.
Issue: #20426
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit a13a5c948e (Replace use of CollapseCombinedPath with
CollapseFullPath, 2019-03-19, v3.15.0-rc1~361^2~1), one code path now
calls `CollapseFullPath` with a base path that may be relative.
Backport KWSys commit c6f8e24a3 (SystemTools: Fix CollapseFullPath with
relative base path, 2019-07-24) to handle such base paths.
This case occurs when a build tree is placed in a directory inside a
source tree such that CMake is willing to generate a relative path from
the build tree to the source tree. Add a test covering this case.
Fixes: #19507
|
| |
|
|
|
|
|
| |
The MSVC toolsets v100 and below forget to re-link when a manifest
changes. Exclude this part of the test case for them.
|
|
|
|
|
| |
We don't define behavior for relative paths to the OUTPUT argument.
Fix our tests to use full paths.
|
|
|
|
|
|
|
|
|
|
| |
Use the `IMPLICIT_DEPENDS` option of `add_custom_command` and place the
command in a custom target. Verify that `INCLUDE_DIRECTORIES` of that
custom target are honored. This is a case that was not really designed
to work but happens to work, is useful, and makes sense. Add a test
case make sure it continues to work.
Issue: #16830
|
| |
|
|
|
|
| |
This generator has been deprecated since CMake 3.6. Remove it.
|
|
|
|
|
|
|
| |
Automate with:
find Tests -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|