summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Rename cmProp in cmValueMarc Chevrier2021-09-211-49/+50
|
* Refactor: Convert parallel string/backtrace vectors to BT vectorsKyle Edwards2021-09-031-174/+53
|
* Refactor: Use new SetProperty signaturesMarc Chevrier2021-08-251-4/+4
|
* Enhancement: SetProperty accept cmProp or std::stringMarc Chevrier2021-08-251-52/+64
| | | | | Methods SetProperty of classes cmPropertyMap, cmStateDirectory and cmMakefile accept now cmProp or std::string as argument.
* cmProp: refactoring: transform alias in classMarc Chevrier2021-08-081-21/+22
| | | | | | To handle safely the values used by CMake variables and properties, introduce the class cmProp as a replacement from the simple pointer to std::string instance.
* Refactor cmTargetExport removing InterfaceIncludeDirecoriesEugene Shalygin2021-07-221-0/+12
| | | | | | | | Because of this property in the cmTargetExport struct, exporting targets is not uniform: top-level ones have to be dealt with via the cmTargetExport objects, while all linked ones are cmGeneratorTarget objects. Let's pass this additional includedirectories via a special target property making handling exported targets uniform.
* HIP: Add language to CMakeRobert Maynard2021-06-071-4/+8
|
* Launchers: Support setting linker launchersBobby D Reynolds2021-05-281-0/+4
| | | | Fixes: #18316
* cmListFileCache: Simplify relative path conversion in backtracesBrad King2021-05-171-3/+1
| | | | | | | | Printing paths to CMake input files does not need to use the generator-wide relative path conversion rules because we are not actually generating a relative path for the build system that needs to be consistent with anything else. Instead, simply print a relative path if it does not need to start in `../`, and otherwise an absolute path.
* cmStateDirectory: Rename ConvertToRelPathIf{Not => }ContainedBrad King2021-05-121-1/+1
| | | | The "Not" in the method name is backward from its logic.
* clang-tidy: fix `readability-redundant-access-specifiers` warningsBen Boeckel2021-01-271-1/+0
|
* clang-tidy: fix `readability-qualified-auto` warningsBen Boeckel2021-01-271-3/+3
|
* Merge topic 'export-compile-commands-per-target'Brad King2021-01-071-0/+1
|\ | | | | | | | | | | | | a742b5d137 CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per target Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5651
| * CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per targetShannon Booth2021-01-051-0/+1
| | | | | | | | | | | | | | | | The new target property `EXPORT_COMPILE_COMMANDS` associated with the existing global variable can be used to optionally configure targets for their compile commands to be exported. Fixes: #19462
* | Code style: add missed explicit 'this->'Oleksandr Koval2021-01-051-338/+347
|/ | | | | CMake uses explicit 'this->' style. Using custom clang-tidy check we can detect and fix places where 'this->' was missed.
* Merge topic 'unity-anon-ns'Craig Scott2020-12-161-0/+1
|\ | | | | | | | | | | | | 0fe9c40494 Unity Build: Add option for generating per-file unique id Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4784
| * Unity Build: Add option for generating per-file unique idStephen Kelly2020-12-151-0/+1
| | | | | | | | Fixes: #21477
* | Merge topic 'ispc_control_header_suffixes'Brad King2020-12-151-0/+1
|\ \ | |/ |/| | | | | | | | | c9a50f3556 ISPC: Generated Headers suffix configurable with a better default Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5597
| * ISPC: Generated Headers suffix configurable with a better defaultRobert Maynard2020-12-141-0/+1
| | | | | | | | | | | | | | | | | | The target property `ISPC_HEADER_SUFFIX` and associated global variable now can control the suffix used when generating the C/C++ interoperability ISPC headers. In addition the default suffix is now "_ispc.h" which matches the common convention that the ISPC compiler team uses and recommends.
* | Merge topic 'policy-cmp0111-iface'Brad King2020-11-241-27/+29
|\ \ | |/ | | | | | | | | | | | | | | 54ef732b0c cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE library f06f4b517c cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries 43c95df8fb Tests: Match RunCMake.CMP0111 stderr more strictly Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5530
| * cmTarget: Do not enforce CMP0111 on imported INTERFACE librariesBrad King2020-11-231-27/+29
| | | | | | | | | | | | | | | | Fix logic added by commit 359c500a24 (cmTarget: Raise error if imported target location is not set, 2020-08-08, v3.19.0-rc1~273^2) to exclude INTERFACE libraries from the policy. They have no location. Fixes: #21470
* | clang-tidy: allow OBJC and OBJCXXAndrew Fuller2020-11-051-0/+2
| |
* | cmGeneratorTarget: Refactor custom command dependency evaluationBrad King2020-10-291-0/+5
| | | | | | | | | | | | Previously we only used cmCustomCommandGenerator to evaluate generator expressions for dependencies. Use it for command lines too. It also collects target references for us, with backtraces.
* | Constify some code as suggested by clang-tidyCengizhan Pasaoglu2020-10-191-4/+5
|/
* Merge topic 'pch-instantiate-templates'Brad King2020-09-101-0/+1
|\ | | | | | | | | | | | | | | | | | | 8c8f03422e PCH: Template instantiation support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Acked-by: Cristian Adam <cristian.adam@gmail.com> Tested-by: Raul Tambre <raul@tambre.ee> Merge-request: !5168
| * PCH: Template instantiation supportTobias Hieta2020-09-021-0/+1
| | | | | | | | | | | | | | | | Adds PCH_INSTANTIATE_TEMPLATES target property for enabling template instantiation in precompiled headers. Enabled by default. Currently only supported for Clang 11 and newer. Implements #21133.
* | Merge topic 'ispc_improvements'Brad King2020-09-081-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | a020787a9b ISPC: Support generation for multiple instruction sets 5a1750017e ISPC: Add compiler launcher support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5173
| * | ISPC: Support generation for multiple instruction setsRobert Maynard2020-09-041-0/+1
| | |
| * | ISPC: Add compiler launcher supportRobert Maynard2020-09-031-0/+1
| | |
* | | Refactor: Use cmToCStr()Vitaly Stakhovsky2020-09-031-1/+1
|/ /
* | Merge topic 'getdef'Brad King2020-09-031-8/+8
|\ \ | | | | | | | | | | | | | | | | | | 11425041f0 cmMakefile::GetDefinition: return cmProp Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5179
| * | cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-8/+8
| | |
* | | Fortran: Initialize Fortran_VISIBILITY_PRESET property from variableThomas G2020-09-021-0/+1
|/ / | | | | | | | | The `CMAKE_Fortran_VISIBILITY_PRESET` variable is documented to initialize the property. Fix it.
* | Merge topic 'xcode-link-phase-all'Craig Scott2020-09-011-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 525464ed2a Xcode: Use "Link Binary With Libraries" build phase in some cases dc0898205c Xcode: Add special case for file type extension map for .xcassets 7b3d8411a2 Xcode: Refactor build setting append code and attribute getter naming Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5036
| * | Xcode: Use "Link Binary With Libraries" build phase in some casesGusts Kaksis2020-08-311-0/+1
| |/ | | | | | | | | | | | | OBJECT and STATIC libraries (framework or non-framework) do not use this build phase. Not all items to be linked use this build phase either. Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* | Merge topic 'ispc_lang_support'Brad King2020-09-011-0/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 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
| * ISPC: Support ISPC header generation byproducts and parallel buildsRobert Maynard2020-08-281-0/+1
| |
* | cmTarget: Raise error if imported target location is not setRaul Tambre2020-08-211-0/+31
| | | | | | | | | | | | | | | | Previously we would synthesize <TARGET_NAME>-NOTFOUND as the location. This would then end up on the link line and cause build failures. Policy CMP0110 is added to control this behaviour. Fixes #19080, #19943.
* | Add option to optimize link dependencies for static librariesKyle Edwards2020-08-121-0/+1
| | | | | | | | | | | | | | | | | | Add an `OPTIMIZE_DEPENDENCIES` target property and supporting `CMAKE_OPTIMIZE_DEPENDENCIES` variable to optionally enable pruning and flattening of outgoing dependencies from static libraries. Since they do not actually link, they only depend on side effects of their dependencies. Therefore we can drop dependencies that contribute no side effects.
* | Add INTERFACE libraries to generated buildsystem if they have SOURCESBrad King2020-08-071-23/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Remove filtering of allowed INTERFACE library propertiesBrad King2020-08-031-10/+0
|/ | | | | | | | | | | Previously we disallowed use of arbitrary properties on INTERFACE libraries. The goal was to future-proof projects using them by not allowing properties to be set that may affect their future inclusion in the generated buildsystem. In order to prepare to actually include INTERFACE libraries in the generated buildsystem, drop the filter and allow arbitrary properties to be set. Issue: #19145
* cmTarget: Refactor init of common language propertiesRobert Maynard2020-07-281-25/+17
|
* Factor out generator checks for filtering on non-compiling targetsBrad King2020-07-231-7/+24
| | | | | Add a `cmGeneratorTarget::CanCompileSources` helper method to tell generators whether a target might compile anything.
* cmTarget: Skip output dir property init for CMake-provided targetsBrad King2020-07-231-1/+2
|
* cmTarget: De-duplicate conditions for property initializationBrad King2020-07-231-17/+9
|
* cmIsOn: add overload accepting const std::string*Vitaly Stakhovsky2020-07-141-2/+1
|
* fileapi: Support multiple backtraces for language standardJustin Goshi2020-07-061-5/+10
|
* cmMakefile: Refactor API to better handle empty config valuesRobert Maynard2020-07-031-2/+2
|
* Merge topic 'fileApiAddLanguageStandardBacktrace'Brad King2020-06-291-0/+69
|\ | | | | | | | | | | | | | | | | 7d6861f367 fileapi: Extend codemodel targets with language standard ba835874a4 Add backtrace support for language standard e43486a639 cmGeneratorTarget: Clarify name of language property lookup helper Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4798
| * Add backtrace support for language standardJustin Goshi2020-06-221-0/+69
| |