cmake_minimum_required (VERSION 2.8.8) project(GeneratorExpression CXX) add_custom_target(check-part1 ALL COMMAND ${CMAKE_COMMAND} -Dtest_0=$<0:nothing> -Dtest_0_with_comma=$<0:-Wl,--no-undefined> -Dtest_1=$<1:content> -Dtest_1_with_comma=$<1:-Wl,--no-undefined> -Dconfig=$ -Dtest_and_0=$ -Dtest_and_0_0=$ -Dtest_and_0_1=$ -Dtest_and_1=$ -Dtest_and_1_0=$ -Dtest_and_1_1=$ # Ordinarily, the 'invalidcontent' would cause an error, but # the '0' makes the AND abort early. -Dtest_and_0_invalidcontent=$ -Dtest_config_0=$x> -Dtest_config_1=$> -Dtest_config_debug=$$$ -Dtest_config_release=$$$ -Dtest_config_relwithdebinfo=$$$ -Dtest_config_minsizerel=$$$ -Dtest_not_0=$ -Dtest_not_1=$ -Dtest_or_0=$ -Dtest_or_0_0=$ -Dtest_or_0_1=$ -Dtest_or_1=$ -Dtest_or_1_0=$ -Dtest_or_1_1=$ -Dtest_or_1_invalidcontent=$ -Dtest_bool_notfound=$ -Dtest_bool_foo_notfound=$ -Dtest_bool_true=$ -Dtest_bool_false=$ -Dtest_bool_on=$ -Dtest_bool_off=$ -Dtest_bool_no=$ -Dtest_bool_n=$ -Dtest_bool_empty=$ -Dtest_strequal_yes_yes=$ -Dtest_strequal_yes_yes_cs=$ -Dtest_strequal_yes_no=$ -Dtest_strequal_no_yes=$ -Dtest_strequal_angle_r=$,$> -Dtest_strequal_comma=$,$> -Dtest_strequal_semicolon=$,$> -Dtest_strequal_angle_r_comma=$,$> -Dtest_strequal_both_empty=$ -Dtest_strequal_one_empty=$ -Dtest_angle_r=$ -Dtest_comma=$ -Dtest_semicolon=$ -Dtest_colons_1=$<1::> -Dtest_colons_2=$<1:::> -Dtest_colons_3=$<1:Qt5::Core> -Dtest_colons_4=$<1:C:\\CMake> -Dtest_colons_5=$<1:C:/CMake> -P ${CMAKE_CURRENT_SOURCE_DIR}/check-part1.cmake COMMAND ${CMAKE_COMMAND} -E echo "check done (part 1 of 2)" VERBATIM ) add_library(empty1 empty.cpp) target_include_directories(empty1 PUBLIC /empty1/public) target_include_directories(empty1 PRIVATE /empty1/private) add_library(empty2 empty.cpp) target_include_directories(empty2 PUBLIC /empty2/public) add_library(empty3 empty.cpp) target_include_directories(empty3 PUBLIC /empty3/public) target_include_directories(empty3 PRIVATE /empty3/private) add_library(empty4 empty.cpp) target_include_directories(empty4 PUBLIC /empty4/public) target_link_libraries(empty1 LINK_PUBLIC empty2) target_link_libraries(empty2 LINK_PUBLIC empty3 empty4) target_link_libraries(empty3 LINK_PUBLIC empty2 empty4) add_library(empty5 empty.cpp) target_include_directories(empty5 PRIVATE /empty5/private1 /empty5/private2) add_custom_target(check-part2 ALL COMMAND ${CMAKE_COMMAND} -Dtest_incomplete_1=$< -Dtest_incomplete_2=$ -Dtest_incomplete_6= -Dtest_incomplete_7=$thing -Dtest_incomplete_14=$<$ -Dtest_incomplete_15=$ -Dtest_incomplete_18=$<1:some,thing -Dtest_incomplete_19=$<1:some,thing$ -Dtest_incomplete_20=$ -Dtest_incomplete_21=$ -Dtest_build_interface=$ -Dtest_install_interface=$ -Dtest_target_name_1=$ -Dtest_target_name_2=$ -Dtest_target_includes1=$ -Dtest_target_includes2=$ -Dtest_target_includes3=$ -Dtest_target_includes4=$ -Dtest_target_includes5=$ -Dtest_target_includes6=$ -Dtest_target_includes7=$ -Dtest_target_includes8=$ -Dtest_arbitrary_content_comma_1=$<1:a,> -Dtest_arbitrary_content_comma_2=$<1:,a> -Dtest_arbitrary_content_comma_3=$<1:a,,> -Dtest_arbitrary_content_comma_4=$<1:,> -Dtest_arbitrary_content_comma_5=$<1:,,> -Dtest_arbitrary_content_comma_6=$<1:,,,> -Dtest_arbitrary_content_comma_7=$<1:,,a> -Dtest_arbitrary_content_comma_8=$<1:a,,b> -Dtest_arbitrary_content_comma_9=$<1:a,,b,,> -Dtest_arbitrary_content_comma_10=$<1:,,a,,b,,> -P ${CMAKE_CURRENT_SOURCE_DIR}/check-part2.cmake COMMAND ${CMAKE_COMMAND} -E echo "check done (part 2 of 2)" VERBATIM )