Stephen Kelly
6ed9c7e024
cmState: Host buildsystem properties for directories.
2015-07-25 14:53:05 +02:00
Stephen Kelly
5447ca1a94
cmMakefile: Remove CMP0001 handling to callers.
2015-07-25 14:48:37 +02:00
Stephen Kelly
d0dcce15f4
cmMakefile: Simplify computation of ancient policy status.
2015-07-25 14:48:37 +02:00
Stephen Kelly
658bfc5c52
cmMakefile: Remove redundant condition from policy status computation.
2015-07-25 14:48:36 +02:00
Stephen Kelly
f4a25874a2
cmMakefile: Inline internal policy status method.
2015-07-25 14:48:36 +02:00
Stephen Kelly
3c45471c2d
cmPolicies: Enable RVO for internal method.
2015-07-25 14:48:36 +02:00
Stephen Kelly
84e1805666
cmMakefile: Convert recursion to loop.
2015-07-25 14:48:36 +02:00
Ben Boeckel
594bafe527
cmake: add --trace-expand option
...
The --trace option is helpful, but sometimes, what you're looking for is
deep under many layers of function calls and figuring out what instance
of the function call you're looking at is tedious to determine (usually
involving patching and message()). Instead, add a --trace-expand option
to trace while expanding commands into what CMake actually sees.
2015-07-23 15:33:10 -04:00
Stephen Kelly
1e77de7411
cmMakefile: Don't clear buildsystem properties.
...
Instead put a sentinal empty entry in the container when a property
is overwritten. Use this sentinal when reading from the containers.
Use iterator::operator+(size_type) directly instead of std::advance,
because this only really makes sense if using RandomAccessIterators.
2015-07-22 21:23:49 +02:00
Stephen Kelly
8d336875b3
cmMakefile: Use Ranges for buildsystem property access.
...
Don't return vector copies.
2015-07-22 20:25:48 +02:00
Stephen Kelly
c7b39d06f9
cmMakefile: Split accessors for include directories and origins.
2015-07-22 20:25:47 +02:00
Stephen Kelly
b2de25aded
cmMakefile: Split accessors for compile options and origins.
2015-07-22 20:25:46 +02:00
Stephen Kelly
d6239507b2
cmMakefile: Split accessors for compile definitions and origins.
2015-07-22 20:25:45 +02:00
Stephen Kelly
ef17bbefd7
cmMakefile: Separate storage of buildsystem properties and their origins.
...
This simplifies some existing and upcoming algorithms.
2015-07-22 20:25:43 +02:00
Stephen Kelly
a89c02ce3d
cmMakefile: Out of line some API.
2015-07-22 20:06:23 +02:00
Stephen Kelly
8ea0b81d20
cmAlgorithms: Rename cmRange to cmMakeRange.
2015-07-22 10:58:19 -04:00
Brad King
5b2754d41f
Merge topic 'remove-special-MACROS-handling'
...
41bb831f
cmMakefile: Remove special handling of MACROS property.
2015-07-21 09:22:23 -04:00
Brad King
e13c189743
Merge topic 'remove-special-LINK_DIRECTORIES-handling'
...
881613c4
cmMakefile: Remove special handling of LINK_DIRECTORIES property.
35734260
cmMakefile: Inline only use of GetLinkDirectories.
2015-07-21 09:22:21 -04:00
Brad King
ae64efa1ce
Merge topic 'cmState-Directory'
...
9ebc7502
cmState: Extract a Directory class.
27ec21db
cmState: Forward-declare a type earlier.
2015-07-21 09:22:19 -04:00
Brad King
93b393e74c
Merge topic 'remove-Properties-accessor'
...
c6055d9d
cmMakefile: Remove GetProperties method.
cbe3ee58
cmMakefile: Add a PropertyKeys accessor.
2015-07-21 09:22:17 -04:00
Brad King
64aa41b248
Merge topic 'clean-up-include_regular_expression'
...
4efda261
cmMakefile: Remove special handling of INCLUDE_REGULAR_EXPRESSION.
2015-07-21 09:22:15 -04:00
Brad King
ce597a022b
Merge topic 'minor-cleanups'
...
cff2dc34
cmLocalUnixMakefileGenerator3: Port away from the Parent.
5505bff7
cmMakefile: Add include which we use.
2007d11c
cmState: Remove unused variable.
a622b829
cmGetCMakePropertyCommand: Clean up VARIABLES handling.
52f22616
cmListFileBacktrace: Constify API.
fc1c7cf8
Genex: Store a backtrace, not a pointer to one.
4dc45707
cmMakefile: Fix indentation.
12c82fd8
cmMakefile: Remove dead code.
f19653eb
CodeLite: Remove unused code.
2015-07-21 09:22:13 -04:00
Stephen Kelly
41bb831fc9
cmMakefile: Remove special handling of MACROS property.
2015-07-19 16:01:39 +02:00
Stephen Kelly
9ebc7502b2
cmState: Extract a Directory class.
...
Move Directory-scoped state accessors to it. This will be expanded
with directory property state soon.
2015-07-18 19:37:58 +02:00
Stephen Kelly
cbe3ee58ca
cmMakefile: Add a PropertyKeys accessor.
2015-07-18 18:59:18 +02:00
Stephen Kelly
5505bff7ae
cmMakefile: Add include which we use.
...
Don't rely on this through the cmLocalGenerator include.
2015-07-18 18:40:36 +02:00
Stephen Kelly
4efda261fe
cmMakefile: Remove special handling of INCLUDE_REGULAR_EXPRESSION.
...
It costs an extra cmMakefile member and extra code to maintain in
directory property handling. Remove documentation note that it
is read-only and specify high-level command to populate it.
2015-07-18 14:10:34 +02:00
Stephen Kelly
881613c4ab
cmMakefile: Remove special handling of LINK_DIRECTORIES property.
...
There is no need to handle it in a special way.
2015-07-18 13:56:48 +02:00
Stephen Kelly
357342602d
cmMakefile: Inline only use of GetLinkDirectories.
2015-07-18 13:45:43 +02:00
Stephen Kelly
640fc5b54a
cmMakefile: Remove unused ListFileStack.
2015-07-18 13:27:19 +02:00
Stephen Kelly
54cc0c0e1f
cmMakefile: Port some users of ListFileStack to cmState.
2015-07-18 13:26:06 +02:00
Stephen Kelly
e77c46664c
cmMakefile: Remove obsolete condition.
2015-07-18 13:22:51 +02:00
Stephen Kelly
8e7d303077
cmMakefile: Simplify setting of current snapshot.
2015-07-18 13:17:24 +02:00
Stephen Kelly
6083ec9a78
cmMakefile: Implement LISTFILE_STACK property in terms of cmState.
2015-07-18 13:12:07 +02:00
Stephen Kelly
647b533bce
cmMakefile: Implement FormatListFileStack in terms of cmState.
2015-07-18 13:11:45 +02:00
Stephen Kelly
4dc4570734
cmMakefile: Fix indentation.
2015-07-17 22:14:37 +02:00
Stephen Kelly
12c82fd8c0
cmMakefile: Remove dead code.
2015-07-17 22:14:36 +02:00
Stephen Kelly
d2475bb5c4
cmListFileBacktrace: Implement in terms of cmState::Snapshot.
...
Avoid copying many strings into each backtrace object.
2015-07-06 11:22:42 -04:00
Stephen Kelly
238aac2351
cmListFile: Remove FilePath member from cmListFileContext.
...
There is no need to store the FilePath for every function, as it is
known by other means.
2015-07-06 11:22:41 -04:00
Stephen Kelly
329098a9a0
cmMakefile: Set the FilePath on the frame from the cmState.
...
To verify unit tests pass and for future bisecting.
2015-07-06 11:22:41 -04:00
Stephen Kelly
91158a3369
cmMakefile: Create intermediate variables for snapshot frames.
2015-07-06 11:22:41 -04:00
Stephen Kelly
821f91d6ab
cmMakefile: Create a scoped context for parsing listfiles.
...
Update the Syntax tests to check for updated/improved backtraces.
2015-07-06 11:22:41 -04:00
Stephen Kelly
30d44efaf8
cmMakefile: Access the execution list file from the cmState.
2015-07-06 01:37:17 +02:00
Stephen Kelly
6361f68056
cmState: Store execution context.
...
Extend snapshot creation API to store the file being executed and the
entry point to get to that context.
2015-07-06 01:37:15 +02:00
Stephen Kelly
a8e5446024
cmState: Store snapshots for more different types.
...
Adjust cmMakefile implementation to create the snapshots.
2015-07-04 11:51:27 +02:00
Stephen Kelly
dbafb01580
cmMakefile: Split CallStack into two pieces.
2015-07-04 11:51:27 +02:00
Stephen Kelly
48c6a92b28
cmMakefile: Merge two Scope types and instances.
2015-06-30 23:14:22 +02:00
Stephen Kelly
e28e110d22
cmMakefile: Rename a variable.
2015-06-30 23:14:22 +02:00
Stephen Kelly
3f5200ec5f
cmMakefile: Expand the scope of scoped buildsystem file state.
2015-06-30 23:14:21 +02:00
Stephen Kelly
0a34ea597a
cmMakefile: Compute the filename processed in a scope.
2015-06-30 23:14:21 +02:00
Stephen Kelly
be5997ef77
cmMakefile: Inline ProcessBuildsystemFile into only caller.
2015-06-30 23:14:21 +02:00
Stephen Kelly
5bf9bfda3f
cmMakefile: Don't use string comparison to check directory level.
2015-06-30 23:14:20 +02:00
Stephen Kelly
f346d88d10
cmMakefile: Avoid invoking EnforceDirectoryLevelRules.
...
This is part of the CMP0000 implementation and only needs to be invoked
for top-level buildsystem files currently.
2015-06-30 23:14:20 +02:00
Stephen Kelly
b661403177
cmMakefile: Add filename to ReadListFile auto scopes.
2015-06-30 23:14:19 +02:00
Stephen Kelly
6708d21664
cmMakefile: Remove IncludeScope Quiet call.
2015-06-30 23:14:19 +02:00
Stephen Kelly
0818737c85
cmMakefile: Make listfile scopes responsible for logical checks.
...
Remove the LexicalPushPop.
2015-06-30 23:14:18 +02:00
Stephen Kelly
dd7e42758d
cmMakefile: Move the lexical scope.
2015-06-30 23:14:18 +02:00
Stephen Kelly
92cecd9369
cmMakefile: Add automatic scopes to listfile readers.
2015-06-30 23:14:18 +02:00
Stephen Kelly
276c62253e
cmMakefile: Move the IncludeScope to where it is used.
2015-06-30 23:14:17 +02:00
Brad King
5ab7dd544e
Merge topic 'fix-function-missing-end'
...
5d85fb4f
Fix assertion failure on unmatched function or macro
2015-06-23 09:08:18 -04:00
Brad King
ec6d6be57d
Merge topic 'minor-cleanups'
...
820986ed
cmLocalGenerator: Constify GetIncludeDirectories method.
b3e2e332
QtAutogen: Get the global generator from the Makefile.
61c0113c
cmLocalUnixMakefileGenerator3: Remove unused method.
080489b8
cmMakefile: Use member directly instead of through method.
8bfaadfa
cmMakefile: Move IsRoot API from cmLocalGenerator.
217c243d
cmake: Update the current snapshot when Resetting.
eb05dcd6
cmLocalGenerator: Add IssueMessage method.
cfae7fa4
cmMakefile: Use cmOutputConverter instead of cmLocalGenerator.
ccf7760f
cmOutputConverter: Constify API.
2015-06-22 13:00:32 -04:00
Brad King
24a0825585
Merge topic 'clean-up-ReadListFile'
...
81eb2c58
cmMakefile: Simplify filename handling.
5c837686
cmMakefile: Make the IncludeScope more responsible.
c10ab014
cmMakefile: Move IncludeScope.
3404f8a0
cmMakefile: Move ListFile parsing responsibility out of internal method.
a1858136
cmMakefile: Rename parameter.
ad47e6e5
cmMakefile: Inline ReadListFileInternal into caller.
254be613
cmMakefile: Move resource management into the IncludeScope.
826b6e68
cmMakefile: Move IncludeScope to ReadDependentFile.
e53072d6
cmMakefile: Move IncludeScope instance.
b7166afa
cmMakefile: Remove File from IncludeScope.
27f229b9
cmMakefile: Move include scope out of ReadListFileInternal.
9166b49d
cmMakefile: Change order of raii scopes.
384a0dba
cmMakefile: Simplify condition handling.
5e24ff17
cmMakefile: Split file handling from execution.
d5aaa2b9
cmMakefile: Move check for unused variables.
fff3c6cd
cmMakefile: Move a container population.
...
2015-06-22 13:00:30 -04:00
Brad King
38ee28bfd5
Merge branch 'fix-function-missing-end' into release
2015-06-22 11:46:09 -04:00
Brad King
5d85fb4f40
Fix assertion failure on unmatched function or macro
...
The fix in commit v3.2.3~3^2 (Fix assertion failure on unmatched foreach
in function, 2015-05-18) broke handling of unmatched non-loop blocks
because it assumed all function blockers removed during error unwinding
were for loops, essentially switching the set of mishandled cases.
The purpose of the loop block push/pop operations is to define a scope
matching the lifetime of the loop function blockers. Since our function
blockers already have the proper lifetime, simply move the push/pop
operations to their constructor/destructor.
Extend the RunCMake.Syntax test with a case covering this.
2015-06-22 11:41:51 -04:00
Stephen Kelly
080489b8a9
cmMakefile: Use member directly instead of through method.
...
This function will not be around much longer anyway.
2015-06-21 21:14:06 +02:00
Stephen Kelly
8bfaadfa39
cmMakefile: Move IsRoot API from cmLocalGenerator.
2015-06-21 21:14:05 +02:00
Stephen Kelly
a863c59f70
cmMakefile: Use GetExecutionFileStack method.
2015-06-21 20:57:25 +02:00
Stephen Kelly
076760a63c
cmMakefile: Add filename context to ExpandArguments.
...
The cmListFileArgument currently stores a FilePath for use in this
method. The filename is the same as the CMAKE_CURRENT_LIST_FILE,
except if executing a macro or function defined in another file.
Set the context filename when expanding the arguments of macros and
functions using the filename recorded when defining the prototype.
2015-06-21 20:57:25 +02:00
Stephen Kelly
cfae7fa408
cmMakefile: Use cmOutputConverter instead of cmLocalGenerator.
2015-06-21 20:17:18 +02:00
Stephen Kelly
81eb2c58a1
cmMakefile: Simplify filename handling.
...
This method has only one caller.
2015-06-21 20:10:52 +02:00
Stephen Kelly
5c83768628
cmMakefile: Make the IncludeScope more responsible.
...
It is now responsible for all resource management when
including a file.
2015-06-21 20:10:52 +02:00
Stephen Kelly
c10ab01434
cmMakefile: Move IncludeScope.
2015-06-21 20:10:52 +02:00
Stephen Kelly
3404f8a081
cmMakefile: Move ListFile parsing responsibility out of internal method.
2015-06-21 20:10:51 +02:00
Stephen Kelly
a1858136c2
cmMakefile: Rename parameter.
2015-06-21 20:10:51 +02:00
Stephen Kelly
ad47e6e5bc
cmMakefile: Inline ReadListFileInternal into caller.
2015-06-21 20:10:50 +02:00
Stephen Kelly
254be613b8
cmMakefile: Move resource management into the IncludeScope.
2015-06-21 20:10:50 +02:00
Stephen Kelly
826b6e6818
cmMakefile: Move IncludeScope to ReadDependentFile.
...
Add replacement simple push/pop in the other two callers of
ReadListFile.
2015-06-21 20:10:50 +02:00
Stephen Kelly
e53072d638
cmMakefile: Move IncludeScope instance.
2015-06-21 20:10:49 +02:00
Stephen Kelly
b7166afa6d
cmMakefile: Remove File from IncludeScope.
...
Get it from the Makefile instead.
2015-06-21 20:10:49 +02:00
Stephen Kelly
27f229b970
cmMakefile: Move include scope out of ReadListFileInternal.
...
Simplify the ReadListFileInternal API.
2015-06-21 20:10:48 +02:00
Stephen Kelly
9166b49d70
cmMakefile: Change order of raii scopes.
2015-06-21 20:10:48 +02:00
Stephen Kelly
384a0dba63
cmMakefile: Simplify condition handling.
2015-06-21 20:10:48 +02:00
Stephen Kelly
5e24ff17a2
cmMakefile: Split file handling from execution.
2015-06-21 20:10:47 +02:00
Stephen Kelly
d5aaa2b96f
cmMakefile: Move check for unused variables.
2015-06-21 20:10:47 +02:00
Stephen Kelly
fff3c6cd1c
cmMakefile: Move a container population.
2015-06-21 20:10:47 +02:00
Stephen Kelly
a6e661b848
cmMakefile: Rename variables.
2015-06-21 20:10:46 +02:00
Stephen Kelly
fe38bb2c29
cmMakefile: Change return type of ReadListFileInternal.
2015-06-21 20:10:46 +02:00
Stephen Kelly
ac10fc0958
cmMakefile: Move listfile parsing responsibility.
2015-06-21 20:10:45 +02:00
Stephen Kelly
52b9d828ab
cmMakefile: Move CMP0059 handling to command code.
...
Don't pay a penalty for it in all GetProperty calls.
Additionally, the storage of properties will eventually move to
cmState, which should only contain state and not logic for policies
like this.
2015-06-08 22:23:44 +02:00
Brad King
d17aa60659
Merge topic 'data-layout'
...
8174e5cd
cmCustomCommand: Remove special member functions.
34e1d6db
cmCustomCommand: Re-arrange data layout.
54cb76f2
cmComputeLinkDepends: Re-arrange data layout.
b661d6c6
cmQtAutoGenerators: Re-arrange data layout.
40844a14
cmProcessTools: Re-arrange data layout.
b1ff32af
cmOrderDirectories: Re-arrange data layout.
dd0417c7
cmInstallTargetGenerator: Re-arrange data layout.
125c4866
cmInstallFilesGenerator: Re-arrange data layout.
92b8b1fc
cmGraphVizWriter: Re-arrange data layout.
7f3e1623
cmGlobalGenerator: Re-arrange data layout.
d9df7fa7
cmComputeComponentGraph: Re-arrange data layout.
db24e41b
cmCommandArgumentParserHelper: Re-arrange data.
4cd13e80
cmComputeLinkInformation: Re-arrange data layout.
3e087a40
cmLocalUnixMakefileGenerator: Re-arrange data layout.
e0421701
cmMakefile: Re-arrange data layout.
c26696eb
cmSourceFile: Re-arrange data.
...
2015-06-08 13:54:11 -04:00
Brad King
ccc6fe9445
Merge topic 'clean-up-cmMakefile'
...
4c192fb5
cmMakefile: Remove cacheOnly option from GetDefinitions.
046aafff
cmGetCMakePropertyCommand: Don't explicitly specify default param.
021c4b6f
cmMakefile: Simplify handling of CACHE_VARIABLES property.
1981c971
cmMakefile: Simplify InitializeFromParent method.
353e422b
cmMakefile: Remove unused GetPolicies method.
00bfa047
cmMakefile: Out-of-line the cmMakefileCall.
db74ce58
cmMakefile: Inline PushScope into PushFunctionScope.
ca140c2e
cmMakefile: Create a unified raii for macro scopes.
d5dc4169
cmMakefile: Create a unified raii for function scopes.
2015-06-08 13:54:09 -04:00
Brad King
f5690cc57c
Merge topic 'move-Feature-API'
...
f573bd22
cmLocalGenerator: Add Feature API from cmMakefile.
ccbc2259
cmGeneratorTarget: Move Feature API from cmTarget.
2015-06-08 13:54:05 -04:00
Stephen Kelly
4c192fb531
cmMakefile: Remove cacheOnly option from GetDefinitions.
...
It is now unused.
2015-06-07 15:21:56 +02:00
Stephen Kelly
021c4b6f2b
cmMakefile: Simplify handling of CACHE_VARIABLES property.
2015-06-07 15:21:55 +02:00
Stephen Kelly
5181fae264
cmPropertyMap: Remove chaining logic.
...
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.
2015-06-07 09:29:31 +02:00
Stephen Kelly
7c0aa672fe
cmPropertyMap: Remove scope parameter from API where not used.
2015-06-07 09:29:30 +02:00
Stephen Kelly
f573bd22e4
cmLocalGenerator: Add Feature API from cmMakefile.
2015-06-06 15:44:17 +02:00
Stephen Kelly
1981c9718b
cmMakefile: Simplify InitializeFromParent method.
...
Provide a parent instead of requiring it to be computed through
the cmLocalGenerator.
2015-06-06 09:35:55 +02:00
Stephen Kelly
00bfa04748
cmMakefile: Out-of-line the cmMakefileCall.
2015-06-06 09:31:16 +02:00
Stephen Kelly
db74ce5820
cmMakefile: Inline PushScope into PushFunctionScope.
...
Make it possible to group the various methods here a different way.
2015-06-06 09:30:45 +02:00
Stephen Kelly
242dcc2c22
cmListFileBacktrace: Replace local generator with cmState::Snapshot.
...
Construct cmOutputConverter only when needed.
2015-06-06 09:15:57 +02:00
Stephen Kelly
8680520fea
cmMakefile: Make the cmState::Snapshot accessible.
2015-06-06 09:15:56 +02:00
Stephen Kelly
ca140c2e89
cmMakefile: Create a unified raii for macro scopes.
2015-06-04 22:08:23 +02:00
Stephen Kelly
d5dc4169ac
cmMakefile: Create a unified raii for function scopes.
2015-06-04 22:08:23 +02:00
Brad King
0886880e3b
Merge topic 'cmMakefile-Configure'
...
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().
2015-06-04 09:13:35 -04:00
Brad King
5a1c8806bf
Merge topic 'rename-cmState-API'
...
cf1233a0
cmState: Rename GetParent method.
942df88b
cmState: Rename CreateSnapshot method.
da28f115
cmState: Add CreateBaseSnapshot method.
2015-06-04 09:13:31 -04:00
Brad King
b49aef6b10
Merge topic 'minor-cleanups'
...
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.
2015-06-04 09:13:27 -04:00
Stephen Kelly
7657e8b1df
cmMakefile: Introduce a local cmMakefile variable.
2015-06-04 09:06:42 -04:00
Stephen Kelly
4e8f242d17
cmMakefile: Store unconfigured cmMakefiles.
...
Not cmLocalGenerators.
2015-06-04 09:06:42 -04:00
Stephen Kelly
d65e01235d
cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile.
2015-06-04 09:06:42 -04:00
Stephen Kelly
f059ed165b
cmMakefile: Move Configure responsibility from cmLocalGenerator.
...
The generator should only have a function at generate time.
2015-06-04 09:06:41 -04:00
Stephen Kelly
69a038a9e9
cmMakefile: Refactor directories specified with the subdirs command.
...
Store the directories on the cmMakefile as explicitly not-configured-yet.
2015-06-04 09:06:41 -04:00
Stephen Kelly
27e11c6fea
Merge Configure state with GeneratingBuildSystem state.
2015-06-04 09:06:40 -04:00
Brad King
c85367f408
VS: Compute project GUIDs deterministically
...
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.
2015-06-04 08:40:08 -04:00
Stephen Kelly
cf1233a0ea
cmState: Rename GetParent method.
...
Leave the namespace open for other Parent types.
2015-06-03 01:15:03 +02:00
Stephen Kelly
942df88bf8
cmState: Rename CreateSnapshot method.
...
Leave the namespace open for other snapshot types.
2015-06-03 01:14:34 +02:00
Stephen Kelly
b68f2ea8ae
cmMakefile: Add API for elseif to create backtrace.
2015-06-03 01:03:58 +02:00
Stephen Kelly
17e13f0a2d
cmMakefile: Simplify CMP0000 handling.
2015-06-03 01:03:57 +02:00
Brad King
c12fc3573b
Merge topic 'inject-state-snapshot'
...
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.
2015-05-27 09:23:01 -04:00
Stephen Kelly
3b880a0741
cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.
...
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.
2015-05-27 09:18:32 -04:00
Stephen Kelly
f5b0a0fba4
cmMakefile: Don't pop the directory listfile off the stack.
...
Simplify the IssueMessage implementation.
2015-05-25 09:49:59 +02:00
Stephen Kelly
e40fcb598d
cmMakefile: Simplify convert condition.
...
The CallStack is checked above.
2015-05-25 09:21:56 +02:00
Stephen Kelly
8b4b9631f5
cmake: Add IssueMessage overload taking a single cmListFileContext.
...
Port appropriate clients to use it.
2015-05-22 01:21:35 +02:00
Brad King
3e3a09d1d3
Merge topic 'clean-up-CMAKE_COMMAND'
...
6fbd4cae
Use cmSystemTools::GetCMakeCommand() to get path to cmake internally
2015-05-21 09:03:52 -04:00
Brad King
6fbd4cae0d
Use cmSystemTools::GetCMakeCommand() to get path to cmake internally
...
This is much simpler than finding a way to lookup "CMAKE_COMMAND"
everywhere.
2015-05-20 11:20:42 -04:00
Stephen Kelly
b9f9915516
cmMakefile: Remove VarUsageStack.
...
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.
2015-05-19 22:36:53 +02:00
Stephen Kelly
2b09d9f346
cmMakefile: Remove VarInitStack.
...
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.
2015-05-19 22:36:53 +02:00
Stephen Kelly
528d68021c
cmMakefile: Use more suitable method name to log var usage.
2015-05-19 22:36:52 +02:00
Stephen Kelly
f58c3774d1
cmMakefile: Mark definitions explicitly erased, even at top level.
...
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.
2015-05-19 22:36:52 +02:00
Stephen Kelly
ea7b962be2
cmMakefile: Raise variable in scope explicitly when needed.
...
The Get method implicitly pulls a copy of all variables into a local scope. This
is not necessary.
2015-05-19 22:36:51 +02:00
Stephen Kelly
c8cb66880c
cmMakefile: Use early return to reduce nested code.
2015-05-19 22:36:51 +02:00
Stephen Kelly
bdd1aa91ae
cmMakefile: Don't use else after return.
2015-05-19 22:36:51 +02:00
Stephen Kelly
c42f0e2b3e
cmMakefile: Remove redundant conditions.
...
This container is never empty.
2015-05-19 22:36:51 +02:00
Stephen Kelly
bb1e8c3adf
cmMakefile: Remove Print() debugging facilities.
...
They don't print things that are important in the modern implementation.
2015-05-19 22:36:50 +02:00
Stephen Kelly
1363bff83a
cmMakefile: Remove duplicate variable initialization.
2015-05-19 22:36:50 +02:00
Stephen Kelly
5b7ff35c4d
cmMakefile: Don't expect the VarStack iterator to support size().
2015-05-19 22:36:50 +02:00
Stephen Kelly
390bc3244f
cmMakefile: Remove redundant condition.
...
As this is called in the constructor, the definition will never be already
set.
2015-05-19 22:36:49 +02:00
Stephen Kelly
8ab1cce704
cmMakefile: Rename method to something more appropriate.
...
Allow the name to be used for something more-suitable.
2015-05-19 22:36:49 +02:00
Stephen Kelly
2dd5d42f52
cmMakefile: Make the public ReadListFile method take one param.
...
Make the existing method a private overload. All external callers
invoke the method with only one argument.
2015-05-19 22:36:49 +02:00
Stephen Kelly
f3e6a336f2
cmMakefile: Remove CurrentListFile member.
...
It is never read externally. The CollapseFullPath removed in this commit
is a repeat of a similar call inside ReadListFile.
2015-05-19 22:36:48 +02:00
Stephen Kelly
6b9e647239
cmMakefile: Port CurrentListFile clients to GetDefinition.
...
There is no need to store this as a member variable.
2015-05-19 22:36:48 +02:00
Brad King
0cbc69b9ea
Merge topic 'minor-cleanups'
...
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.
2015-05-19 11:09:36 -04:00
Brad King
93acb504c0
Merge topic 'clean-up-makefile-generators'
...
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.
2015-05-19 11:09:31 -04:00
Brad King
2d1d8af9b1
Merge topic 'clean-up-cmDefinitions'
...
f170985e
cmDefinitions: Make the ClosureKeys method static.
98c5c903
cmDefinitions: Centralize knowledge of iterator type.
7872201b
cmDefinitions: Remove internal MakeClosure method.
2015-05-19 11:09:28 -04:00
Brad King
aa68f2e4c9
Merge topic 'fix-function-missing-endforeach'
...
3a656065
Fix assertion failure on unmatched foreach in function (#15572 )
2015-05-19 11:09:21 -04:00
Stephen Kelly
61d52e6e77
cmListFileBacktrace: Hide the context-stack implementation detail.
...
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.
2015-05-18 23:56:00 +02:00
Stephen Kelly
e96b5d14f9
cmListFileContext: Implement LessThanComparable.
...
Move wrapping existing code from cmMakefile, and simplify the
implementation there.
2015-05-18 23:55:43 +02:00
Stephen Kelly
7eb0dfa062
cmMakefile: Use std::set::insert API to simplify CMP0054 handling.
2015-05-18 23:55:43 +02:00
Stephen Kelly
f9785e0cb6
cmMakefile: Simplify CMP0054 handling.
2015-05-18 23:55:43 +02:00
Stephen Kelly
e17b5e4262
cmMakefile: Add access to the top-level execution context.
...
This is cheaper than getting the whole backtrace, and the cmListFileBacktrace
will not always be composed of cmListFileContext objects.
2015-05-18 23:55:41 +02:00