summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'use-std-unordered_map'Brad King2015-05-1916-12/+100
|\ | | | | | | | | | | | | d7923b82 Use std::unordered_map instead of hash_map where available. 820777af Tests: Don't rely on ordering of targets in maps. 921d74d8 AutoGen: Don't iterate over a container while populating it.
| * Use std::unordered_map instead of hash_map where available.Stephen Kelly2015-05-189-5/+85
| |
| * Tests: Don't rely on ordering of targets in maps.Stephen Kelly2015-05-176-6/+6
| |
| * AutoGen: Don't iterate over a container while populating it.Stephen Kelly2015-05-161-1/+9
| | | | | | | | | | | | | | | | The InitializeAutogenTarget creates new targets and adds them to the Targets container on the makefile. In this method, we have a reference to that container and we are iterating over it. That happens to work with hash_map, but it fails with undefined behavior when using the std::unordered_map from libstdc++-4.9 (and likely others).
* | Merge topic 'ninja-per-target-rules'Brad King2015-05-195-10/+49
|\ \ | | | | | | | | | | | | a390de65 Ninja: Generate separate compile and link rules for each target
| * | Ninja: Generate separate compile and link rules for each targetBrad King2015-05-185-10/+49
| | | | | | | | | | | | | | | | | | | | | | | | Our <LANG>_COMPILER and <LANG>_<TARGET_TYPE>_LINKER rule generation has access to a specific cmTarget so the results may depend on it. Instead generate separate rules for each target using an encoded target name. In particular, this makes CTEST_USE_LAUNCHERS report proper target information.
* | | Merge topic 'refactor-cmLocalGenerator'Brad King2015-05-1918-173/+230
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fa9eb814 cmLocalGenerator: Remove redundant path access. 1933f3d1 cmLocalGenerator: Remove redundant path conversions. 9e4b6cc2 cmState: Store computed relative paths to to current directories. 991f5e49 cmState::Snapshot: Store components for current directories. 57bdc1a2 cmState: Compute and store directory components.
| * | | cmLocalGenerator: Remove redundant path access.Stephen Kelly2015-05-161-2/+1
| | | |
| * | | cmLocalGenerator: Remove redundant path conversions.Stephen Kelly2015-05-161-3/+0
| | | | | | | | | | | | | | | | The methods just called store the paths in already-converted form.
| * | | cmState: Store computed relative paths to to current directories.Stephen Kelly2015-05-165-121/+132
| | | |
| * | | cmState::Snapshot: Store components for current directories.Stephen Kelly2015-05-164-36/+38
| | | | | | | | | | | | | | | | Remove this responsibility from cmLocalGenerator.
| * | | cmState: Compute and store directory components.Stephen Kelly2015-05-1617-14/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to duplicate these in all cmLocalGenerators. Rename the symbols according to current conventions. Add explicit calls to Set{Source,Binary}Directory with empty strings in order to trigger the population of the components containers with the current working directory in cmLocalGenerator. Having directories set to empty is a special case in CMake, which is relied on for the `if(CMAKE_BINARY_DIR)` condition at the end of CMakeDetermineSystem.cmake.
* | | | Merge topic 'minor-cleanups'Brad King2015-05-1913-105/+113
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 61d52e6e cmListFileBacktrace: Hide the context-stack implementation detail. a271f7f1 cmTarget: Simplify CMP0023 message loop. f4300cd4 cmTarget: Simplify output computation. 65a42849 cmTarget: Store context in stack only if different. 9645cba3 cmListFileContext: Implement EqualityComparable. 52a8d19c cmTarget: Store only cmListFileContext for CMP0023 handling. 59ba1215 cmTarget: Remove needless iteration. 18f810a8 cmListFileContext: Sort by line before file. e96b5d14 cmListFileContext: Implement LessThanComparable. 7eb0dfa0 cmMakefile: Use std::set::insert API to simplify CMP0054 handling. f9785e0c cmMakefile: Simplify CMP0054 handling. e17b5e42 cmMakefile: Add access to the top-level execution context. 1ec1bf9f if(): Test the effect of cmMakefileCall use in elseif() handling. 9b4aefad cmMakefile: Replace deques with vectors.
| * | | | cmListFileBacktrace: Hide the context-stack implementation detail.Stephen Kelly2015-05-185-24/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The backtrace will soon not be implemented in terms of a stack of cmListFileContext objects. Keep the cmListFileContext in the API for convenience for now.
| * | | | cmTarget: Simplify CMP0023 message loop.Stephen Kelly2015-05-181-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | | This method is only called if there is a mismatch and something to print. Remove intermediate container.
| * | | | cmTarget: Simplify output computation.Stephen Kelly2015-05-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | We always have line information for contexts resulting from command execution.
| * | | | cmTarget: Store context in stack only if different.Stephen Kelly2015-05-181-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PushTLLCommandTrace method is called once per link item for a single target_link_libraries command. Avoid storing copies of identical execution contexts and rely on the uniqueness while printing output.
| * | | | cmListFileContext: Implement EqualityComparable.Stephen Kelly2015-05-182-0/+12
| | | | |
| * | | | cmTarget: Store only cmListFileContext for CMP0023 handling.Stephen Kelly2015-05-182-16/+13
| | | | | | | | | | | | | | | | | | | | | | | | | Only the top level execution context is shown, as appropriate, so store only that.
| * | | | cmTarget: Remove needless iteration.Stephen Kelly2015-05-181-1/+0
| | | | | | | | | | | | | | | | | | | | This is not a loop.
| * | | | cmListFileContext: Sort by line before file.Stephen Kelly2015-05-181-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should be much faster. In the context where it is used the line comparison should be sufficient, removing the need to compare files at all.
| * | | | cmListFileContext: Implement LessThanComparable.Stephen Kelly2015-05-184-23/+11
| | | | | | | | | | | | | | | | | | | | | | | | | Move wrapping existing code from cmMakefile, and simplify the implementation there.
| * | | | cmMakefile: Use std::set::insert API to simplify CMP0054 handling.Stephen Kelly2015-05-181-9/+1
| | | | |
| * | | | cmMakefile: Simplify CMP0054 handling.Stephen Kelly2015-05-183-13/+5
| | | | |
| * | | | cmMakefile: Add access to the top-level execution context.Stephen Kelly2015-05-183-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | This is cheaper than getting the whole backtrace, and the cmListFileBacktrace will not always be composed of cmListFileContext objects.
| * | | | if(): Test the effect of cmMakefileCall use in elseif() handling.Stephen Kelly2015-05-184-0/+14
| | | | |
| * | | | cmMakefile: Replace deques with vectors.Stephen Kelly2015-05-182-4/+3
| | |/ / | |/| |
* | | | Merge topic 'clean-up-vs-generators'Brad King2015-05-1929-209/+162
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dad8b03f VS: Remove obsolete methods. e435f875 VS: Move version information to global generator. b5f093f0 VS: Simplify setting of flag table.
| * | | | VS: Remove obsolete methods.Stephen Kelly2015-05-1912-68/+0
| | | | | | | | | | | | | | | | | | | | Base class implementations for these are identical.
| * | | | VS: Move version information to global generator.Stephen Kelly2015-05-1922-106/+136
| | | | |
| * | | | VS: Simplify setting of flag table.Stephen Kelly2015-05-197-41/+32
| | | | |
* | | | | Merge topic 'clean-up-makefile-generators'Brad King2015-05-1932-166/+68
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 036372c4 Remove obsolete overrides of CreateLocalGenerator. 684e5cef cmGlobalGenerator: Host the MakeSilentFlag. 2047144f cmLocalGenerator: Remove unused IgnoreLibPrefix. 333c1fa8 cmGlobalUnixMakefileGenerator3: Host the UnixCD. a97df5e1 cmGlobalUnixMakefileGenerator3: Host the PassMakeflags. 14f171c3 Remove method calls just repeating the default. cf7f03e5 cmGlobalUnixMakefileGenerator3: Host the DefineWindowsNULL. e9b134b9 cmGlobalUnixMakefileGenerator3: Host the include directive. 24613d8b cmLocalGenerator: Remove unused method. b659d161 cmGlobalGenerator: Add NVI wrapper to create local generator.
| * | | | | Remove obsolete overrides of CreateLocalGenerator.Stephen Kelly2015-05-1810-60/+0
| | | | | | | | | | | | | | | | | | | | | | | | The cmGlobalMakefileGenerator3 has an identical implementation.
| * | | | | cmGlobalGenerator: Host the MakeSilentFlag.Stephen Kelly2015-05-186-14/+8
| | | | | |
| * | | | | cmLocalGenerator: Remove unused IgnoreLibPrefix.Stephen Kelly2015-05-189-14/+0
| | | | | |
| * | | | | cmGlobalUnixMakefileGenerator3: Host the UnixCD.Stephen Kelly2015-05-188-13/+9
| | | | | |
| * | | | | cmGlobalUnixMakefileGenerator3: Host the PassMakeflags.Stephen Kelly2015-05-187-14/+8
| | | | | |
| * | | | | Remove method calls just repeating the default.Stephen Kelly2015-05-183-5/+0
| | | | | |
| * | | | | cmGlobalUnixMakefileGenerator3: Host the DefineWindowsNULL.Stephen Kelly2015-05-168-14/+9
| | | | | |
| * | | | | cmGlobalUnixMakefileGenerator3: Host the include directive.Stephen Kelly2015-05-168-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | There is no sense in copying this to each cmLocalGenerator.
| * | | | | cmLocalGenerator: Remove unused method.Stephen Kelly2015-05-161-1/+0
| | | | | |
| * | | | | cmGlobalGenerator: Add NVI wrapper to create local generator.Stephen Kelly2015-05-1614-18/+26
| | |_|_|/ | |/| | |
* | | | | Merge topic 'clean-up-cmDefinitions'Brad King2015-05-193-61/+40
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f170985e cmDefinitions: Make the ClosureKeys method static. 98c5c903 cmDefinitions: Centralize knowledge of iterator type. 7872201b cmDefinitions: Remove internal MakeClosure method.
| * | | | | cmDefinitions: Make the ClosureKeys method static.Stephen Kelly2015-05-173-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | For consistency with all other closure-related methods.
| * | | | | cmDefinitions: Centralize knowledge of iterator type.Stephen Kelly2015-05-172-26/+19
| | | | | | | | | | | | | | | | | | | | | | | | Currently we process a list of definitions, but that will change.
| * | | | | cmDefinitions: Remove internal MakeClosure method.Stephen Kelly2015-05-172-16/+4
| | |/ / / | |/| | | | | | | | | | | | | | | | | | There is no need to have a separate method, or to pass an external set to it.
* | | | | Merge topic 'clean-up-cmExecutionStatus'Brad King2015-05-191-16/+13
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2a44acb9 cmExecutionStatus: Remove inheritance of cmObject. c8c34169 cmExecutionStatus: De-virtualize API.
| * | | | | cmExecutionStatus: Remove inheritance of cmObject.Stephen Kelly2015-05-161-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | It is not needed.
| * | | | | cmExecutionStatus: De-virtualize API.Stephen Kelly2015-05-161-11/+10
| | |_|_|/ | |/| | | | | | | | | | | | | It is clearly not required.
* | | | | Merge topic 'fix-function-missing-endforeach'Brad King2015-05-199-1/+34
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 3a656065 Fix assertion failure on unmatched foreach in function (#15572)