summaryrefslogtreecommitdiffstats
path: root/Source/cmLinkLineComputer.cxx
Commit message (Collapse)AuthorAgeFilesLines
* macOS: GNU toolchain: ensure framework, marked as SYSTEM, can be linkedMarc Chevrier2023-09-211-13/+5
| | | | Fixes: #25263
* cmComputeLinkInformation: prepare Item consumers for `OBJECT` librariesBen Boeckel2023-08-011-1/+2
| | | | | | | | After b665966933 (cmComputeLinkInformation: track `OBJECT` library dependencies, 2023-07-22), introduced in !8645 as a fix for #25112, `OBJECT` libraries were tracked in a separate member to reduce the risk of further regressions. This commit prepares consumers to handle `OBJECT` libraries once they start appearing as link items.
* Apple Frameworks: honor SYSTEM target propertyMarc Chevrier2023-05-111-6/+14
| | | | Fixes: #24109
* Watcom: Replace WATCOMQUOTE format by UseWatcomQuote attributeJiri Malak2023-01-241-6/+4
| | | | | | | 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
* clang-tidy: address `modernize-use-default-member-init` lintsBen Boeckel2022-05-241-4/+0
|
* Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-071-8/+2
| | | | | | | | This generator expression offers the capability, for the link step, to decorate libraries with prefix/suffix flags and/or adding any specific flag for each library. Fixes: #22812, #18751, #20078, #22703
* OpenWatcom: Add infrastructure to link to object filesBrad King2021-05-291-1/+5
|
* cmComputeLinkInformation: Improve type safety of item IsPath memberBrad King2021-05-291-1/+1
| | | | Use an enum to avoid implicit conversions to bool.
* cmOutputConverter: Adopt relative path conversion helpersBrad King2021-05-171-9/+1
| | | | Move them up from cmLocalGenerator and out of cmStateDirectory.
* Merge topic 'swift-link-line-spaces'Brad King2020-03-121-3/+5
|\ | | | | | | | | | | | | af39d1b993 Swift: Fix quoting of library search paths with spaces Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4469
| * Swift: Fix quoting of library search paths with spacesSaleem Abdulrasool2020-03-121-3/+5
| | | | | | | | | | | | | | | | The library search paths added by commit 2746c61e6d (Swift: Add library search paths for dependencies, 2019-06-09, v3.16.0-rc1~561^2) need to be quoted properly on command lines to handle spaces and such. This was already done by `cmLinkLineComputer::ComputeLinkPath` for non-Swift-specific link directories.
* | Merge branch 'backport-3.16-link-line-backtrace'Brad King2020-02-101-18/+4
|\ \ | |/
| * Propagate backtraces from LINK_LIBRARIES through to link line itemsBrad King2020-02-101-18/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Since commit d4d0dd0f6a (cmLinkLineComputer: Add ComputeLinkLibs overload with backtraces, 2019-09-13, v3.16.0-rc1~87^2~4), backtraces have been collected by `ComputeLinkLibs` by looking back through the link implementation libraries for one matching the text of the link line item. This is slow in projects with long link lines. Instead, teach `cmComputeLinkDepends` and `cmComputeLinkInformation` to carry backtrace information explicitly along with the text of each item. Fixes: #20322
* | Ninja: Add multi-config variantKyle Edwards2019-12-131-8/+22
|/ | | | Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
* cmLinkLineComputer: Add ComputeLinkLibraries overload with backtracesJustin Goshi2019-09-181-4/+24
|
* cmLinkLineComputer: Add ComputeLinkLibs overload with backtracesJustin Goshi2019-09-181-6/+31
|
* cmLinkLineComputer: Add ComputeLinkPath overload with backtracesJustin Goshi2019-09-181-9/+27
|
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-031-1/+1
|
* clang-tidy: Enable performance-inefficient-string-concatenationSebastian Holtermann2019-08-051-5/+7
| | | | | | | Enables the clang-tidy test performance-inefficient-string-concatenation and replaces all inefficient string concatenations with `cmStrCat`. Closes: #19555
* Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAGBrad King2019-08-021-0/+1
| | | | | | | | | | | | | | | | | | The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that want library file paths to be preceded by a flag. This is used only for OpenWatcom to add the `library` argument before library file paths. Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a command-line string fragment to add just before the library file path. This has two advantages: * `CMAKE_LINK_LIBRARY_FILE_FLAG` now works like `CMAKE_LINK_LIBRARY_FLAG`. * `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value is the library file path. Technically this is a change in behavior, but this setting was created for internal use and should be rarely used outside of CMake itself. Fixes: #19541
* Refactor checks for whether a target has an import libraryBrad King2019-07-121-2/+1
| | | | Use `HasImportLibrary` for such checks.
* Swift: Add library search paths for dependenciesSaleem Abdulrasool2019-06-171-7/+27
| | | | | | | | | | | When building Swift executables and libraries which import a module, an implicit link will be added by the driver. Because this links by name rather than path, the library search path needs to be provided to indicate where to find the library. For all local dependencies, add the library paths for the targets when linking. This ensures that you can link against local libraries without explicitly setting a library path. Fixes: #19304
* clang-tidy: Use `= default`Regina Pfeifer2019-01-251-3/+1
| | | | | | Suppress some cases in `Source/cmGeneratorExpressionNode.cxx` and `Source/cmUVHandlePtr.h` where a few older compilers require a user-defined default constructor (with `{}`).
* cmOutputConverter: Moved ContainedInDirectory to cmStateDirectoryBruno Manganelli2018-12-081-2/+1
|
* cmOutputConverter: Moved ForceToRelativePath to cmSystemBruno Manganelli2018-12-071-1/+2
|
* Meta: modernize old-fashioned loops to range-based `for`.Pavel Solodovnikov2017-09-121-16/+12
| | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* Pass large types by const&, small types by valueDaniel Pfeifer2017-06-031-1/+1
|
* CUDA: Now pass correct FLAGS when device link cuda executables.Robert Maynard2017-01-121-0/+6
| | | | | | | | Previously we had a two issues when building cuda executables that required separable compilation. The first was that we didn't propagate FLAGS causing any -arch / -gencode flags to be dropped, and secondly generators such as ninja would use the CXX language flags instead of CUDA when the executable was mixed language.
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-0/+5
|
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-0/+1
| | | | | | | Port dependents to the new locations as needed. Leave behind a cmState.h include in cmListFileCache to reduce noise. It is removed in a following commit.
* cmState: Port dependent code to new cmStateDirectory nameStephen Kelly2016-10-191-1/+1
|
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-1/+2
|
* cmLinkLineComputer: Extract link libraries computation from cmLocalGeneratorStephen Kelly2016-10-101-0/+25
| | | | Hide some methods which no longer need to be public.
* cmLinkLineComputer: Move FrameworkPath computation from cmLocalGeneratorStephen Kelly2016-10-101-0/+16
| | | | Add UseWatcomQuote state, and remove corresponding method parameters.
* cmLinkLineComputer: Move RPath computation from cmLocalGeneratorStephen Kelly2016-10-101-0/+36
| | | | | | Add state for Relink and populate it at the point of cmLinkLineComputer initialization. This allows removal of the parameter in go-between methods.
* cmLinkLineComputer: Move LinkPath computation from cmLocalGeneratorStephen Kelly2016-10-101-0/+28
| | | | | | | | Add a ConvertToOutputForExisting method which can be made virtual later to satisfy different generator needs. Pass additional strings as parameters for now. They can be turned into class state later.
* cmLinkLineComputer: Move ComputeLinkLibs from cmLocalGeneratorStephen Kelly2016-10-101-1/+48
| | | | | | | | | | | | | | | Add a cmOutputConverter to the cmLinkLineComputer and factory methods to facilitate shell escapes. Add state to the cmLinkLineComputer to record whether outputting for response files or for watcom, to satisfy the cmOutputConverter API. These are constant for the lifetime of the cmLinkLineComputer, even when its functionality is extended in the future. This also keeps the signatures of cmLinkLineComputer relatively simple. Pass the cmComputeLinkInformation as a method parameter so that cmLinkLineComputer is free from target-specific state. An instance should be usable for all targets in a directory.
* cmLinkLineComputer: Extract from cmLocalGeneratorStephen Kelly2016-10-101-0/+27
CMake has several classes which have too many responsibilities. cmLocalGenerator is one of them. Start to extract the link line computation. Create generator-specific implementations of the interface to account for generator-specific behavior. Unfortunately MSVC60 has different behavior to everything else and CMake still generates makefiles for it. Isolate it with MSVC60-specific names.