summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cmTarget: Lookup targets in LinkInterface and LinkImplementationBrad King2014-06-238-101/+123
| | | | | | | | | | | | | | | 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.
* cmExportFileGenerator: Make SetImportLinkProperty a templateBrad King2014-06-232-5/+7
| | | | | Allow the vector of property entries to have any element type that can convert to std::string.
* cmTarget: Add GetUtilityItems to get target ordering dependenciesBrad King2014-06-233-4/+25
| | | | | | | 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.
* cmTarget: Add cmLinkItem to refer to a target by name and pointerBrad King2014-06-231-0/+12
| | | | | | | | 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.
* Fix scope of transitive target name lookupsBrad King2014-06-237-18/+36
| | | | | | | | | | | 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.
* cmTarget: Add method to lookup other targets in a target's scopeBrad King2014-06-233-28/+36
| | | | | Move the main implementation of cmComputeLinkDepends::FindTargetToLink into cmTarget.
* cmTarget: Constify GetLinkImplementationClosure resultsBrad King2014-06-232-11/+11
| | | | Populate a vector of "cmTarget const*" instead of "cmTarget*".
* cmTarget: Constify GetTransitivePropertyTargets resultsBrad King2014-06-234-14/+15
| | | | Populate a vector of "cmTarget const*" instead of "cmTarget*".
* cmTarget: Drop 'head' target from GetImportInfoBrad King2014-06-232-40/+69
| | | | | | | 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.
* cmTarget: Remove 'head' argument from GetLinkImplementationBrad King2014-06-237-33/+49
| | | | | | | | | | | | | 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.
* cmTarget: Drop 'head' argument from GetLinkClosureBrad King2014-06-233-19/+14
| | | | It is only ever passed the 'this' target itself.
* cmTarget: Remove 'head' argument from GetLinkerLanguageBrad King2014-06-232-11/+7
| | | | | | It is only ever called with the 'this' target as the head. Co-Author: Stephen Kelly <steveire@gmail.com>
* cmComputeLinkInformation: Remove 'head' argumentBrad King2014-06-235-22/+13
| | | | | | It is only ever constructed with the current target as its own 'head'. Co-Author: Stephen Kelly <steveire@gmail.com>
* cmTarget: Remove 'head' argument from GetLinkInformationBrad King2014-06-232-11/+7
| | | | | | No call sites use it anyway. Co-Author: Stephen Kelly <steveire@gmail.com>
* cmTarget: Cache GetLinkImplementationClosure resultsBrad King2014-06-232-14/+24
| | | | | Store them internally and return by reference to avoid duplicate computation.
* cmTarget: Rename Get{TransitiveTarget => LinkImplementation}ClosureBrad King2014-06-232-5/+5
| | | | | The method computes the transitive closure of targets starting with the current target link implementation libraries. Clarify the name.
* cmTarget: Remove 'head' argument from GetTransitiveTargetClosureBrad King2014-06-232-6/+4
| | | | The method is never called with any headTarget besides "this".
* cmComputeLinkDepends: Simplify CheckWrongConfigItem implementationBrad King2014-06-231-6/+3
| | | | Combine the outer two if() conditions into a single one with &&.
* cmTarget: Simplify processILibs implementationBrad King2014-06-231-13/+10
| | | | | Combine the outer two if() conditions into a single one with &&. Scope inner lookup result inside its condition.
* cmComputeTargetDepends: Remove unused 'linking' argumentBrad King2014-06-232-7/+4
| | | | | The AddInterfaceDepends method is never called with a non-true value for its 'linking' argument. Drop it.
* cmTarget: De-duplicate library list expansionBrad King2014-06-232-34/+31
| | | | | | | 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.
* cmTarget: Remove unused GetInterfaceLinkLibraries methodBrad King2014-06-232-26/+0
|
* Merge branch 'release'Brad King2014-06-100-0/+0
|\
| * CMake 3.0.0v3.0.0Brad King2014-06-091-1/+1
| |
* | Merge topic 'WriteCompilerDetectionHeader-compiler-versions'Brad King2014-06-1030-94/+184
|\ \ | | | | | | | | | | | | | | | | | | | | | 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.
| * | Features: Add compiler version support to WriteCompilerDetectionHeader.Stephen Kelly2014-06-093-1/+69
| | |
| * | Project: Add configurable name for version computation macros.Stephen Kelly2014-06-0526-87/+89
| | |
| * | Project: Separate simulated compiler id from version detection.Stephen Kelly2014-06-053-3/+14
| | |
| * | WCDH: Issue a better message for version compatibility.Stephen Kelly2014-06-052-3/+12
| | |
* | | Merge topic 'no-parse-directory'Brad King2014-06-104-1/+6
|\ \ \ | | | | | | | | | | | | | | | | b1c113d9 cmake: Do not open directories as scripts (#14966)
| * | | cmake: Do not open directories as scripts (#14966)Brad King2014-06-094-1/+6
| | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge topic 'android-platform'Brad King2014-06-102-0/+10
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 42f74df6 Add basic Android platform module
| * | | | Add basic Android platform moduleBrad King2014-06-062-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge topic 'vs10-refactor'Brad King2014-06-105-153/+176
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | VS: Factor MS-tool-specific vcxproj settings into helperBrad King2014-06-092-45/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Factor a WriteMSToolConfigurationValues helper method out of the cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues method to isolate the configuration settings specific to MS tools.
| * | | | | VS: Re-order logic to group MS-tool-specific options togetherBrad King2014-06-091-27/+29
| | | | | |
| * | | | | VS: Set some options directly instead of using flag mapBrad King2014-06-091-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of passing /TC, /TP, and /STACK: as strings to be parsed through the flag map, directly set the results in the options map.
| * | | | | VS: Remove always-true condition on compile options blockBrad King2014-06-091-36/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cmVisualStudio10TargetGenerator::ComputeClOptions method is only called when the target type compiles, so do not duplicate that check in the implementation.
| * | | | | VS: Refactor internal generator factory logicBrad King2014-06-093-14/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consume the space before the platform name as soon as possible instead of including it in the comparison.
| * | | | | VS: Fix vcxproj specification of empty output file extensionBrad King2014-06-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | VS: Fix vcxproj elements specifying binary output locationsBrad King2014-06-091-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix generation of OutDir, IntDir, TargetName, and TargetExt element values to encode the values for XML.
| * | | | | VS: Refactor flag table lookupBrad King2014-06-092-16/+24
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge topic 'dev/static-regex'Brad King2014-06-106-25/+19
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1b003c1f cmTarget: Remove an unused variable 7492a7b8 regex: Search on strings where possible 3e7194a2 regex: Use static regexs where possible
| * | | | | cmTarget: Remove an unused variableBen Boeckel2014-06-091-1/+0
| | | | | |
| * | | | | regex: Search on strings where possibleBen Boeckel2014-06-092-5/+5
| | | | | |
| * | | | | regex: Use static regexs where possibleBen Boeckel2014-06-095-19/+14
| |/ / / / | | | | | | | | | | | | | | | | | | | | Rather than declaring and compiling a constant regex every time a chunk of code is executed, build the regex once.
* | | | | CMake Nightly Date StampKitware Robot2014-06-101-1/+1
| | | | |
* | | | | Merge topic 'FindOpenGL-target'Brad King2014-06-091-0/+5
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | 4883813f Help: Add notes for topic 'FindOpenGL-target'
| * | | | Help: Add notes for topic 'FindOpenGL-target'Brad King2014-06-091-0/+5
| | | | |
* | | | | Merge branch 'release'Brad King2014-06-090-0/+0
|\ \ \ \ \ | | |_|_|/ | |/| | |