Merge topic 'vs-framework-references'
[kiteware-cmake.git] / Tests / ComplexOneConfig / VarTests.cmake
blob42afd19eacb52d4035ed365840b6189e87ab5a86
2 # Test SET
4 set (ZERO_VAR 0)
5 set (ZERO_VAR_AND_INDENTED 0)
6 set (ZERO_VAR2 0)
8 if(ZERO_VAR)
9   add_definitions(-DSHOULD_NOT_BE_DEFINED)
10 else()
11   add_definitions(-DSHOULD_BE_DEFINED)
12 endif()
14 set(ONE_VAR 1)
15 set(ONE_VAR_AND_INDENTED 1)
16 set(ONE_VAR2 1)
17 set(STRING_VAR "CMake is great" CACHE STRING "test a cache variable")
20 # Test VARIABLE_REQUIRES
22 variable_requires(ONE_VAR
23                   ONE_VAR_IS_DEFINED ONE_VAR)
26 # Test various IF/ELSE combinations
28 if(NOT ZERO_VAR)
29   add_definitions(-DSHOULD_BE_DEFINED_NOT)
30 else()
31   add_definitions(-DSHOULD_NOT_BE_DEFINED_NOT)
32 endif()
34 if(NOT ONE_VAR)
35   add_definitions(-DSHOULD_NOT_BE_DEFINED_NOT2)
36 else()
37   add_definitions(-DSHOULD_BE_DEFINED_NOT2)
38 endif()
40 if(ONE_VAR AND ONE_VAR2)
41   add_definitions(-DSHOULD_BE_DEFINED_AND)
42 else()
43   add_definitions(-DSHOULD_NOT_BE_DEFINED_AND)
44 endif()
46 if(ONE_VAR AND ZERO_VAR)
47   add_definitions(-DSHOULD_NOT_BE_DEFINED_AND2)
48 else()
49   add_definitions(-DSHOULD_BE_DEFINED_AND2)
50 endif()
52 if(ZERO_VAR OR ONE_VAR2)
53   add_definitions(-DSHOULD_BE_DEFINED_OR)
54 else()
55   add_definitions(-DSHOULD_NOT_BE_DEFINED_OR)
56 endif()
58 if(ZERO_VAR OR ZERO_VAR2)
59   add_definitions(-DSHOULD_NOT_BE_DEFINED_OR2)
60 else()
61   add_definitions(-DSHOULD_BE_DEFINED_OR2)
62 endif()
64 if(STRING_VAR MATCHES "^CMake")
65   add_definitions(-DSHOULD_BE_DEFINED_MATCHES)
66 else()
67   add_definitions(-DSHOULD_NOT_BE_DEFINED_MATCHES)
68 endif()
70 if(STRING_VAR MATCHES "^foo")
71   add_definitions(-DSHOULD_NOT_BE_DEFINED_MATCHES2)
72 else()
73   add_definitions(-DSHOULD_BE_DEFINED_MATCHES2)
74 endif()
76 if(COMMAND "IF")
77   add_definitions(-DSHOULD_BE_DEFINED_COMMAND)
78 else()
79   add_definitions(-DSHOULD_NOT_BE_DEFINED_COMMAND)
80 endif()
82 if(COMMAND "ROQUEFORT")
83   add_definitions(-DSHOULD_NOT_BE_DEFINED_COMMAND2)
84 else()
85   add_definitions(-DSHOULD_BE_DEFINED_COMMAND2)
86 endif()
88 if (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake)
89   add_definitions(-DSHOULD_BE_DEFINED_EXISTS)
90 else()
91   add_definitions(-DSHOULD_NOT_BE_DEFINED_EXISTS)
92 endif ()
94 if (EXISTS ${Complex_SOURCE_DIR}/roquefort.txt)
95   add_definitions(-DSHOULD_NOT_BE_DEFINED_EXISTS2)
96 else()
97   add_definitions(-DSHOULD_BE_DEFINED_EXISTS2)
98 endif ()
100 if (IS_DIRECTORY ${Complex_SOURCE_DIR})
101   add_definitions(-DSHOULD_BE_DEFINED_IS_DIRECTORY)
102 endif ()
104 if (NOT IS_DIRECTORY ${Complex_SOURCE_DIR}/VarTests.cmake)
105   add_definitions(-DSHOULD_BE_DEFINED_IS_DIRECTORY2)
106 endif ()
108 set (SNUM1_VAR "1")
109 set (SNUM2_VAR "2")
110 set (SNUM3_VAR "1")
113 if (SNUM1_VAR LESS SNUM2_VAR)
114   add_definitions(-DSHOULD_BE_DEFINED_LESS)
115 else ()
116   add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS)
117 endif ()
119 if (SNUM2_VAR LESS SNUM1_VAR)
120   add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS2)
121 else ()
122   add_definitions(-DSHOULD_BE_DEFINED_LESS2)
123 endif ()
125 if (SNUM2_VAR GREATER SNUM1_VAR)
126   add_definitions(-DSHOULD_BE_DEFINED_GREATER)
127 else ()
128   add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER)
129 endif ()
131 if (SNUM1_VAR GREATER SNUM2_VAR)
132   add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER2)
133 else ()
134   add_definitions(-DSHOULD_BE_DEFINED_GREATER2)
135 endif ()
137 if (SNUM2_VAR EQUAL SNUM1_VAR)
138   add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
139 else ()
140   add_definitions(-DSHOULD_BE_DEFINED_EQUAL)
141 endif ()
143 if (SNUM3_VAR EQUAL SNUM1_VAR)
144   add_definitions(-DSHOULD_BE_DEFINED_EQUAL)
145 else ()
146   add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
147 endif ()
149 if (SNUM1_VAR LESS_EQUAL SNUM2_VAR)
150   add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL)
151 else ()
152   add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL)
153 endif ()
155 if (SNUM2_VAR LESS_EQUAL SNUM1_VAR)
156   add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL2)
157 else ()
158   add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL2)
159 endif ()
161 if (SNUM1_VAR LESS_EQUAL SNUM3_VAR)
162   add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL3)
163 else ()
164   add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL3)
165 endif ()
167 if (SNUM2_VAR GREATER_EQUAL SNUM1_VAR)
168   add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL)
169 else ()
170   add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL)
171 endif ()
173 if (SNUM1_VAR GREATER_EQUAL SNUM2_VAR)
174   add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL2)
175 else ()
176   add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL2)
177 endif ()
179 if (SNUM1_VAR GREATER_EQUAL SNUM3_VAR)
180   add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL3)
181 else ()
182   add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL3)
183 endif ()
185 set (SSTR1_VAR "abc")
186 set (SSTR2_VAR "bcd")
188 if (SSTR1_VAR STRLESS SSTR2_VAR)
189   add_definitions(-DSHOULD_BE_DEFINED_STRLESS)
190 else ()
191   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS)
192 endif ()
194 if (SSTR2_VAR STRLESS SSTR1_VAR)
195   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS2)
196 else ()
197   add_definitions(-DSHOULD_BE_DEFINED_STRLESS2)
198 endif ()
200 if (SSTR2_VAR STRGREATER SSTR1_VAR)
201   add_definitions(-DSHOULD_BE_DEFINED_STRGREATER)
202 else ()
203   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER)
204 endif ()
206 if (SSTR1_VAR STRGREATER SSTR2_VAR)
207   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER2)
208 else ()
209   add_definitions(-DSHOULD_BE_DEFINED_STRGREATER2)
210 endif ()
212 if (SSTR1_VAR STRLESS_EQUAL SSTR2_VAR)
213   add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL)
214 else ()
215   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL)
216 endif ()
218 if (SSTR2_VAR STRLESS_EQUAL SSTR1_VAR)
219   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2)
220 else ()
221   add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL2)
222 endif ()
224 if (SSTR1_VAR STRLESS_EQUAL SSTR1_VAR)
225   add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL3)
226 else ()
227   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3)
228 endif ()
230 if (SSTR2_VAR STRGREATER_EQUAL SSTR1_VAR)
231   add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL)
232 else ()
233   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL)
234 endif ()
236 if (SSTR1_VAR STRGREATER_EQUAL SSTR2_VAR)
237   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2)
238 else ()
239   add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL2)
240 endif ()
242 if (SSTR1_VAR STRGREATER_EQUAL SSTR1_VAR)
243   add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL3)
244 else ()
245   add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3)
246 endif ()
249 # Test FOREACH
251 foreach (INDEX 1 2)
252   set(FOREACH_VAR${INDEX} "VALUE${INDEX}")
253 endforeach()
255 set(FOREACH_CONCAT "")
256 foreach (INDEX a;b;c;d;e;f;g)
257   string(APPEND FOREACH_CONCAT "${INDEX}")
258 endforeach()