| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Add link flags during the "device compile" step.
Enabled the relevant tests. The disable reasons regarding separable compilation
were outdated and the actual failure case was device link flags support.
|
|
|
|
| |
Helps reduce wrapping of lines making code more readable.
|
|
|
|
|
| |
There's no reason to allocate the cmNinjaLinkLineDeviceComputer on the heap.
We can also assume the link language as CUDA in cmLocalGenerator::GetDeviceLinkFlags().
|
|
|
|
| |
It's useless as the Watcom compiler isn't supported by NVCC.
|
|
|
|
|
|
|
| |
Call `EnsureParentDirectoryExists` with our internal representation
of the path, not the representation quoted/encoded for Ninja.
Fixes: #22841
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
3975678fcc CUDA/Clang: Simplify --register-link-binaries logic
0b1cea66cd CUDA/Clang: Fix separable compilation in non-root directories with Makefiles
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6400
|
| |
| |
| |
| |
| |
| |
| | |
Move the logic for appending cubin afterwards, so the check can simply be
empty().
With the Makefile generator the option is now at the front instead of being
intermixed with the actual bins.
|
|/
|
|
|
|
|
|
| |
Currently, this feature is only supported on ELF platforms. So, the property
LINK_WHAT_YOU_USE will be ignored for other plateforms.
Moreover, flags and commands are now controled by CMake variables.
Fixes: #20174
|
|
|
|
|
|
|
| |
Move `-Wl,--no-as-needed` from the `<FLAGS>` placeholder to
`<LINK_FLAGS>`, as it is in the Makefile generators.
Fixes: #22342
|
|
|
|
| |
Fixes: #18316
|
|
|
|
| |
Fixes: commit 3bc63e99e4 (Refactor: Prepare Ninja generator for multi-config, 2019-11-14, v3.17.0-rc1~290^2~3)
|
|
|
|
|
| |
This was left out of commit 68e5f92cad (cmGlobalNinjaGenerator: Factor
out custom command output collection, 2021-05-18).
|
|
|
|
|
|
| |
The `GetSourceFilePath` method is meant only for compiled sources, and
automatically handles converting it to a path for the Ninja build
manifest. Rename the method to clarify both.
|
|
|
|
| |
`GetSourceFilePath` already handles converting to a Ninja path.
|
|\
| |
| |
| |
| |
| |
| | |
ad08f93ee4 Ninja Multi-Config: Split long command lines by config
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6067
|
| |
| |
| |
| | |
Fixes: #22123
|
|/
|
|
|
|
|
|
|
|
|
| |
If the shared object name contains spaces, they need to be properly
escaped, or link command will fail.
This was already done for soname symlink creation in commit 13c92b4a30
(Ninja: Fix creation of library symlinks in folders with spaces,
2019-05-20, v3.15.0-rc1~87^2).
Fixes: #20331
|
|
|
|
| |
Fixes: #21252
|
|
|
|
|
| |
CMake uses explicit 'this->' style. Using custom clang-tidy check we can
detect and fix places where 'this->' was missed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
cdb50af2f6 Ninja: Restore shorter path to response files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: alcroito <alexandru.croitor@qt.io>
Merge-request: !5094
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit 99ed39b011 (Ninja Multi-Config: Make link response files
per-config, 2020-07-15, v3.17.4~3^2), we added the target directory to
the response file under the mistaken assumption that two different
targets with the same name could be in different directories. However,
this causes the path to the response file to be too long to fit on a
command line. Take the path back out, while leaving in the per-config
split.
Fixes: #21050
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
99ed39b011 Ninja Multi-Config: Make link response files per-config
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5020
|
| |
| |
| |
| | |
Fixes: #20961
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4819
|
| | |
| | |
| | |
| | | |
Combines cmMakefile:GetDefinition() and cmExpandList()
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
b36d1bdd9d Single location for cmProp typedef
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4829
|
| |/ / |
|
|/ / |
|
| |
| |
| |
| | |
Ensure all call sites pass an explicit configuration.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Enable support for multi-configuration builds using Ninja when building
Swift.
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit d91b5a72cd (Ninja: Add support for CUDA nvcc response
files, 2019-05-30, v3.15.0-rc1~8^2) we use NVCC's `--options-file`
option to avoid long link command lines via a response file. However,
for non-device linking the host tools are used and the option does not
make sense. Update the logic to use `--options-file` only for device
linking. Linking with the host tools already has its own logic for
response files.
Fixes: #19954
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
1e26d57188 Ninja: properly handle exports from Swift exes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4314
|
| | |
| | |
| | |
| | |
| | |
| | | |
This adds logic to properly handle Swift executables. Only executables
marked as exporting symbols will now generate module interfaces for the
executable.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 0f150b69d3 (AIX: Explicitly compute shared object exports
for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) we always export
all symbols from shared libraries by default. Add a new target property
called `AIX_EXPORT_ALL_SYMBOLS` that can be explicitly set to OFF to
suppress this behavior and export no symbols by default.
Fixes: #20290
|
| | |
|
| | |
|