Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / block / Workflows.cmake
1
2 set(VAR1 "OUTER1")
3 set(VAR2 "OUTER2")
4 set(VAR3 "OUTER3")
5
6 while (TRUE)
7   # create a block with a new scope for variables
8   block(SCOPE_FOR VARIABLES PROPAGATE VAR3)
9     set(VAR2 "INNER2" PARENT_SCOPE)
10     set(VAR3 "INNER3")
11     break()
12   endblock()
13 endwhile()
14
15 # check final values for variables
16 if(NOT DEFINED VAR1 OR NOT VAR1 STREQUAL "OUTER1")
17   message(SEND_ERROR "block/endblock: VAR1 has unexpected value: ${VAR1}")
18 endif()
19 if(NOT DEFINED VAR2 OR NOT VAR2 STREQUAL "INNER2")
20   message(SEND_ERROR "block/endblock: VAR2 has unexpected value: ${VAR2}")
21 endif()
22 if(NOT DEFINED VAR3 OR NOT VAR3 STREQUAL "INNER3")
23   message(SEND_ERROR "block/endblock: VAR3 has unexpected value: ${VAR3}")
24 endif()
25
26
27
28 set(VAR1 "OUTER1")
29 set(VAR2 "OUTER2")
30 set(VAR3 "OUTER3")
31
32 function (OUTER)
33   # create a block with a new scope for variables
34   block(SCOPE_FOR VARIABLES PROPAGATE VAR3)
35     set(VAR2 "INNER2" PARENT_SCOPE)
36     set(VAR3 "INNER3")
37     return()
38   endblock()
39   set(VAR1 "INNER1" PARENT_SCOPE)
40 endfunction()
41 outer()
42
43 # check final values for variables
44 if(NOT DEFINED VAR1 OR NOT VAR1 STREQUAL "OUTER1")
45   message(SEND_ERROR "block/endblock: VAR1 has unexpected value: ${VAR1}")
46 endif()
47 if(NOT DEFINED VAR2 OR NOT VAR2 STREQUAL "OUTER2")
48   message(SEND_ERROR "block/endblock: VAR2 has unexpected value: ${VAR2}")
49 endif()
50 if(NOT DEFINED VAR3 OR NOT VAR3 STREQUAL "OUTER3")
51   message(SEND_ERROR "block/endblock: VAR3 has unexpected value: ${VAR3}")
52 endif()
53
54
55
56 set(VAR1 "OUTER1")
57 set(VAR2 "OUTER2")
58 set(VAR3 "OUTER3")
59
60 foreach (id IN ITEMS 1 2 3)
61   # create a block with a new scope for variables
62   block(SCOPE_FOR VARIABLES PROPAGATE VAR${id})
63     set(VAR${id} "INNER${id}")
64     continue()
65     set(VAR${id} "BAD${id}")
66   endblock()
67 endforeach()
68
69 # check final values for variables
70 if(NOT DEFINED VAR1 OR NOT VAR1 STREQUAL "INNER1")
71   message(SEND_ERROR "block/endblock: VAR1 has unexpected value: ${VAR1}")
72 endif()
73 if(NOT DEFINED VAR2 OR NOT VAR2 STREQUAL "INNER2")
74   message(SEND_ERROR "block/endblock: VAR2 has unexpected value: ${VAR2}")
75 endif()
76 if(NOT DEFINED VAR3 OR NOT VAR3 STREQUAL "INNER3")
77   message(SEND_ERROR "block/endblock: VAR3 has unexpected value: ${VAR3}")
78 endif()