summaryrefslogtreecommitdiffstats
path: root/Tests/Framework
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-04-05 17:45:08 (GMT)
committerBrad King <brad.king@kitware.com>2021-04-05 17:45:08 (GMT)
commitf9f59fb0b201987c218579e1310cc62a05df5694 (patch)
tree95da5b35a4d16a2b25639fa9ceedd717f0f2d7ff /Tests/Framework
parent30959aec8f1347ac2098f85824fe6777dae627b5 (diff)
parent0913499f69463c94cc16ed437721e88148e131a8 (diff)
downloadCMake-f9f59fb0b201987c218579e1310cc62a05df5694.zip
CMake-f9f59fb0b201987c218579e1310cc62a05df5694.tar.gz
CMake-f9f59fb0b201987c218579e1310cc62a05df5694.tar.bz2
Merge branch 'release-3.19' into backport-3.19-rel-file-table
Diffstat (limited to 'Tests/Framework')
-rw-r--r--Tests/Framework/CMakeLists.txt26
-rw-r--r--Tests/Framework/External/CMakeLists.txt5
-rw-r--r--Tests/Framework/External/external.c4
-rw-r--r--Tests/Framework/space.c7
-rw-r--r--Tests/Framework/useExternal.c6
-rw-r--r--Tests/Framework/use_space.c8
6 files changed, 56 insertions, 0 deletions
diff --git a/Tests/Framework/CMakeLists.txt b/Tests/Framework/CMakeLists.txt
index a313c2c..aabf6b4 100644
--- a/Tests/Framework/CMakeLists.txt
+++ b/Tests/Framework/CMakeLists.txt
@@ -83,4 +83,30 @@ if(NOT XCODE OR NOT XCODE_VERSION VERSION_LESS 5)
target_link_libraries(barStatic fooStatic)
endif()
+if(XCODE)
+ add_library(space SHARED space.c)
+ set_target_properties(space PROPERTIES
+ FRAMEWORK TRUE
+ OUTPUT_NAME "space space"
+ )
+ add_executable(use_space use_space.c)
+ target_link_libraries(use_space PRIVATE space)
+endif()
+
include(CPack)
+
+if(APPLE)
+ set(ExternalFramework_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/External")
+ file(REMOVE_RECURSE "${ExternalFramework_INSTALL_DIR}")
+
+ include(ExternalProject)
+ ExternalProject_Add(ExternalFramework
+ SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/External"
+ INSTALL_DIR "${ExternalFramework_INSTALL_DIR}"
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ )
+
+ add_executable(useExternal useExternal.c)
+ target_link_libraries(useExternal PRIVATE "${ExternalFramework_INSTALL_DIR}/lib/External.framework")
+ add_dependencies(useExternal ExternalFramework)
+endif()
diff --git a/Tests/Framework/External/CMakeLists.txt b/Tests/Framework/External/CMakeLists.txt
new file mode 100644
index 0000000..b9128fd
--- /dev/null
+++ b/Tests/Framework/External/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 3.19)
+project(ExternalFramework C)
+add_library(External SHARED external.c)
+set_property(TARGET External PROPERTY FRAMEWORK 1)
+install(TARGETS External DESTINATION lib)
diff --git a/Tests/Framework/External/external.c b/Tests/Framework/External/external.c
new file mode 100644
index 0000000..8441e71
--- /dev/null
+++ b/Tests/Framework/External/external.c
@@ -0,0 +1,4 @@
+int external(void)
+{
+ return 0;
+}
diff --git a/Tests/Framework/space.c b/Tests/Framework/space.c
new file mode 100644
index 0000000..bf5b0c3
--- /dev/null
+++ b/Tests/Framework/space.c
@@ -0,0 +1,7 @@
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+ int space(void)
+{
+ return 0;
+}
diff --git a/Tests/Framework/useExternal.c b/Tests/Framework/useExternal.c
new file mode 100644
index 0000000..8494b15
--- /dev/null
+++ b/Tests/Framework/useExternal.c
@@ -0,0 +1,6 @@
+extern int external(void);
+
+int main(void)
+{
+ return external();
+}
diff --git a/Tests/Framework/use_space.c b/Tests/Framework/use_space.c
new file mode 100644
index 0000000..bb4893d
--- /dev/null
+++ b/Tests/Framework/use_space.c
@@ -0,0 +1,8 @@
+#ifdef _WIN32
+__declspec(dllimport)
+#endif
+ int space(void);
+int main(void)
+{
+ return space();
+}