| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
In particular, the `LINK_OPTIONS` target property was not placed
on link lines consistently with other generators.
Fixes: #27326
|
| |
|
|
|
|
|
|
|
| |
Create a single place to store target data to prevent duplication.
This moves `targetType` and `targetLabels` out of the snippet files
and into a target map in the `cmakeContent` file referenced by each
snippet.
Fixes: #27244
|
| | |
|
| |
|
|
|
|
| |
Revert infrastructure from commit 8bcf9c7a3e (Add support of "LINKER:"
prefix for artifact creation flags, 2024-10-12, v4.0.0-rc1~522^2~1).
It is not needed to populate legacy placeholders with empty strings.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we used separate placeholders for builtin linker flags:
* CMAKE_<LANG>_LINK_FLAGS for EXECUTABLEs
* CMAKE_SHARED_LIBRARY_CREATE_<LANG>_FLAGS for SHARED libraries
* CMAKE_SHARED_MODULE_CREATE_<LANG>_FLAGS for MODULE libraries
These correspond to variables set by our compiler information modules.
Teach the generators to look up these variables and add them to the
existing `<LINK_FLAGS>` placeholder instead. Substitute the empty
string for the old placeholders.
Issue: #21934
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With IntelLLVM on Windows, we link using the compiler driver.
With MSVC on Windows, we invoke the linker directly. If we
use both in a single build tree, for separate languages,
the value of `CMAKE_LINK_DEF_FILE_FLAG` conflicts. Add a
per-language `CMAKE_<LANG>_LINK_DEF_FILE_FLAG` variable to
avoid the conflict. Preserve the language-agnostic variable
for compatibility with projects that reference it.
Fixes: #26005
|
| |
|
|
|
|
|
|
|
|
| |
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
while IFS= read -r -d $'\0' f ; do
sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
s/Copyright.txt/LICENSE.rst/
}' "$f" ; done
```
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`, now with "east const" enforcement.
Use `clang-format` version 18.
* 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.
Issue: #26123
|
| |
|
|
|
| |
Adds a new data field `targetLabels` to link snippets which contains a list of
text labels from the LABELS target property.
|
| |
|
|
|
|
|
| |
The following variables now support the LINKER: prefix:
* CMAKE_SHARED_LIBRARY_CREATE_<LANG>_FLAGS
* CMAKE_SHARED_MODULE_CREATE_<LANG>_FLAGS
* CMAKE_<LANG>_LINK_FLAGS
|
| | |
|
| |
|
|
|
|
|
|
| |
The following variables now support the LINKER: prefix:
* CMAKE_<TYPE>_LINKER_FLAGS
* CMAKE_<TYPE>_LINKER_FLAGS_<CONFIG>
Fixes: #26171
|
| |
|
|
|
|
|
|
| |
Add option `CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`.
There will no versions for the shared objects when this option is used.
Closes: #26033
|
| |
|
|
| |
Fixes: #25765
|
| |
|
|
|
|
|
| |
This was accidentally left out by Makefile generators.
It already works with Ninja.
Fixes: #25480
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Offer the capability, through variable `CMAKE_LINKER_TYPE`, as well as
the target property `LINKER_TYPE` to specify which linker must be used.
The implementation of this capability is specified by variables specific
to the language and linker type: `CMAKE_<LANG>_USING_LINKER_<TYPE>`.
Some definitions are provided as part of `CMake`.
For example, to select the `LLVM` linker rather than the standard one,
the type `LLD` should be specified through the variable `CMAKE_LINKER_TYPE`.
And, on `Apple`, `Linux` and some environments on `Windows`, the variable
`CMAKE_<LANG>_USING_LINKER_LLD` has value `-fuse-ld=lld`. And for `Windows`
environments based on `MSVC`, where the linker is used directly, the tool
`lld-link.exe` will be used rather than `link.exe`.
Fixes: #19174, #24254, #24990
|
| | |
|
| |
|
|
| |
This method returns now a std::unique_ptr instance rather than a raw pointer.
|
| |
|
|
|
|
| |
Based on work done by @ben.boeckel (!8051)
Fixes: #22217
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| | |
c5305cf493 Makefile: Don't pass the CUDA compiler response files with UTF8_BOM
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ivan Katalenić <ivankatalenic100@gmail.com>
Merge-request: !8267
|
| | |
| |
| |
| | |
Fixes #24544
|
| |/
|
|
| |
Fixes: #24123
|
| | |
|
| |
|
|
|
| |
Response files contained double-quote for any response file, but response files for wlink must contains single-quote. This is fix for libraries list response file. Problem for object file list was fixed by MR
!8115
|
| |
|
|
|
|
|
| |
Replace WATCOMQUOTE output format by UseWatcomQuote attribute to properly handle single quote
This attribute is used globaly only for Watcom linker to handle single-quote separator instead of double-quote
it doesn't mean different output format only change of quoting separator
It is now applied to any output form SHELL/RESPONSE/NINJAMULTI if Watcom linker is used otherwise double-quote is used
|
| |
|
|
| |
Fixes #22200
|
| | |
|
| |
|
|
| |
Migrate from `cmCommonTargetGenerator::AddModuleDefinitionFlag`.
|
| |
|
|
|
| |
GCC warns about buffer juggling here. To avoid the warning, improve the
code to avoid resizing on the following two pushes.
|
| |
|
|
| |
It's useless as the Watcom compiler isn't supported by NVCC.
|
| | |
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Fixes: #18316
|
| |
|
|
|
|
| |
Most calls to `MaybeConvertToRelativePath` use one of our common work
directories (e.g. top of the build tree) as the local path. Add helpers
for each of the common cases to simplify and clarify call sites.
|
| |
|
|
|
| |
If the shared object name contains spaces, they need to be properly
escaped, or link command will fail.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
| |
Combines cmMakefile:GetDefinition() and cmExpandList()
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Move upper-case conversion of the configuration into the implementation.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
| | |
|
| | |
|