Imported Upstream version 2.8.11.2
[platform/upstream/cmake.git] / Tests / GeneratorExpression / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.8.8)
2 project(GeneratorExpression CXX)
3
4 add_custom_target(check-part1 ALL
5   COMMAND ${CMAKE_COMMAND}
6     -Dtest_0=$<0:nothing>
7     -Dtest_0_with_comma=$<0:-Wl,--no-undefined>
8     -Dtest_1=$<1:content>
9     -Dtest_1_with_comma=$<1:-Wl,--no-undefined>
10     -Dconfig=$<CONFIGURATION>
11     -Dtest_and_0=$<AND:0>
12     -Dtest_and_0_0=$<AND:0,0>
13     -Dtest_and_0_1=$<AND:0,1>
14     -Dtest_and_1=$<AND:1>
15     -Dtest_and_1_0=$<AND:1,0>
16     -Dtest_and_1_1=$<AND:1,1>
17     # Ordinarily, the 'invalidcontent' would cause an error, but
18     # the '0' makes the AND abort early.
19     -Dtest_and_0_invalidcontent=$<AND:0,invalidcontent>
20     -Dtest_config_0=$<CONFIG:$<CONFIGURATION>x>
21     -Dtest_config_1=$<CONFIG:$<CONFIGURATION>>
22     -Dtest_config_debug=$<CONFIG:Debug>$<CONFIG:DEBUG>$<CONFIG:DeBuG>
23     -Dtest_config_release=$<CONFIG:Release>$<CONFIG:RELEASE>$<CONFIG:ReLeAsE>
24     -Dtest_config_relwithdebinfo=$<CONFIG:RelWithDebInfo>$<CONFIG:RELWITHDEBINFO>$<CONFIG:relwithdebinfo>
25     -Dtest_config_minsizerel=$<CONFIG:MinSizeRel>$<CONFIG:MINSIZEREL>$<CONFIG:minsizerel>
26     -Dtest_not_0=$<NOT:0>
27     -Dtest_not_1=$<NOT:1>
28     -Dtest_or_0=$<OR:0>
29     -Dtest_or_0_0=$<OR:0,0>
30     -Dtest_or_0_1=$<OR:0,1>
31     -Dtest_or_1=$<OR:1>
32     -Dtest_or_1_0=$<OR:1,0>
33     -Dtest_or_1_1=$<OR:1,1>
34     -Dtest_or_1_invalidcontent=$<OR:1,invalidcontent>
35     -Dtest_bool_notfound=$<BOOL:NOTFOUND>
36     -Dtest_bool_foo_notfound=$<BOOL:Foo-NOTFOUND>
37     -Dtest_bool_true=$<BOOL:True>
38     -Dtest_bool_false=$<BOOL:False>
39     -Dtest_bool_on=$<BOOL:On>
40     -Dtest_bool_off=$<BOOL:Off>
41     -Dtest_bool_no=$<BOOL:No>
42     -Dtest_bool_n=$<BOOL:N>
43     -Dtest_bool_empty=$<BOOL:>
44     -Dtest_strequal_yes_yes=$<STREQUAL:Yes,Yes>
45     -Dtest_strequal_yes_yes_cs=$<STREQUAL:Yes,yes>
46     -Dtest_strequal_yes_no=$<STREQUAL:Yes,No>
47     -Dtest_strequal_no_yes=$<STREQUAL:No,Yes>
48     -Dtest_strequal_angle_r=$<STREQUAL:$<ANGLE-R>,$<ANGLE-R>>
49     -Dtest_strequal_comma=$<STREQUAL:$<COMMA>,$<COMMA>>
50     -Dtest_strequal_semicolon=$<STREQUAL:$<SEMICOLON>,$<SEMICOLON>>
51     -Dtest_strequal_angle_r_comma=$<STREQUAL:$<ANGLE-R>,$<COMMA>>
52     -Dtest_strequal_both_empty=$<STREQUAL:,>
53     -Dtest_strequal_one_empty=$<STREQUAL:something,>
54     -Dtest_angle_r=$<ANGLE-R>
55     -Dtest_comma=$<COMMA>
56     -Dtest_semicolon=$<SEMICOLON>
57     -Dtest_colons_1=$<1::>
58     -Dtest_colons_2=$<1:::>
59     -Dtest_colons_3=$<1:Qt5::Core>
60     -Dtest_colons_4=$<1:C:\\CMake>
61     -Dtest_colons_5=$<1:C:/CMake>
62     -P ${CMAKE_CURRENT_SOURCE_DIR}/check-part1.cmake
63   COMMAND ${CMAKE_COMMAND} -E echo "check done (part 1 of 2)"
64   VERBATIM
65   )
66
67 add_library(empty1 empty.cpp)
68 target_include_directories(empty1 PUBLIC /empty1/public)
69 target_include_directories(empty1 PRIVATE /empty1/private)
70
71 add_library(empty2 empty.cpp)
72 target_include_directories(empty2 PUBLIC /empty2/public)
73
74 add_library(empty3 empty.cpp)
75 target_include_directories(empty3 PUBLIC /empty3/public)
76 target_include_directories(empty3 PRIVATE /empty3/private)
77
78 add_library(empty4 empty.cpp)
79 target_include_directories(empty4 PUBLIC /empty4/public)
80
81 target_link_libraries(empty1 LINK_PUBLIC empty2)
82 target_link_libraries(empty2 LINK_PUBLIC empty3 empty4)
83 target_link_libraries(empty3 LINK_PUBLIC empty2 empty4)
84
85 add_library(empty5 empty.cpp)
86 target_include_directories(empty5 PRIVATE /empty5/private1 /empty5/private2)
87
88 add_custom_target(check-part2 ALL
89   COMMAND ${CMAKE_COMMAND}
90     -Dtest_incomplete_1=$<
91     -Dtest_incomplete_2=$<something
92     -Dtest_incomplete_3=$<something:
93     -Dtest_incomplete_4=$<something:,
94     -Dtest_incomplete_5=$something:,>
95     -Dtest_incomplete_6=<something:,>
96     -Dtest_incomplete_7=$<something::
97     -Dtest_incomplete_8=$<something:,
98     -Dtest_incomplete_9=$<something:,,
99     -Dtest_incomplete_10=$<something:,:
100     -Dtest_incomplete_11=$<something,,
101     -Dtest_incomplete_12=$<,,
102     -Dtest_incomplete_13=$<some$<1:special>thing
103     -Dtest_incomplete_14=$<$<ANGLE-R>
104     -Dtest_incomplete_15=$<some$<thing
105     -Dtest_incomplete_16=$<BOOL:something
106     -Dtest_incomplete_17=$<1:some$thing>
107     -Dtest_incomplete_18=$<1:some,thing
108     -Dtest_incomplete_19=$<1:some,thing$<ANGLE-R>
109     -Dtest_incomplete_20=$<CONFIGURATION$<ANGLE-R>
110     -Dtest_incomplete_21=$<BOOL:something$<ANGLE-R>
111     -Dtest_build_interface=$<BUILD_INTERFACE:build>
112     -Dtest_install_interface=$<INSTALL_INTERFACE:install>
113     -Dtest_target_name_1=$<TARGET_NAME:tgt,ok>
114     -Dtest_target_name_2=$<TARGET_NAME:tgt:ok>
115     -Dtest_target_includes1=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
116     -Dtest_target_includes2=$<TARGET_PROPERTY:empty2,INTERFACE_INCLUDE_DIRECTORIES>
117     -Dtest_target_includes3=$<TARGET_PROPERTY:empty3,INTERFACE_INCLUDE_DIRECTORIES>
118     -Dtest_target_includes4=$<TARGET_PROPERTY:empty1,INCLUDE_DIRECTORIES>
119     -Dtest_target_includes5=$<TARGET_PROPERTY:empty2,INCLUDE_DIRECTORIES>
120     -Dtest_target_includes6=$<TARGET_PROPERTY:empty3,INCLUDE_DIRECTORIES>
121     -Dtest_target_includes7=$<TARGET_PROPERTY:empty1,INTERFACE_INCLUDE_DIRECTORIES>
122     -Dtest_target_includes8=$<TARGET_PROPERTY:empty5,INCLUDE_DIRECTORIES>
123     -P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake
124   COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)"
125   VERBATIM
126   )