summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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 '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-1715-16/+80
|\ \ | | | | | | | | | | | | | | | | | | 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)
| * | Help: Add notes for topic 'generalize-LINK_ONLY'Brad King2014-07-161-0/+6
| |/
| * Honor $<LINK_ONLY> when checking interface propertiesBrad King2014-07-165-3/+29
| | | | | | | | | | | | | | | | | | | | 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-1610-13/+45
| | | | | | | | | | | | | | | | 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.
* | Merge topic 'compile-with-cray'Brad King2014-07-171-1/+1
|\ \ | | | | | | | | | | | | fd63722d cmcurl: Fix a build failure with the Cray compiler on Linux (#15026)
| * | cmcurl: Fix a build failure with the Cray compiler on Linux (#15026)Chuck Atkins2014-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error is caused by a workaround for UNICOS. The workaround incorrectly uses the _CRAYC macro to determine if building for UNICOS. This macro will always be defined for the Cray C and C++ compiler regardless of the target platform, even when building for Linux. The correct macro should be _CRAY, which as per Cray documentation is only defined for UNICOS targeted builds.
* | | 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'.
* | | Merge topic 'thread-sanitizer'Brad King2014-07-168-24/+216
|\ \ \ | | | | | | | | | | | | | | | | | | | | 1e005ead CTest: Fix MemoryCheckType from 'ctest -T MemCheck' 44726714 ctest_memcheck: Add support for memory and leak sanitizer.
| * | | CTest: Fix MemoryCheckType from 'ctest -T MemCheck'Bill Hoffman2014-07-162-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Before this commit, you would have to run ctest -S mode to get MemoryCheckType to work. This is because CMAKE_COMMAND was not set. The fix is to use cmSystemTools::GetCMakeCommand instead.
| * | | ctest_memcheck: Add support for memory and leak sanitizer.Bill Hoffman2014-07-167-22/+213
| | | | | | | | | | | | | | | | | | | | | | | | This adds support for memory and leak sanitizers. This is built into clang and gcc 4.8 and new compilers. It is activated with a -f switch during compile.
* | | | CMake Nightly Date StampKitware Robot2014-07-161-1/+1
|/ / /
* | | Merge topic 'target-legacy-depends-only-for-vs6'Brad King2014-07-156-66/+90
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8a205b98 cmTarget: Compile old-style link dependencies only for VS 6 d57be904 cmTarget: Run old-style link dependencies only for VS 6 b3b44d13 cmTarget: Rename old-style link dependencies code as "ForVS6" 80cb12bb export_library_dependencies: Use original link libraries internally
| * | | cmTarget: Compile old-style link dependencies only for VS 6Brad King2014-07-143-3/+20
| | | | | | | | | | | | | | | | | | | | Compile all the "ForVS6" cmTarget members only on Windows. No other platforms support the VS 6 generator.
| * | | cmTarget: Run old-style link dependencies only for VS 6Brad King2014-07-143-2/+10
| | | | | | | | | | | | | | | | | | | | Invoke it at runtime only with the VS 6 generator. No other generators need it.
| * | | cmTarget: Rename old-style link dependencies code as "ForVS6"Brad King2014-07-143-59/+60
| | | | | | | | | | | | | | | | | | | | | | | | The old link dependency analysis is now needed only for the VS 6 generator code delimited by CM_USE_OLD_VS6 to support project-provided project templates. Rename the related cmTarget members to be "ForVS6".
| * | | export_library_dependencies: Use original link libraries internallyBrad King2014-07-141-6/+4
| |/ / | | | | | | | | | | | | | | | This command was using the cmTarget::GetLinkLibraries method with a comment explaining how execution order gives it the dependencies before analysis. Just use cmTarget::GetOriginalLinkLibraries instead.
* | | Merge topic 'FindCurses-overhaul'Brad King2014-07-151-79/+98
|\ \ \ | | | | | | | | | | | | | | | | 6c8364e6 FindCurses: Overhaul Curses and NCurses search logic (#15011)
| * | | FindCurses: Overhaul Curses and NCurses search logic (#15011)Brad King2014-07-141-79/+98
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Produce a more consistent result by finding only a single include directory and reporting which headers may be included from it. The previous search for each header separately might find pieces from separate and incompatible packages. While at it, provide the CURSES_INCLUDE_DIRS result variable to be consistent with other modules.
* | | Merge topic 'dev/ison-isoff-performance'Brad King2014-07-151-6/+36
|\ \ \ | | | | | | | | | | | | | | | | | | | | 43a8c552 SystemTools: Use a set in Is{On,Off} 9270aa9a IsOff: Use the length for the string construction
| * | | SystemTools: Use a set in Is{On,Off}Ben Boeckel2014-07-081-6/+35
| | | | | | | | | | | | | | | | Also check before calling toupper() umpteen million times.
| * | | IsOff: Use the length for the string constructionBen Boeckel2014-07-081-2/+3
| | | | | | | | | | | | | | | | | | | | No need to waste the calculation and force the string to call strlen again.
* | | | Merge topic 'dev/fix-cmake-rule-property'Brad King2014-07-151-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 4b139169 cmMakefile: fix __CMAKE_RULE property setting
| * | | | cmMakefile: fix __CMAKE_RULE property settingBen Boeckel2014-07-141-1/+1
| | |/ / | |/| | | | | | | | | | It got put into the condition by mistake.
* | | | Merge topic 'FindImageMagick-pkgconfig'Brad King2014-07-151-0/+10
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 90245fe8 FindImageMagick: Use pkgconfig hints if available (#14012)
| * | | | FindImageMagick: Use pkgconfig hints if available (#14012)Rex Dieter2014-07-141-0/+10
| |/ / / | | | | | | | | | | | | Tested-by: bastien ROUCARIES <roucaries.bastien@gmail.com>
* | | | Merge topic 'doc-package-target-import-once'Brad King2014-07-151-11/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 0fee3f47 Revert "Help: Update cmake-packages.7 examples to import targets only once"
| * | | | Revert "Help: Update cmake-packages.7 examples to import targets only once"Brad King2014-07-151-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cfab942e5ff8463f8053564e68179da110280b43. Since commit v2.8.11~362^2 (Generate an early-return guard in target Export files, 2012-11-30) an external include guard is not needed.
* | | | | CMake Nightly Date StampKitware Robot2014-07-151-1/+1
| | | | |