|
|
@@ -0,0 +1,32 @@
|
|
|
+cmake_minimum_required(VERSION 2.8.9)
|
|
|
+project(VSExcludeFromDefaultBuild)
|
|
|
+
|
|
|
+# First step is to clear all .exe files in output so that possible past
|
|
|
+# failures of this test do not prevent it from succeeding.
|
|
|
+add_custom_target(ClearExes ALL
|
|
|
+ COMMAND "${CMAKE_COMMAND}"
|
|
|
+ -Ddir=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
|
|
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/ClearExes.cmake
|
|
|
+ VERBATIM)
|
|
|
+
|
|
|
+# Make sure ClearExes is executed before other targets are built
|
|
|
+function(add_test_executable target)
|
|
|
+ add_executable("${target}" ${ARGN})
|
|
|
+ add_dependencies("${target}" ClearExes)
|
|
|
+endfunction()
|
|
|
+
|
|
|
+add_test_executable(DefaultBuilt main.c)
|
|
|
+
|
|
|
+add_test_executable(AlwaysBuilt main.c)
|
|
|
+set_target_properties(AlwaysBuilt PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD FALSE)
|
|
|
+
|
|
|
+add_test_executable(NeverBuilt main.c)
|
|
|
+set_target_properties(NeverBuilt PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD TRUE)
|
|
|
+
|
|
|
+foreach(config ${CMAKE_CONFIGURATION_TYPES})
|
|
|
+ string(TOUPPER ${config} Config)
|
|
|
+ add_test_executable(BuiltIn${config} main.c)
|
|
|
+ set_target_properties(BuiltIn${config} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD TRUE EXCLUDE_FROM_DEFAULT_BUILD_${Config} FALSE)
|
|
|
+ add_test_executable(ExcludedIn${config} main.c)
|
|
|
+ set_target_properties(ExcludedIn${config} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD_${Config} TRUE)
|
|
|
+endforeach()
|