GenEx: Test early determination of AND and OR
It should be possible for example to do this: "$<AND:${FOO},$<BOOL:${TGT}>,$<BOOL:$<TARGET_PROPERTY:${TGT},PROP>" such that it works simliarly to the C code: if (foo && tgt && tgt->prop()) { } The example of generator expression code is a little bit contrived as it could be written other ways with the same functionality. Nevertheless, as these cases already work and are intentional, test for them.
This commit is contained in:
parent
982905c0d2
commit
4bacff7a4c
|
@ -14,6 +14,9 @@ add_custom_target(check ALL
|
|||
-Dtest_and_1=$<AND:1>
|
||||
-Dtest_and_1_0=$<AND:1,0>
|
||||
-Dtest_and_1_1=$<AND:1,1>
|
||||
# Ordinarily, the 'invalidcontent' would cause an error, but
|
||||
# the '0' makes the AND abort early.
|
||||
-Dtest_and_0_invalidcontent=$<AND:0,invalidcontent>
|
||||
-Dtest_config_0=$<CONFIG:$<CONFIGURATION>x>
|
||||
-Dtest_config_1=$<CONFIG:$<CONFIGURATION>>
|
||||
-Dtest_not_0=$<NOT:0>
|
||||
|
@ -24,6 +27,7 @@ add_custom_target(check ALL
|
|||
-Dtest_or_1=$<OR:1>
|
||||
-Dtest_or_1_0=$<OR:1,0>
|
||||
-Dtest_or_1_1=$<OR:1,1>
|
||||
-Dtest_or_1_invalidcontent=$<OR:1,invalidcontent>
|
||||
-Dtest_bool_notfound=$<BOOL:NOTFOUND>
|
||||
-Dtest_bool_foo_notfound=$<BOOL:Foo-NOTFOUND>
|
||||
-Dtest_bool_true=$<BOOL:True>
|
||||
|
|
|
@ -15,6 +15,7 @@ check(test_and_0_1 "0")
|
|||
check(test_and_1 "1")
|
||||
check(test_and_1_0 "0")
|
||||
check(test_and_1_1 "1")
|
||||
check(test_and_0_invalidcontent "0")
|
||||
check(test_config_0 "0")
|
||||
check(test_config_1 "1")
|
||||
check(test_not_0 "1")
|
||||
|
@ -25,6 +26,7 @@ check(test_or_0_1 "1")
|
|||
check(test_or_1 "1")
|
||||
check(test_or_1_0 "1")
|
||||
check(test_or_1_1 "1")
|
||||
check(test_or_1_invalidcontent "1")
|
||||
check(test_bool_notfound "0")
|
||||
check(test_bool_foo_notfound "0")
|
||||
check(test_bool_true "1")
|
||||
|
|
|
@ -39,6 +39,15 @@ CMake Error at BadAND.cmake:1 \(add_custom_target\):
|
|||
|
||||
\$<AND:nothing>
|
||||
|
||||
Parameters to \$<AND> must resolve to either '0' or '1'.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
+
|
||||
CMake Error at BadAND.cmake:1 \(add_custom_target\):
|
||||
Error evaluating generator expression:
|
||||
|
||||
\$<AND:1,nothing>
|
||||
|
||||
Parameters to \$<AND> must resolve to either '0' or '1'.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
|
|
|
@ -4,4 +4,5 @@ add_custom_target(check ALL COMMAND check
|
|||
$<AND:,>
|
||||
$<AND:01>
|
||||
$<AND:nothing>
|
||||
$<AND:1,nothing>
|
||||
VERBATIM)
|
||||
|
|
|
@ -39,6 +39,15 @@ CMake Error at BadOR.cmake:1 \(add_custom_target\):
|
|||
|
||||
\$<OR:nothing>
|
||||
|
||||
Parameters to \$<OR> must resolve to either '0' or '1'.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
+
|
||||
CMake Error at BadOR.cmake:1 \(add_custom_target\):
|
||||
Error evaluating generator expression:
|
||||
|
||||
\$<OR:0,nothing>
|
||||
|
||||
Parameters to \$<OR> must resolve to either '0' or '1'.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
|
|
|
@ -4,4 +4,5 @@ add_custom_target(check ALL COMMAND check
|
|||
$<OR:,>
|
||||
$<OR:01>
|
||||
$<OR:nothing>
|
||||
$<OR:0,nothing>
|
||||
VERBATIM)
|
||||
|
|
Loading…
Reference in New Issue