summaryrefslogtreecommitdiffstats
path: root/Tests/ModuleDefinition/CMakeLists.txt
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-09-29 20:39:43 (GMT)
committerBrad King <brad.king@kitware.com>2009-09-29 20:39:43 (GMT)
commit0db2c8505e3236c37d500c2d4afb9efbc675fdfc (patch)
treececdd7a7075376df272cb0c7d083a49ff399319a /Tests/ModuleDefinition/CMakeLists.txt
parent024d05adada5b9deaac84f0f4df8beed273c972a (diff)
downloadCMake-0db2c8505e3236c37d500c2d4afb9efbc675fdfc.zip
CMake-0db2c8505e3236c37d500c2d4afb9efbc675fdfc.tar.gz
CMake-0db2c8505e3236c37d500c2d4afb9efbc675fdfc.tar.bz2
Test use of module .def files for MS tools
This adds a "ModuleDefinition" test enabled when using MSVC tools. It checks that .def files can be used to export .dll and .exe symbols and create corresponding .lib files that can be linked. See issue #9613.
Diffstat (limited to 'Tests/ModuleDefinition/CMakeLists.txt')
-rw-r--r--Tests/ModuleDefinition/CMakeLists.txt22
1 files changed, 22 insertions, 0 deletions
diff --git a/Tests/ModuleDefinition/CMakeLists.txt b/Tests/ModuleDefinition/CMakeLists.txt
new file mode 100644
index 0000000..0cef0c7
--- /dev/null
+++ b/Tests/ModuleDefinition/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 2.6)
+project(ModuleDefinition C)
+
+# Test .def file source recognition for DLLs.
+add_library(example_dll SHARED example_dll.c example_dll.def)
+
+# Test /DEF:<file> flag recognition for VS.
+if(MSVC)
+ add_library(example_dll_2 SHARED example_dll_2.c)
+ set_property(TARGET example_dll_2 PROPERTY LINK_FLAGS
+ /DEF:"${ModuleDefinition_SOURCE_DIR}/example_dll_2.def")
+ set(example_dll_2 example_dll_2)
+endif()
+
+# Test .def file source recognition for EXEs.
+add_executable(example_exe example_exe.c example_exe.def)
+set_property(TARGET example_exe PROPERTY ENABLE_EXPORTS 1)
+target_link_libraries(example_exe example_dll ${example_dll_2})
+
+# Test linking to the executable.
+add_library(example_mod_1 MODULE example_mod_1.c)
+target_link_libraries(example_mod_1 example_exe example_dll ${example_dll_2})