1
0
Эх сурвалжийг харах

Test generated module .def files

Teach the ModuleDefinition test to cover the case that a .def file is
generated by a custom command.
Brad King 13 жил өмнө
parent
commit
89987c2102

+ 9 - 1
Tests/ModuleDefinition/CMakeLists.txt

@@ -4,6 +4,14 @@ project(ModuleDefinition C)
 # Test .def file source recognition for DLLs.
 add_library(example_dll SHARED example_dll.c example_dll.def)
 
+# Test generated .def file.
+add_custom_command(OUTPUT example_dll_gen.def
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/example_dll_gen.def.in
+  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/example_dll_gen.def.in
+                                   ${CMAKE_CURRENT_BINARY_DIR}/example_dll_gen.def
+  )
+add_library(example_dll_gen SHARED example_dll_gen.c example_dll_gen.def)
+
 # Test /DEF:<file> flag recognition for VS.
 if(MSVC OR "${CMAKE_C_COMPILER_ID}" MATCHES "^(Intel)$")
   add_library(example_dll_2 SHARED example_dll_2.c)
@@ -16,7 +24,7 @@ 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})
+target_link_libraries(example_exe example_dll example_dll_gen ${example_dll_2})
 
 # Test linking to the executable.
 add_library(example_mod_1 MODULE example_mod_1.c)

+ 1 - 0
Tests/ModuleDefinition/example_dll_gen.c

@@ -0,0 +1 @@
+int example_dll_gen_function(void) { return 0; }

+ 2 - 0
Tests/ModuleDefinition/example_dll_gen.def.in

@@ -0,0 +1,2 @@
+EXPORTS
+example_dll_gen_function

+ 2 - 0
Tests/ModuleDefinition/example_exe.c

@@ -1,4 +1,5 @@
 extern int __declspec(dllimport) example_dll_function(void);
+extern int __declspec(dllimport) example_dll_gen_function(void);
 #ifdef EXAMPLE_DLL_2
 extern int __declspec(dllimport) example_dll_2_function(void);
 #endif
@@ -7,6 +8,7 @@ int main(void)
 {
   return
     example_dll_function() +
+    example_dll_gen_function() +
 #ifdef EXAMPLE_DLL_2
     example_dll_2_function() +
 #endif