| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
|/ /
| |
| |
| |
| |
| | |
Generate build command for assembly file in `compile_command.json`.
Issue: #20059
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For NVCC the compiler takes care of device linking when passed the "-dlink"
flag.
Clang doesn't support such magic and requires the buildsystem to do the work
that NVCC does behind the scenes.
The implementation is based on Bazel's device linking documentation:
https://github.com/tensorflow/tensorflow/blob/7cabcdf073abad8c46e9dda62bb8fa4682d2061e/third_party/nccl/build_defs.bzl.tpl#L259
Closes: #20726
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not attach a custom command to a target if it is already attached to one of
the target's dependencies. The command's output will be available by the time
the target needs it because the dependency containing the command will have
already been built.
This may break existing projects that do not properly mark non-created
outputs with the `SYMBOLIC` property. Previously a chain of two custom
commands whose intermediate dependency is not created would put both
commands in a dependent project's Makefile even if the first command is
also in its dependency's Makefile. The first command would run twice
but the build would work. Now the second command needs an explicit
`SYMBOLIC` mark on its input to tell CMake that it is not expected to
exist. To maintain compatibility with projects that left out the mark,
add a policy activating the behavior.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
5ece12b7e4 gitlab-ci: add ISPC to the Fedora CI image
8976817d6d ISPC: Update help documentation to include ISPC
2368f46ba4 ISPC: Support building with the MSVC toolchain
e783bf8aa6 ISPC: Support ISPC header generation byproducts and parallel builds
34cc6acc81 Add ISPC compiler support to CMake
419d70d490 Refactor some swift only logic to be re-used by other languages
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5065
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
INTERFACE libraries were created with the intention of collecting usage
requirements for use by other targets via `target_link_libraries`.
Therefore they were not allowed to have SOURCES and were not included in
the generated buildsystem. In practice, this has become limiting:
* Header-only libraries do have sources, they just do not compile.
Developers should be able to edit those sources (the header files)
in their IDE.
* Header-only libraries may need to generate some of their header
files via custom commands.
Some projects work around these limitations by pairing each interface
library with an `add_custom_target` that makes the header files and
custom commands appear in the generated buildsystem and in IDEs.
Lift such limitations by allowing INTERFACE libraries to have SOURCES.
For those with sources, add a corresponding build target to the
generated buildsystem.
Fixes: #19145
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
eaad8072ee cmNonempty: Convenience inlines to check for non-empty string
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5017
|
| | |
|
|/ |
|
|
|
|
| |
Fixes: #14516, #20716
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
3888de23da Ninja: Skip Fortran preprocessing if Fortran_PREPROCESS is OFF
66c4e87282 Ninja: Add helper functions to generate Fortran build
5cca1ec893 Ninja: Add helper functions to generate Fortran preprocess rule
b0a6161190 Fortran: Add Fortran_PREPROCESS property
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4659
|
| |
| |
| |
| | |
Issue: #18870
|
|/
|
|
| |
Fixes: #20711
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4318e8ed35 gitlab-ci: add iwyu job
0866b9253b gitlab-ci: add initial clang-tidy build
0a5bcf97b9 gitlab-ci: add scripts for use by CI
960158b90d ci: add scripts to download build tools
6af91c7c4d ci: add an image for Debian 10
68903ae238 ci: add a Docker container for building CMake
3ac24a8a6e cmFunctionBlocker: include missing header
b745b8fd36 IWYU: mark includes needed for assert statements as needed
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4643
|
| |
| |
| |
| |
| | |
IWYU is not seeing that the full declaration is necessary for
`std::unique_ptr<cmLinkLineComputer>`.
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
c4d09fdc6d Makefiles: Add Objective C/C++ compilations to compile_commands.json
98aa628f0b Makefiles: Scan Objective C/C++ preprocessor dependencies
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4675
|
| |
| |
| |
| | |
Fixes: #20634
|
| |
| |
| |
| | |
Fixes: #20178
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
properties LINK_OPTIONS and INTERFACE_LINK_OPTIONS are propagated
to the device link step.
To control which options are selected for normal link and device link steps,
the $<DEVICE_LINK> and $<HOST_LINK> generator expressions can be used.
Fixes: #18265
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
a4173ef165 Tests: Enable coverage of special chars in include dirs for Makefiles
d74e651b78 Makefiles: Re-implement makefile target path escaping and quoting
031bfaa865 Makefiles: Factor out makefile target path escaping and quoting
ca343dad07 Makefiles: Convert paths with '#' on command-lines to short path on Windows
af7de05853 Makefiles: Do not use '\#' escape sequence with Windows-style make tools
1639ee70ef cmDepends: Update types to always use a Makefile generator
413d26030f cmGlobalNinjaGenerator: Remove outdated comment
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4605
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit fbf7a92975 (Makefile: Handle '#' in COMPILE_OPTIONS,
2014-08-12, v3.1.0-rc1~174^2) we escape `#` as `\#` in `flags.make`
variable assignments so that they are not treated as a comment.
Windows-style make tools like NMake do not interpret backslashes
in that way. Other means will be needed to handle `#` in contexts
where it is even possible. The test suite is not covering this
for NMake anyway, and actually has a workaround in `Tests/TryCompile`
for the old behavior, which we can now update.
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
f593b354da PCH: Add support for multi architecture iOS projects
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4561
|
| | |
| | |
| | |
| | | |
Fixes: #20497
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
3fdd8db3aa Refactor: Avoid `std::endl` where it's not necessary (part 1)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4513
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `std::endl` manupulator, except inserting `\n` character, also
performs `os.flush()`, which may leads to undesired effects (like
disk I/O in the middle of forming data strings). For the
`std::stringstream` it also has no meaning.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
c84cf42897 cmState::GetGlobalProperty: return cmProp
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4521
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
25f48761fa Simplify absolute path conversions using CollapseFullPath full signature
12b39aef75 Remove redundant calls to CollapseFullPath
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4518
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | | |
Remove calls where it is known the input is already a collapsed
full path.
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit f6f4eb0907 (clang-tidy: Add driver mode argument,
2020-01-19) the `clang-tidy` tool rejects the new option:
Unknown command line argument '--driver-mode=g++'.
This is because we are adding the flag before the main compiler
command-line. Encode it with `--extra-arg-before=` so that `clang-tidy`
knows it is supposed to be part of the compiler command.
Suggested-by: Hanjiang Yu
|
| |
| |
| |
| |
| |
| |
| | |
`clang-tidy` does not infer driver mode if it is not provided with a
JSON compilation database. This is exactly the way cmake launches it.
Hence clang-tidy will only use the default driver mode. Add an explicit
driver mode argument to avoid this.
|
| | |
|
| |
| |
| |
| | |
Fixes: #20178
|
| | |
|
| | |
|