summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionEvaluator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* GenEx: Use case insensitive comparison for $<CONFIG:...>Stephen Kelly2012-11-051-1/+4
| | | | | This fixes a regression introduced by commit f1eacf0e (cmGeneratorExpression: Re-write for multi-stage evaluation).
* GexEx: Validate Target names and property names differently.Stephen Kelly2012-10-221-6/+11
| | | | | In the unit test, use the same IMPORTED_LOCATION trick that the ExportImport test uses.
* Attempt to fix the compile of cmake on Sun CC.Stephen Kelly2012-10-111-1/+4
| | | | | The problem may be that the reportError method is static, so make it non-static on that platform.
* GenEx: Don't use std::vector::at(int).Stephen Kelly2012-10-091-3/+3
| | | | It might not exist with GCC 2.9.
* GenEx: Ensure that the empty CONFIGURATION can be used conditionally.Stephen Kelly2012-10-091-5/+5
| | | | | The CONFIGURATION can not be manipulated at unit testing time, so this is not unit tested further.
* GenEx: Validate target and property names.Stephen Kelly2012-10-091-1/+46
| | | | They must be non-empty, and match a restrictive regexp.
* GenEx: Report actual target name not found, not "0" each time.Stephen Kelly2012-10-091-2/+3
|
* GenEx: Return after error reported.Stephen Kelly2012-10-091-0/+1
|
* Merge topic 'generator-expression-target-properties'Brad King2012-09-281-13/+156
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 083de7e Process generator expressions in the COMPILE_DEFINITIONS target property. 08cb4fa Process generator expressions in the INCLUDE_DIRECTORIES property. 0ef091d Early return if there is no target. eb250cd Add a self-reference check for target properties. 7e80747 Add API to check that dependent target properties form a DAG. 239ac84 Add a generator expression for target properties. e028381 Extend the generator expression language with more logic. b8e61d6 Refactor GetCompileDefinitions a bit. 2c2b25b Return a std::string from GetCompileDefinitions. b7e48e0 Add an AppendDefines std::string overload. 9a16087 Convert paths in INCLUDE_DIRECTORIES property to Unix slashes. 4557c8d Don't prepend a path before generator expressions in include_directories. c6abc41 Add include guard for cmGeneratorExpression. 0ff4e3f Port remaining code to GetCompileDefinitions(). f178d53 Fix indentation in the code blocks generator.
| * Add a self-reference check for target properties.Stephen Kelly2012-09-281-1/+16
| | | | | | | | | | | | | | | | | | | | Prevent constructs like: ... INCLUDE_DIRECTORIES "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>" Indirect self-references (cycles) are also prevented here, but indirect generator expression references of any kind are not possible yet anyway.
| * Add API to check that dependent target properties form a DAG.Stephen Kelly2012-09-281-19/+36
| | | | | | | | | | | | Initially this will only be used to check for self-references, but can be extended to check for cycles when chaining properties of other targets.
| * Add a generator expression for target properties.Stephen Kelly2012-09-281-0/+43
| | | | | | | | | | | | | | | | There are two overloads, so that it can use the operational target when a target property is being evaluated, and a target can alternatively be specified by name. At this point, the generators don't chain. That comes later.
| * Extend the generator expression language with more logic.Stephen Kelly2012-09-281-0/+68
| | | | | | | | | | | | | | Generator expressions for comparing strings, evaluating strings as booleans, and for creating literal right-angle-brackets and commas are added. Those may be needed in some cases where they appear in literals.
* | Fix the regular expression validator for target names.Stephen Kelly2012-09-201-1/+1
|/ | | | | Regression introduced by f1eacf0e07759b57d100dbf5d83c70e4028bcb54. Target names have different valid contents to config names.
* cmGeneratorExpression: Re-write for multi-stage evaluationStephen Kelly2012-09-181-0/+568
The expressions may be parsed and then cached and evaluated multiple times. They are evaluated lazily so that literals such as ',' can be treated as universal parameter separators, and can be processed from results without appearing literally, and without interfering with the parsing/evaluation of the entire expression.