Browse Source

InterfaceLibrary: Add test requiring MAP_IMPORTED_CONFIG whitelisting

The target properties with this prefix are whitelisted for
INTERFACE_LIBRARY targets.
Stephen Kelly 12 years ago
parent
commit
e7a111f094
2 changed files with 28 additions and 0 deletions
  1. 13 0
      Tests/InterfaceLibrary/CMakeLists.txt
  2. 15 0
      Tests/InterfaceLibrary/map_config.cpp

+ 13 - 0
Tests/InterfaceLibrary/CMakeLists.txt

@@ -29,3 +29,16 @@ target_link_libraries(iface_whitelist INTERFACE $<$<BOOL:$<TARGET_PROPERTY:CUSTO
 
 add_executable(exec_whitelist dummy.cpp)
 target_link_libraries(exec_whitelist iface_whitelist)
+
+add_library(iface_imported INTERFACE IMPORTED)
+set_property(TARGET iface_imported PROPERTY
+  INTERFACE_COMPILE_DEFINITIONS
+    $<$<CONFIG:SPECIAL>:SPECIAL_MODE>
+    $<$<CONFIG:Debug>:DEBUG_MODE>
+)
+set_property(TARGET iface_imported PROPERTY
+  MAP_IMPORTED_CONFIG_DEBUG SPECIAL
+)
+
+add_executable(map_config map_config.cpp)
+target_link_libraries(map_config iface_imported)

+ 15 - 0
Tests/InterfaceLibrary/map_config.cpp

@@ -0,0 +1,15 @@
+
+#ifdef DEBUG_MODE
+#ifndef SPECIAL_MODE
+#error Special configuration should be mapped to debug configuration.
+#endif
+#else
+#ifdef SPECIAL_MODE
+#error Special configuration should not be enabled if not debug configuration
+#endif
+#endif
+
+int main(int,char**)
+{
+  return 0;
+}