Stephen Kelly
0f070dd3e1
cmMakefile: Decouple the container of cmDefinitions from scoping logic.
...
Maintain a Parent tree node for writing to in RaiseScope.
2015-08-23 17:08:53 +02:00
Stephen Kelly
25e04ddffe
cmDefinitions: Implement in terms of cmLinkedTree.
...
Store the definitions in a cmLinkedTree in the cmMakefile. This can
be moved to cmState and then the tree will provide snapshotting
possibilities. It will also make the Closure copy created at
the start of each cmMakefile unnecesarry.
2015-08-23 17:08:53 +02:00
Stephen Kelly
4bbe261cd3
cmMakefile: Extract InitializeVarScope method.
2015-08-23 17:08:53 +02:00
Stephen Kelly
73e4df99cb
cmGlobalGenerator: Store a container of cmMakefiles.
...
For use at configure-time.
2015-08-07 04:10:28 +02:00
Brad King
73e3de381d
Merge topic 'cmState-policies'
...
757a1f54
cmState: Move PolicyState from cmMakefile.
52dbe654
cmState: Record the end position of each directory.
65a5e0c6
cmLinkedTree: Add Clear API.
34835433
cmState: Add Type for policy scope.
af0de01c
cmState: Remove call stack parent tracking.
6ae8b30b
cmMakefile: Move policy barriers inside cmState scopes.
a5fc17b5
cmMakefile: Re-order policy entries and barriers.
0a01e6c6
cmState: Add Snapshot Type accessor.
f0005bb4
Tests: Verify generate-time policy scope behavior.
2015-08-06 09:38:24 -04:00
Brad King
370e2c6785
Merge topic 'refactor-evaluation-files'
...
12c3f248
cmGeneratorExpressionEvaluationFile: Require generator context.
6c0e9ee2
cmMakefile: Store EvaluationFiles.
2015-08-06 09:38:22 -04:00
Brad King
d356bced9b
Merge topic 'fix-missing-subdir-error'
...
c4d2f64f
add_subdirectory: Fix error message on missing CMakeLists.txt (#15680 )
2015-08-06 09:38:17 -04:00
Brad King
c4d2f64f3c
add_subdirectory: Fix error message on missing CMakeLists.txt ( #15680 )
...
Refactoring in commit v3.3.0-rc1~76^2 (cmMakefile: Handle CMP0014 before
configuring the generator, 2015-05-14) accidentally left the file name
"/CMakeLists.txt" in the error message. Remove it and add a test case.
2015-08-04 16:40:13 -04:00
Stephen Kelly
757a1f5408
cmState: Move PolicyState from cmMakefile.
...
Implement lexical scope checking in terms of the state stack instead
of barriers.
2015-08-02 08:56:57 +02:00
Stephen Kelly
348354333a
cmState: Add Type for policy scope.
2015-08-02 08:56:57 +02:00
Stephen Kelly
12c3f24827
cmGeneratorExpressionEvaluationFile: Require generator context.
...
Avoid storing a cmMakefile as a member, and evaluate in the context of
a cmLocalGenerator instead.
2015-08-01 13:07:11 +02:00
Stephen Kelly
6c0e9ee276
cmMakefile: Store EvaluationFiles.
...
Relieve the cmGlobalGenerator of this responsibility. Evaluate
the generator expressions in the context of the cmLocalGenerator.
2015-08-01 13:07:11 +02:00
Stephen Kelly
6ae8b30bf4
cmMakefile: Move policy barriers inside cmState scopes.
2015-08-01 07:18:34 +02:00
Stephen Kelly
a5fc17b509
cmMakefile: Re-order policy entries and barriers.
...
Make the barriers surround the entries.
2015-08-01 07:18:34 +02:00
Stephen Kelly
610572b7d2
cmMakefile: Simplify generate-time cmGeneratorTarget creation.
2015-07-29 10:43:33 -04:00
Stephen Kelly
34b902a5a6
cmMakefile: Move method out of line.
2015-07-29 10:43:31 -04:00
Brad King
aaa322a5cb
cmMakefile: Return target from all AddUtilityCommand signatures
2015-07-29 10:43:31 -04:00
Brad King
280dde34dd
Merge topic 'trace-expand'
...
594bafe5
cmake: add --trace-expand option
2015-07-27 09:31:22 -04:00
Brad King
cb21c548db
Merge topic 'policy-refactor'
...
8329fc01
cmPolicies: Replace unused include.
5447ca1a
cmMakefile: Remove CMP0001 handling to callers.
d0dcce15
cmMakefile: Simplify computation of ancient policy status.
658bfc5c
cmMakefile: Remove redundant condition from policy status computation.
f4a25874
cmMakefile: Inline internal policy status method.
3c45471c
cmPolicies: Enable RVO for internal method.
71e69fc9
cmPolicies: Store only state that users can set.
84e18056
cmMakefile: Convert recursion to loop.
2015-07-27 09:31:18 -04:00
Stephen Kelly
bbb507aebc
cmMakefile: Move the InitializeFromParent method
2015-07-25 14:53:06 +02:00
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