summaryrefslogtreecommitdiff
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake Nightly Date StampKitware Robot2014-07-211-1/+1
|
* CMake Nightly Date StampKitware Robot2014-07-201-1/+1
|
* CMake Nightly Date StampKitware Robot2014-07-191-1/+1
|
* Merge topic 'dev/target-fastpaths'Brad King2014-07-182-330/+344
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | a9c9b66c cmTarget: use a hash_map for cmTargets typedef bcb6dbc1 cmTarget: help the optimizer a bit 679f3dee cmTarget: use hash_set for sets of strings 23d6520d cmTarget: Allow caching of empty genex expansions cd54f1db cmTarget: Only copy GenEx expansions when necessary b75fc0e1 cmTarget: Don't set properties on custom targets 66076915 cmTarget: Use static strings for special property names cebefa71 cmTarget: Sort special property checks 97ce676e cmTarget: Fast path for regular properties 4cfa918a cmTarget: Factor out common code 85242b7d cmTarget: Use else/if trees rather than an if tree
| * cmTarget: use a hash_map for cmTargets typedefBen Boeckel2014-07-171-0/+7
| |
| * cmTarget: help the optimizer a bitBen Boeckel2014-07-171-3/+3
| |
| * cmTarget: use hash_set for sets of stringsBen Boeckel2014-07-171-37/+42
| |
| * cmTarget: Allow caching of empty genex expansionsBen Boeckel2014-07-171-2/+4
| |
| * cmTarget: Only copy GenEx expansions when necessaryBen Boeckel2014-07-171-10/+13
| |
| * cmTarget: Don't set properties on custom targetsBen Boeckel2014-07-171-37/+43
| | | | | | | | Properties are not required on custom targets.
| * cmTarget: Use static strings for special property namesBen Boeckel2014-07-171-36/+55
| | | | | | | | | | The function is called enough that the std::string/cstr comparisons are expensive from the strlen. Cache the strings for faster comparisons.
| * cmTarget: Sort special property checksBen Boeckel2014-07-171-27/+27
| | | | | | | | | | | | The LINK_LIBRARIES property is by *far* the most popular. Move it to the top. TYPE is second, but with more generator expression usage, that may change in the future.
| * cmTarget: Fast path for regular propertiesBen Boeckel2014-07-171-141/+157
| |
| * cmTarget: Factor out common codeBen Boeckel2014-07-161-52/+20
| |
| * cmTarget: Use else/if trees rather than an if treeBen Boeckel2014-07-161-50/+38
| | | | | | | | Skips lots of unnecessary string comparisons.
* | Merge topic 'delay-generator-platform'Brad King2014-07-1821-118/+99
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7a526c35 VS: Delay getting platform name in local generator e7fdb44b VS: Delay detection of VS 10 Express 64-bit tools 6e176e6d VS: Delay platform definitions until system name is known d3d9218a VS: Remove unused method from VS 9 generator eeb60102 VS: Refactor CMAKE_FORCE_*64 platform definitions ecb34faa Tell generators about CMAKE_SYSTEM_NAME as soon as it is known
| * | VS: Delay getting platform name in local generatorBrad King2014-07-178-17/+16
| | | | | | | | | | | | | | | | | | Ask the global generator during generation instead of trying to store it up front. Later the global generator may not know the platform name when it is creating the local generator.
| * | VS: Delay detection of VS 10 Express 64-bit toolsBrad King2014-07-171-8/+7
| | | | | | | | | | | | | | | Wait until SetSystemName when the CMAKE_SYSTEM_NAME is known. Later the decision to use 64-bit tools may depend on it.
| * | VS: Delay platform definitions until system name is knownBrad King2014-07-176-9/+19
| | | | | | | | | | | | | | | | | | | | | Move the definition of CMAKE_VS_PLATFORM_NAME and other variables that are not needed by CMakeDetermineSystem out of the AddPlatformDefinitions method and into a SetSystemName method. The latter may later use CMAKE_SYSTEM_NAME to decide what platform-specific definitions to add.
| * | VS: Remove unused method from VS 9 generatorBrad King2014-07-172-10/+0
| | |
| * | VS: Refactor CMAKE_FORCE_*64 platform definitionsBrad King2014-07-1716-74/+45
| | | | | | | | | | | | | | | | | | | | | Remove the general infrastructure for these additional platform definitions and hard-code the only two special cases that used it. They are only for historical reasons so no new such cases should be added.
| * | Tell generators about CMAKE_SYSTEM_NAME as soon as it is knownBrad King2014-07-172-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a cmGlobalGenerator::SetSystemName virtual method. Call it from cmGlobalGenerator::EnableLanguage as soon as CMAKE_SYSTEM_NAME is known. This will give generators a chance to adapt themselves to the target system. Pass the cmMakefile instance to the method so that the generator can update it accordingly. Return early from EnableLanguage if SetSystemName returns false.
* | | Merge topic 'vs-MSTool-condition'Brad King2014-07-182-95/+142
|\ \ \ | | | | | | | | | | | | | | | | 7a9909db VS: Make MS-tool-specific options conditional
| * | | VS: Make MS-tool-specific options conditionalBrad King2014-07-172-95/+142
| |/ / | | | | | | | | | | | | | | | Make blocks adding MS-tool-specific options conditional on a new "MSTools" boolean member of cmVisualStudio10TargetGenerator. Hard-code the member to true for now to preserve existing behavior.
* | | Merge topic 'encoding-ctest-fixes'Brad King2014-07-181-7/+8
|\ \ \ | | | | | | | | | | | | | | | | 09b2ac38 Encoding: Fix a few encoding problems with ctest.
| * | | Encoding: Fix a few encoding problems with ctest.Clinton Stimpson2014-07-181-7/+8
| | | | | | | | | | | | | | | | | | | | This also fixes some test failures on Windows when the name of the build directory contains non-ascii characters.
* | | | CMake Nightly Date StampKitware Robot2014-07-181-1/+1
| |/ / |/| |
* | | Merge topic 'refactor-link-internals'Brad King2014-07-174-229/+165
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c45dd669 cmTarget: Cache compatible interface property sets 89095514 cmTarget: Refactor GetLinkImplementationClosure internals 9d72df45 Genex: Adjust code layout slightly d5f0743d Genex: Refactor empty element strip 60bafeb6 Genex: Avoid repeated search of transitive property whitelist 8cb91054 Genex: Simplify TARGET_PROPERTY transitive lookup 0a8fbac1 cmTarget: Drop GetTransitivePropertyTargets method fb3518dc Refactor system include annotation propagation 535fd6ce cmTarget: Make GetLink*Libraries methods safer to use
| * | | cmTarget: Cache compatible interface property setsBrad King2014-07-162-48/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace isLinkDependentProperty with a CompatibleInterfaces structure that records all the compatible interface properties in a set for each type. This avoids repeatedly traversing the link implementation closure and asking every target for its compatible interface properties.
| * | | cmTarget: Refactor GetLinkImplementationClosure internalsBrad King2014-07-161-7/+11
| | | | | | | | | | | | | | | | | | | | Store the 'Done' flag directly in each map entry instead of using a separate map.
| * | | Genex: Adjust code layout slightlyBrad King2014-07-161-4/+3
| | | |
| * | | Genex: Refactor empty element stripBrad King2014-07-161-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | In cmGeneratorExpressionEvaluator, teach getLinkedTargetsContent to call cmGeneratorExpression::StripEmptyListElements to transform its return value so that callers do not have to do so.
| * | | Genex: Avoid repeated search of transitive property whitelistBrad King2014-07-161-33/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In cmGeneratorExpressionEvaluator, avoid searching through the list of transitive interface property names repeatedly during evaluation of TargetPropertyNode. Simply record the results of the first search for later re-use.
| * | | Genex: Simplify TARGET_PROPERTY transitive lookupBrad King2014-07-161-65/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In cmGeneratorExpressionEvaluator, make getLinkedTargetsContent a template so it can traverse over either the Libraries in a cmTarget LinkImplementationLibraries or a cmTarget LinkInterfaceLibraries. This also avoids creating a separate vector<cmTarget*>.
| * | | cmTarget: Drop GetTransitivePropertyTargets methodBrad King2014-07-163-25/+13
| | | | | | | | | | | | | | | | Inline the implementation at the only remaining call site.
| * | | Refactor system include annotation propagationBrad King2014-07-161-34/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.0.0-rc1~174^2~1 (cmTarget: Fix system include annotation propagation, 2014-01-01) the cmGeneratorTarget::IsSystemIncludeDirectory method needs to collect all targets that might provide INTERFACE_(|SYSTEM)_INCLUDE_DIRECTORIES for the current target. We now have cmTarget::GetLinkImplementationClosure to provide this, so use it.
| * | | cmTarget: Make GetLink*Libraries methods safer to useBrad King2014-07-163-32/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split the library lists out of LinkImplementation and LinkInterface into LinkImplementationLibraries and LinkInterfaceLibraries parent classes, respectively. Return these from GetLinkImplementationLibraries and GetLinkInterfaceLibraries, respectively, so that callers cannot access parts of the structures that have not been populated.
* | | | Merge topic 'generalize-LINK_ONLY'Brad King2014-07-171-12/+4
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | 10c5c82c Help: Add notes for topic 'generalize-LINK_ONLY' 6e7e881c Honor $<LINK_ONLY> when checking interface properties 0400cd5d Make $<LINK_ONLY> available to projects (#14751)
| * | | Honor $<LINK_ONLY> when checking interface propertiesBrad King2014-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Callers of cmTarget::GetLinkImplementationClosure are interested in the set of targets whose interface properties propagate to the current target. This excludes targets guarded by $<LINK_ONLY>. Teach the CompatibleInterface test to cover suppression of interface compatibility tests with $<LINK_ONLY>. Although this is not recommended in practice, it is a way of covering the above behavior.
| * | | Make $<LINK_ONLY> available to projects (#14751)Brad King2014-07-161-11/+3
| | |/ | |/| | | | | | | | | | | | | | | | | | | Previously this generator expression was used internally by the target_link_libraries command to honor private linking requirements of static libraries in their INTERFACE_LINK_LIBRARIES. Remove the check that limits $<LINK_ONLY> to this use case to make it available for project code to use too.
* | | CMake Nightly Date StampKitware Robot2014-07-171-1/+1
|/ /
* | Merge topic 'refactor-link-internals'Brad King2014-07-162-128/+97
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1ca0c0e9 cmTarget: Refactor internal imported LinkInterface map 102eea60 cmTarget: Simplify internal ComputeLinkInterfaceLibraries method b0f57408 cmTarget: Move ComputeLinkInterfaceLibraries to internals c69e8a55 cmTarget: Refactor internal LinkInterface map 4db3990e cmTarget: Drop 'head' argument from processSources 4b8130b8 cmTarget: Drop 'head' argument from GetSourceFiles 4c763dd1 cmTarget: Drop 'head' argument from GetLanguages 190cabe7 cmTarget: Drop 'head' argument from ComputeLinkImplementationLanguages
| * | cmTarget: Refactor internal imported LinkInterface mapBrad King2014-07-141-10/+5
| | | | | | | | | | | | | | | | | | Create the map entry up front and store in it a boolean value indicating whether the LinkInterface structure has been populated. This approach leads to shorter code that is easier to follow too.
| * | cmTarget: Simplify internal ComputeLinkInterfaceLibraries methodBrad King2014-07-141-26/+18
| | | | | | | | | | | | | | | Now that the method can see the full OptionalLinkInterface structure, store information there instead of passing it through arguments.
| * | cmTarget: Move ComputeLinkInterfaceLibraries to internalsBrad King2014-07-142-49/+52
| | | | | | | | | | | | | | | There are no external callers, and this will allow the method to see the full OptionalLinkInterface internal structure.
| * | cmTarget: Refactor internal LinkInterface mapBrad King2014-07-141-28/+18
| | | | | | | | | | | | | | | | | | Create the map entry up front and store in it boolean values indicating which pieces of the LinkInterface structure have been populated. This approach leads to shorter code that is easier to follow too.
| * | cmTarget: Drop 'head' argument from processSourcesBrad King2014-07-141-4/+1
| | | | | | | | | | | | No call sites need it to be anything but 'this'.
| * | cmTarget: Drop 'head' argument from GetSourceFilesBrad King2014-07-142-15/+11
| | | | | | | | | | | | No call sites need it to be anything but 'this'.
| * | cmTarget: Drop 'head' argument from GetLanguagesBrad King2014-07-142-7/+5
| | | | | | | | | | | | No call sites need it to be anything but 'this'.
| * | cmTarget: Drop 'head' argument from ComputeLinkImplementationLanguagesBrad King2014-07-142-6/+4
| | | | | | | | | | | | No call sites need it to be anything but 'this'.