| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of storing just the string names in these structures, lookup any
target associated with each item and store its cmTarget pointer. Use
the cmLinkItem class to hold the name and pointer together. Update
client sites to use the pre-stored lookup result instead of looking up
the target name again.
Create a cmTarget::LookupLinkItems helper method to handle the lookup.
Since lookups are now moving from cmComputeLinkDepends::AddLinkEntries
to cmTarget::LookupLinkItems, move use of CheckCMP0004 to the latter.
This drops use of CheckCMP0004 from entries added for _LIB_DEPENDS
variables by cmComputeLinkDepends::AddVarLinkEntries, but I do not
think that use was intentional originally anyway.
|
|
|
|
|
| |
Allow the vector of property entries to have any element type
that can convert to std::string.
|
|
|
|
|
|
|
| |
Add a method like GetUtilities but that provides the target names
already looked up and resolved to cmTarget pointers internally. Update
call site in cmComputeTargetDepends::AddTargetDepend to use the
already-found target instead of looking it up again.
|
|
|
|
|
|
|
|
| |
Many items named in target_link_libraries calls are targets, but not
all. Create a cmLinkItem type that acts like std::string so it can name
an item but also has a pointer to a cmTarget that is the result of
looking up the item name in the referencing target's scope. This will
be useful to avoid duplicate lookup operations later.
|
|
|
|
|
|
|
|
|
|
|
| |
In cmTarget, cmGeneratorTarget, and cmGeneratorExpressionEvaluator, fix
target name lookups to occur in the cmMakefile context of the target
that referenced the name, not the current 'head' target. The context
matters for imported targets because they are directory-scoped instead
of globally unique. We already do this in cmComputeLinkDepends and
cmComputeTargetDepends.
Extend the InterfaceLibrary test with an example covering this behavior.
|
|
|
|
|
| |
Move the main implementation of cmComputeLinkDepends::FindTargetToLink
into cmTarget.
|
|
|
|
| |
Populate a vector of "cmTarget const*" instead of "cmTarget*".
|
|
|
|
| |
Populate a vector of "cmTarget const*" instead of "cmTarget*".
|
|
|
|
|
|
|
| |
Move generator expression evaluation for imported library lists out of
GetImportInfo and into a new GetImportLinkInterface helper. This avoids
duplicating the computation and storage of all imported target info just
because some of it is parameterized on the 'head' target.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many of the 'head' arguments added by commit v2.8.11~289^2~1 (Make
linking APIs aware of 'head' target, 2013-01-04) turned out not to be
needed. The "link implementation" of a target never needs to be
computed with anything but itself as the 'head' target (except for
CMP0022 OLD behavior because then it is the link interface).
Remove the unused 'head' target paths. Add "internal" versions of
cmTarget::GetDirectLinkLibraries and GetLinkImplementationLibraries
to support the CMP0022 OLD behavior without otherwise exposing the
'head' target option of these methods.
|
|
|
|
| |
It is only ever passed the 'this' target itself.
|
|
|
|
|
|
| |
It is only ever called with the 'this' target as the head.
Co-Author: Stephen Kelly <steveire@gmail.com>
|
|
|
|
|
|
| |
It is only ever constructed with the current target as its own 'head'.
Co-Author: Stephen Kelly <steveire@gmail.com>
|
|
|
|
|
|
| |
No call sites use it anyway.
Co-Author: Stephen Kelly <steveire@gmail.com>
|
|
|
|
|
| |
Store them internally and return by reference to avoid duplicate
computation.
|
|
|
|
|
| |
The method computes the transitive closure of targets starting with
the current target link implementation libraries. Clarify the name.
|
|
|
|
| |
The method is never called with any headTarget besides "this".
|
|
|
|
| |
Combine the outer two if() conditions into a single one with &&.
|
|
|
|
|
| |
Combine the outer two if() conditions into a single one with &&.
Scope inner lookup result inside its condition.
|
|
|
|
|
| |
The AddInterfaceDepends method is never called with a non-true value for
its 'linking' argument. Drop it.
|
|
|
|
|
|
|
| |
Create an ExpandLinkItems method to handle evaluation of generator
expressions in a library list and expansion of the ;-list into a vector.
Replace some duplicate copies of the implementation with calls to the
new helper.
|
| |
|
|\ |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
ddec418a Features: Add compiler version support to WriteCompilerDetectionHeader.
b7029576 Project: Add configurable name for version computation macros.
78acaafe Project: Separate simulated compiler id from version detection.
567af1a5 WCDH: Issue a better message for version compatibility.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
b1c113d9 cmake: Do not open directories as scripts (#14966)
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Check if a file path is a directory before opening it. Extend the
RunCMake.CommandLine test with a case running "cmake -P" on a directory.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
42f74df6 Add basic Android platform module
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Create a Platform/Android module that includes Platform/Linux since
Android is based on Linux. Provide only the minimal settings needed to
get builds with Android NDK toolchains to work.
Disable use of RPATH since the Android loader ignores it and we cannot
predict the install destination anyway.
Android supports soname but shared library names must end in ".so" and
we cannot represent the versioned names with associated symlinks on all
host operating systems anyway. However, we do want the SONAME of
library files to be set so that linking to them by path to the library
file produces NEEDED entries with the soname and not the path. Add a
new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the
cmTarget::GetLibraryNames method that not to use the VERSION or
SOVERSION target properties in the soname.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
1edaef39 VS: Factor MS-tool-specific vcxproj settings into helper
808f4b1f VS: Re-order logic to group MS-tool-specific options together
13e6d559 VS: Set some options directly instead of using flag map
8f4bdcc6 VS: Remove always-true condition on compile options block
eaa9f2f8 VS: Refactor internal generator factory logic
2b3e7b6f VS: Fix vcxproj specification of empty output file extension
39af06e7 VS: Fix vcxproj elements specifying binary output locations
ee329d54 VS: Refactor flag table lookup
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Factor a WriteMSToolConfigurationValues helper method out of the
cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues method
to isolate the configuration settings specific to MS tools.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Instead of passing /TC, /TP, and /STACK: as strings to be parsed through
the flag map, directly set the results in the options map.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The cmVisualStudio10TargetGenerator::ComputeClOptions method is
only called when the target type compiles, so do not duplicate
that check in the implementation.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Consume the space before the platform name as soon as possible
instead of including it in the comparison.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When a binary output file is to have no extension, the TargetExt
element in the vcxproj cannot be left empty because VS will choose
a default extension. Instead use "." because the Windows filesystem
will treat that as an empty extension.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fix generation of OutDir, IntDir, TargetName, and TargetExt element
values to encode the values for XML.
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In cmVisualStudio10TargetGenerator, convert the static functions
currently used to lookup the flag table for each tool into class
methods. This avoids passing the this->LocalGenerator member and
gives the methods access to other information that may be useful
in the future.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
1b003c1f cmTarget: Remove an unused variable
7492a7b8 regex: Search on strings where possible
3e7194a2 regex: Use static regexs where possible
|
| | | | | | |
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Rather than declaring and compiling a constant regex every time a chunk
of code is executed, build the regex once.
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
4883813f Help: Add notes for topic 'FindOpenGL-target'
|
| | | | | |
|
|\ \ \ \ \
| | |_|_|/
| |/| | | |
|