summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2021-09-23 21:05:03 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2021-09-24 15:29:54 (GMT)
commit354c1f5628bdc104c9b9cd0436dd4cfa585124ec (patch)
tree38639eb10060db952bc5e4716c29eff4d90e49e7 /Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake
parent7612abd52f192a13848a4d74191633a008892449 (diff)
downloadCMake-354c1f5628bdc104c9b9cd0436dd4cfa585124ec.zip
CMake-354c1f5628bdc104c9b9cd0436dd4cfa585124ec.tar.gz
CMake-354c1f5628bdc104c9b9cd0436dd4cfa585124ec.tar.bz2
Tests/RunCMake/Autogen: test CMP0111 behavior
On Windows, imported shared libraries which only have an `IMPORTED_IMPLIB` set fail if they are depended upon by a target using automoc. Add a test for the behavior of depending upon all imported target types from an automoc-using target.
Diffstat (limited to 'Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake')
-rw-r--r--Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake b/Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake
new file mode 100644
index 0000000..8fa6041
--- /dev/null
+++ b/Tests/RunCMake/Autogen/CMP0111-imported-target-prelude.cmake
@@ -0,0 +1,32 @@
+enable_language(CXX)
+
+find_package(Qt5 REQUIRED COMPONENTS Core)
+
+# Detect `-NOTFOUND` libraries at generate time.
+cmake_policy(SET CMP0111 NEW)
+
+add_executable(imported::executable IMPORTED)
+add_library(imported::shared SHARED IMPORTED)
+add_library(imported::static STATIC IMPORTED)
+add_library(imported::unknown UNKNOWN IMPORTED)
+add_library(imported::interface INTERFACE IMPORTED)
+add_library(imported::module MODULE IMPORTED)
+
+function (set_location target name loc)
+ set_property(TARGET "imported::${target}" PROPERTY
+ "IMPORTED_${name}" "${loc}")
+endfunction ()
+
+set(CMAKE_AUTOMOC 1)
+
+add_library(automoc
+ empty.cpp)
+target_link_libraries(automoc
+ PRIVATE
+ imported::shared
+ imported::static
+ imported::unknown
+ imported::interface)
+add_dependencies(automoc
+ imported::executable
+ imported::module)