summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Genex LINK_LIBRARY: Add support for framework with postfixMarc Chevrier2022-09-211-26/+22
|
* Apple: Fix regression when linking a framework with postfixMarc Chevrier2022-09-141-7/+5
| | | | | | | Fix a regression caused by commit 40178f3c90 (cmGlobalGenerator: Add helper to split framework path, 2022-02-10, v3.24.0-rc1~661^2~1). Fixes: #23961
* genex-LINK_LIBRARY: ensure correct generation inside LINK_GROUP genexMarc Chevrier2022-07-051-0/+11
| | | | | | | | | | | | | | | | This fix ensures the following pattern is correctly handled: $<LINK_GROUP:group_feat,$<LINK_LIBRARY:lib_feat,mylib>> With: CMAKE_LINK_GROUP_USING_group_feat = "—START_GROUP" "—END_GROUP" CMAKE_LINK_LIBRARY_USING_lib_feat = "—PREFIX" "—LINK <LIBRARY>" "—SUFFIX" Before the fix, we get the following generation: —START_GROUP —PREFIX —LINK /path/to/mylib —END_GROUP —SUFFIX —END_GROUP and —SUFFIX are in the wrong order After the fix, we get the correct order: —START_GROUP —PREFIX —LINK /path/to/mylib —SUFFIX —END_GROUP
* Ensure targets which are frameworks can be used freelyMarc Chevrier2022-03-291-4/+10
| | | | | | | Ensure flag -F/path/to/framework is specified during compilation step of consumers of the framework. Fixes: #23336
* genex-LINK_(LIBRARY|GROUP) features: update variables behaviorMarc Chevrier2022-03-251-2/+6
| | | | | | | | Variable CMAKE_LINK_(LIBRARY|GROUP)_USING_<FEATURE>_SUPPORTED is evaluated only if CMAKE_<LANG>_LINK_(LIBRARY|GROUP)_USING_<FEATURE>_SUPPORTED is not defined. This new behavior enable to activate a feature globally on a platform and to disable it for some compilers and languages.
* Genex-LINK_GROUP: Add possibility to group libraries at link stepMarc Chevrier2022-02-281-83/+201
| | | | Fixes: #23121
* cmComputeDepends::LinkEntry: introduce enum to specify item typeMarc Chevrier2022-02-251-2/+4
|
* genex-LINK_LIBRARY: rename configuration variablesMarc Chevrier2022-02-161-2/+2
| | | | | | To be more consistent between genex and variables as well as the forecomming LINK_GROUP genex, rename variable *_LINK_USING_<FEATURE>* in *_LINK_LIBRARY_USING_<FEATURE>*
* GenEx/LINK_LIBRARY: Add features for framework support on AppleMarc Chevrier2022-02-151-22/+65
|
* cmGlobalGenerator: Add helper to split framework pathMarc Chevrier2022-02-131-6/+5
| | | | | cmComputeLinkInformation and cmGlobalXCodeGenerator now rely on this method to handle framework paths.
* $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target propertyMarc Chevrier2022-02-081-6/+11
| | | | | | To enable the management of incompatible $<LINK_LIBRARY> declarations, add LINK_LIBRARY_OVERRIDE and LINK_LIBRARY_OVERRIDE_<LIBRARY> target properties.
* Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-071-25/+362
| | | | | | | | 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
* cmComputeLinkInformation: use cmComputeLinkDepends::LinkEntryMarc Chevrier2022-02-061-44/+67
| | | | | | In preparation of support of genex $<LINK_LIBRARY:...>, propagate cmComputeLinkDepends::LinkEntry instances to ensure to have, when needed, all attributes attached to the link item.
* cmComputeLinkInformation: Add context to warning about linking a directoryBrad King2021-10-271-8/+9
|
* Source: Fix clang -Wimplicit-fallthrough warningsSean McBride2021-09-281-1/+5
|
* Rename cmProp in cmValueMarc Chevrier2021-09-211-18/+19
|
* Refactor: reduce cmToCStr usageMarc Chevrier2021-08-191-5/+2
|
* HIP: Add language to CMakeRobert Maynard2021-06-071-2/+2
|
* OpenWatcom: Add infrastructure to link to object filesBrad King2021-05-291-8/+19
|
* cmComputeLinkInformation: Improve type safety of item IsPath memberBrad King2021-05-291-12/+13
| | | | Use an enum to avoid implicit conversions to bool.
* Genex: Add TARGET_RUNTIME_DLLS genexKyle Edwards2021-02-241-0/+19
| | | | Co-Authored-by: Brad King <brad.king@kitware.com>
* Merge topic 'xcode-framework-path'Brad King2021-02-041-3/+9
|\ | | | | | | | | | | | | | | | | 5389bb4274 Xcode: Don't hard-code SDK-provided implicit framework search paths df08f8df30 cmComputeLinkInformation: Fix misspelt private variable name 375b307bae Apple: Fix linking to frameworks that do not exist until build time Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5760
| * Xcode: Don't hard-code SDK-provided implicit framework search pathsCraig Scott2021-02-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | When a framework is linked to a target by its full path and that framework is located in one of the implicit framework search directories, CMake 3.18.5 and earlier discarded that path. ce2dee9e5ba (Xcode: Don't add framework as -framework argument in linker info list, 2020-09-28) introduced a regression which resulted in the framework path always being added to the search path even if it matched one of the implicit search paths. This broke the ability to do device and simulator builds from the same configured project. Fixes: #21678
| * cmComputeLinkInformation: Fix misspelt private variable nameCraig Scott2021-02-031-3/+3
| |
| * Apple: Fix linking to frameworks that do not exist until build timeBrad King2021-02-021-12/+6
| | | | | | | | Fixes: #21621
* | clang-tidy: fix `readability-make-member-function-const` warningsBen Boeckel2021-01-271-0/+3
| |
* | Apple: Fix linking to frameworks that do not exist until build timeBrad King2020-12-211-12/+6
|/ | | | Fixes: #21621
* Xcode: Don't add framework as -framework argument in linker info listGusts Kaksis2020-10-021-5/+11
|
* cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-34/+32
|
* Source: use cmNonempty()Vitaly Stakhovsky2020-07-281-4/+3
|
* cmIsOn: add overload accepting const std::string*Vitaly Stakhovsky2020-07-141-2/+2
|
* cmComputeLinkInformation: members use std:string argumentsVitaly Stakhovsky2020-07-101-31/+30
|
* Merge topic 'getdef-expand'Brad King2020-06-021-24/+9
|\ | | | | | | | | | | | | 7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4819
| * cmMakefile: add GetDefExpandList() that splits value into std::vectorVitaly Stakhovsky2020-05-301-24/+9
| | | | | | | | Combines cmMakefile:GetDefinition() and cmExpandList()
* | Single location for cmProp typedefVitaly Stakhovsky2020-06-011-0/+1
|/
* CUDA: Factor runtime library lookup into helper methodBrad King2020-05-221-27/+12
|
* cmGeneratorTarget::GetProperty: return cmPropVitaly Stakhovsky2020-04-291-9/+8
|
* Refactoring: add cm::contains to <cmext/algorithm>Marc Chevrier2020-04-171-8/+8
|
* cmComputeLinkInformation: reserve space in built-up stringBen Boeckel2020-04-131-0/+1
| | | | This should avoid any reallocations that would occur in this function.
* nits: replace some "c" instances with 'c'Ben Boeckel2020-04-131-2/+2
|
* clang-tidy: address bugprone-branch-clone lintsBen Boeckel2020-04-131-1/+0
| | | | | | | | | Arguably, many of these are bugs in `clang-tidy`. An if/else tree with other conditionals between cloned blocks may be relying on the intermediate logic to fall out of the case and inverting this logic may be non-trivial. See: https://bugs.llvm.org/show_bug.cgi?id=44165
* replace std::string::substr() with operations that do not allocate memoryRolf Eike Beer2020-03-231-6/+6
| | | | | Modify the original string instead of creating a new copy with substr() when it is not used for anything else afterwards.
* replace "std::string::find(x) == 0" with cmHasPrefix()Rolf Eike Beer2020-03-231-5/+6
|
* Merge branch 'backport-3.16-link-line-backtrace'Brad King2020-02-101-40/+42
|\
| * Propagate backtraces from LINK_LIBRARIES through to link line itemsBrad King2020-02-101-40/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge topic 'modernize-memory-management'Brad King2020-01-281-12/+8
|\ \ | | | | | | | | | | | | | | | | | | b50b2755da cmComputeLinkInformation: modernize memory management Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4285
| * | cmComputeLinkInformation: modernize memory managementMarc Chevrier2020-01-261-12/+8
| |/
* | CUDA: Add abstraction for cuda runtime selectionRobert Maynard2020-01-271-0/+43
|/ | | | | Fixes #17559 Replace our hard-coded default of cudart=static with a first-class abstraction to select the runtime library from an enumeration of logical names.
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-6/+6
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* Merge topic 'fileapiLinkPathAndLinkDirBacktraces'Brad King2019-09-201-0/+35
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 4d6334824d fileapi: add backtraces for LINK_PATH and LINK_DIRECTORIES 5bd65dff7a cmLocalGenerator: Add OutputLinkLibraries overload with backtraces 5d39e792ae cmGeneratorTarget: Store backtrace for target LINK_DIRECTORIES property 7da17ef797 cmLinkLineComputer: Add ComputeLinkLibraries overload with backtraces d4d0dd0f6a cmLinkLineComputer: Add ComputeLinkLibs overload with backtraces 0ac9dcb807 cmLinkLineComputer: Add ComputeLinkPath overload with backtraces 0c6468178a cmComputeLinkInformation: Add GetDirectoriesWithBacktraces a209b31d0d cmComputeLinkInformation: Add AppendValues with backtraces Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3805