| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an `IMPORTED_LIBNAME[_<CONFIG>]` target property to specify a library
name to be placed on the link line in place of an interface library
since it has no library file of its own. Restrict use of the property
to imported `INTERFACE` libraries.
This will be particularly useful for find modules that need to provide
imported libraries from system SDKs where the full path to the library
file is not known. Now such find modules will be able to provide an
imported interface library and set `IMPORTED_LIBNAME` to refer to the
SDK library by name.
Issue: #15267
|
|
|
|
|
| |
Store the `IMPORTED_LOCATION` property name in a variable up front
to avoid duplicating the string literal.
|
| |
|
|
|
|
|
| |
Clarify comments explaining the availability of a target location
(file on disk) to distinguish this from the existence of the target.
|
|
|
|
|
| |
Avoid duplicating switch among std::unordered_set, cmsys::hash_set, and
std::set.
|
|\
| |
| |
| |
| |
| |
| | |
587ab322 Tests: Add test for MAP_IMPORTED_CONFIG_<CONFIG> empty fallback
149d49ea Teach MAP_IMPORTED_CONFIG_<CONFIG> to support configuration-less import
60d73393 Help: Format MAP_IMPORTED_CONFIG_<CONFIG> documentation
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If this property has an empty list entry, check for `IMPORTED_LOCATION`
instead of `IMPORTED_LOCATION_<CONFIG>`. This allows custom imported
targets to have some configurations mapped and others fall back to a
default location.
Closes: #16280
|
|\ \
| | |
| | |
| | |
| | |
| | | |
effa6c83 fix more issues reported by clang-tidy
fb461cac silence selected clang-tidy violations
|
| |/ |
|
| |
| |
| |
| |
| | |
Include it in dependents which have previously relied on it
transitively.
|
| |
| |
| |
| | |
Port dependent code to the change.
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GetProperty method is now just accessing contained data, meaning it
can be implemented in cmState.
Remove the cmMakefile context from the signature as a result and remove
the overload with the same signature.
Add a GetComputedProperty to cmTarget so that templates can be properly
instantiated. Otherwise the Commands would need to be able to reach the
specializations which are currently in cmTarget.cxx.
As a side-effect, the CMP0026 warning now gives a backtrace to the
target when issued from a generator expression.
|
|
|
|
| |
Implement the methods for cmTarget in the cmTarget source.
|
|
|
|
|
| |
Provide 'static polymorphism' between the types in this aspect so that
they can be used indiscriminately in a C++ template.
|
| |
|
| |
|
| |
|
|
|
|
| |
Only a cmMessenger and a backtrace are needed.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Everything related to property computation will be moved here and
eventually shared with cmGeneratorTarget.
|
|
|
|
| |
This way the policy can be checked without depending on cmTarget.
|
|
|
|
| |
The SOURCES have to be computed.
|
|
|
|
| |
Avoid having to populate a mutable container to return a value.
|
|
|
|
| |
Use the member state instead.
|
| |
|
| |
|
|
|
|
| |
The size is always zero when this is called.
|
|
|
|
|
|
|
|
| |
MergeLinkLibraries is called only from
cmMakefile::AddGlobalLinkInformation
which is only called immediately after creating a target.
|
|
|
|
|
|
| |
Users may need to add custom `RPATH` entries to be able to run binaries
from their build tree without setting `LD_LIBRARY_PATH`. Provide a way
to do this that does not affect the install-tree `RPATH`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactoring in commit v3.5.0-rc1~272^2~16 (cmGeneratorTarget: Add API for
property keys, 2015-10-25) changed the Xcode generator implementation of
`XCODE_ATTRIBUTE_...` properties to use the target `GetProperty` method on each
`XCODE_ATTRIBUTE_...` property listed by `GetPropertyKeys` instead of looping
over the property entries directly. This made the lookup of property names of
the form `XCODE_ATTRIBUTE_..._LOCATION` accidentally trigger the computed
property logic for the undocumented/legacy `<CONFIG>_LOCATION` property. Of
course the computed property value is not the same as the value stored in the
`XCODE_ATTRIBUTE_..._LOCATION` property. Fix the computed property logic to
avoid triggering on `XCODE_ATTRIBUTE_...` attributes.
Closes: #16319
|
| |
|
|
|
|
|
| |
We no longer need to support partial construction for cmTarget instances
of type GLOBAL_TARGET. Require all constructor arguments up front.
|
| |
|
|
|
|
|
| |
Avoid having partially constructed cmTarget instances around,
except for the special case of GLOBAL_TARGET construction.
|
|
|
|
|
| |
The "global" targets are built once for the top directory and then
copied into all directories. Add a helper method to make the copy.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
For executables with ENABLE_EXPORTS set, export all symbols when
instructed to do so by WINDOWS_EXPORT_ALL_SYMBOLS.
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
a0902efa Help: Add notes for topic 'link_what_you_use'
96242f80 Add options to run `ldd -u -r` as a "link-what-you-use" tool
|
| |
| |
| |
| |
| |
| |
| | |
Create a LINK_WHAT_YOU_USE target property and corresponding
CMAKE_LINK_WHAT_YOU_USE variable to enable this behavior.
Extend link commands by running `ldd -u -r` to detect shared
libraries that are linked but not needed.
|
| |
| |
| |
| |
| | |
Apply fixits of clang-tidy's readability-braces-around-statements
checker.
|