summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmPropertyMap: Remove chaining logic.Stephen Kelly2015-06-071-9/+7
| | | | | | | The chaining logic doesn't belong to the container, and the CMakeInstance pointer doesn't need to be in cmPropertyMap. Size goes from 56 to 48 bytes with GNU libstdc++-5.1.
* cmPropertyMap: Remove scope parameter from API where not used.Stephen Kelly2015-06-071-2/+2
|
* cmMakefile: Simplify InitializeFromParent method.Stephen Kelly2015-06-061-4/+2
| | | | | Provide a parent instead of requiring it to be computed through the cmLocalGenerator.
* cmMakefile: Out-of-line the cmMakefileCall.Stephen Kelly2015-06-061-0/+12
|
* cmMakefile: Inline PushScope into PushFunctionScope.Stephen Kelly2015-06-061-2/+16
| | | | Make it possible to group the various methods here a different way.
* cmMakefile: Create a unified raii for macro scopes.Stephen Kelly2015-06-041-0/+29
|
* cmMakefile: Create a unified raii for function scopes.Stephen Kelly2015-06-041-0/+33
|
* Merge topic 'cmMakefile-Configure'Brad King2015-06-041-10/+75
|\ | | | | | | | | | | | | | | | | | | | | | | | | 7657e8b1 cmMakefile: Introduce a local cmMakefile variable. 4e8f242d cmMakefile: Store unconfigured cmMakefiles. d65e0123 cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile. f059ed16 cmMakefile: Move Configure responsibility from cmLocalGenerator. a653611d cmake: Replace CurrentLocalGenerator concept with CurrentMakefile. 69a038a9 cmMakefile: Refactor directories specified with the subdirs command. 08637970 cmLocalGenerator: ComputeObjectMaxPath just before generating. 27e11c6f Merge Configure state with GeneratingBuildSystem state. 363caa2f cmLocalGenerator: De-virtualize Configure().
| * cmMakefile: Introduce a local cmMakefile variable.Stephen Kelly2015-06-041-5/+7
| |
| * cmMakefile: Store unconfigured cmMakefiles.Stephen Kelly2015-06-041-4/+4
| | | | | | | | Not cmLocalGenerators.
| * cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile.Stephen Kelly2015-06-041-7/+7
| |
| * cmMakefile: Move Configure responsibility from cmLocalGenerator.Stephen Kelly2015-06-041-9/+59
| | | | | | | | The generator should only have a function at generate time.
| * cmMakefile: Refactor directories specified with the subdirs command.Stephen Kelly2015-06-041-0/+13
| | | | | | | | Store the directories on the cmMakefile as explicitly not-configured-yet.
| * Merge Configure state with GeneratingBuildSystem state.Stephen Kelly2015-06-041-2/+2
| |
* | Merge topic 'rename-cmState-API'Brad King2015-06-041-2/+3
|\ \ | | | | | | | | | | | | | | | | | | cf1233a0 cmState: Rename GetParent method. 942df88b cmState: Rename CreateSnapshot method. da28f115 cmState: Add CreateBaseSnapshot method.
| * | cmState: Rename GetParent method.Stephen Kelly2015-06-021-1/+2
| | | | | | | | | | | | Leave the namespace open for other Parent types.
| * | cmState: Rename CreateSnapshot method.Stephen Kelly2015-06-021-1/+1
| |/ | | | | | | Leave the namespace open for other snapshot types.
* | Merge topic 'minor-cleanups'Brad King2015-06-041-9/+18
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | eb7b6f6d cmVariableWatchCommand: Simplify error reporting. 499ebb65 cmListFileBacktrace: Internalize the step of making paths relative. 80b433b0 cmGlobalGenerator: Don't use else after a return. 52919ac8 cmMakefile: Make cmListFileBacktrace default constructible. b68f2ea8 cmMakefile: Add API for elseif to create backtrace. 17e13f0a cmMakefile: Simplify CMP0000 handling.
| * | cmMakefile: Add API for elseif to create backtrace.Stephen Kelly2015-06-021-0/+14
| | |
| * | cmMakefile: Simplify CMP0000 handling.Stephen Kelly2015-06-021-9/+4
| |/
* | VS: Compute project GUIDs deterministicallyBrad King2015-06-041-15/+0
|/ | | | | | | | | Compute deterministic GUIDs that are unique to the build tree by hashing the path to the build tree with the GUID logical name. Avoid storing them in the cache, but honor any found there. This will allow project GUIDs to be reproduced in a fresh build tree so long as its path is the same as the original, which may be useful for incremental builds.
* Merge topic 'inject-state-snapshot'Brad King2015-05-271-1/+4
|\ | | | | | | | | | | | | | | 3b880a07 cmLocalGenerator: Require a valid cmState::Snapshot in the ctor. e12afe76 cmState: Host some state from the cmGlobalGenerator. c7b79aa1 cmGlobalGenerator: Require a cmake instance in ctor. 01e1cd5c cmState: Move snapshot creation to the cmake instance.
| * cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | Refactor the local generator creation API to accept a cmState::Snapshot. Adjust MakeLocalGenerator to use the 'current' snapshot in cases where there is no parent. Create the snapshot for subdirectories in cmMakefile::AddSubdirectory. This means that snapshots are now created at the point of extending the tree, as appropriate, and independently of the cmLocalGenerator and cmMakefile they represent the state for.
* | cmMakefile: Don't pop the directory listfile off the stack.Stephen Kelly2015-05-251-16/+10
| | | | | | | | Simplify the IssueMessage implementation.
* | cmMakefile: Simplify convert condition.Stephen Kelly2015-05-251-2/+1
|/ | | | The CallStack is checked above.
* cmake: Add IssueMessage overload taking a single cmListFileContext.Stephen Kelly2015-05-211-22/+18
| | | | Port appropriate clients to use it.
* Merge topic 'clean-up-CMAKE_COMMAND'Brad King2015-05-211-1/+0
|\ | | | | | | | | 6fbd4cae Use cmSystemTools::GetCMakeCommand() to get path to cmake internally
| * Use cmSystemTools::GetCMakeCommand() to get path to cmake internallyBrad King2015-05-201-1/+0
| | | | | | | | | | This is much simpler than finding a way to lookup "CMAKE_COMMAND" everywhere.
* | cmMakefile: Remove VarUsageStack.Stephen Kelly2015-05-191-50/+8
| | | | | | | | | | | | Store usage information in the cmDefintions value instead. We already pay for the memory as padding in the Def struct, so we might as well use it.
* | cmMakefile: Remove VarInitStack.Stephen Kelly2015-05-191-21/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cmMakefile::PushScope, a copy of the closure of keys initialized in the parent scope is made. In PopScope, essentially the same copy is inserted back into the parent. That means a lot of duplication of strings and a lot of string comparisons. None of it is needed, because the cmDefinitions keys already provide a canonical representation of what is initialized. The removal of the separate container also makes the variable handling code more easy to reason about in general. Before this patch, configuring llvm uses 200 KiB for the VarInitStack. Overall peak memory consumption goes from 35.5 MiB to 35.1 MiB.
* | cmMakefile: Use more suitable method name to log var usage.Stephen Kelly2015-05-191-6/+6
| |
* | cmMakefile: Mark definitions explicitly erased, even at top level.Stephen Kelly2015-05-191-9/+1
| | | | | | | | | | | | | | | | | | | | Presumably the intention here is to attempt to optimize memory by not storing what is not needed. However, all keys need to be tracked anyway to implement initialization tracking, and this special case gets in the way of simplifying the implementation of that. This doesn't change any observable effects because values set to 0 are considered not to exist by the cmDefinitions API.
* | cmMakefile: Raise variable in scope explicitly when needed.Stephen Kelly2015-05-191-1/+1
| | | | | | | | | | The Get method implicitly pulls a copy of all variables into a local scope. This is not necessary.
* | cmMakefile: Use early return to reduce nested code.Stephen Kelly2015-05-191-15/+16
| |
* | cmMakefile: Don't use else after return.Stephen Kelly2015-05-191-4/+1
| |
* | cmMakefile: Remove redundant conditions.Stephen Kelly2015-05-191-6/+3
| | | | | | | | This container is never empty.
* | cmMakefile: Remove Print() debugging facilities.Stephen Kelly2015-05-191-53/+0
| | | | | | | | They don't print things that are important in the modern implementation.
* | cmMakefile: Remove duplicate variable initialization.Stephen Kelly2015-05-191-4/+2
| |
* | cmMakefile: Don't expect the VarStack iterator to support size().Stephen Kelly2015-05-191-2/+1
| |
* | cmMakefile: Remove redundant condition.Stephen Kelly2015-05-191-8/+2
| | | | | | | | | | As this is called in the constructor, the definition will never be already set.
* | cmMakefile: Rename method to something more appropriate.Stephen Kelly2015-05-191-1/+1
| | | | | | | | Allow the name to be used for something more-suitable.
* | cmMakefile: Make the public ReadListFile method take one param.Stephen Kelly2015-05-191-4/+6
| | | | | | | | | | Make the existing method a private overload. All external callers invoke the method with only one argument.
* | cmMakefile: Remove CurrentListFile member.Stephen Kelly2015-05-191-6/+1
| | | | | | | | | | It is never read externally. The CollapseFullPath removed in this commit is a repeat of a similar call inside ReadListFile.
* | cmMakefile: Port CurrentListFile clients to GetDefinition.Stephen Kelly2015-05-191-1/+2
|/ | | | There is no need to store this as a member variable.
* Merge topic 'minor-cleanups'Brad King2015-05-191-22/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-181-5/+5
| | | | | | | | | | | | 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.
| * cmListFileContext: Implement LessThanComparable.Stephen Kelly2015-05-181-3/+1
| | | | | | | | | | 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-181-3/+2
| |
| * cmMakefile: Add access to the top-level execution context.Stephen Kelly2015-05-181-4/+10
| | | | | | | | | | This is cheaper than getting the whole backtrace, and the cmListFileBacktrace will not always be composed of cmListFileContext objects.