[ros-diffs] [akhaldi] 52178: [CMAKE] * Add delay importlib creation support.

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Fri Jun 10 20:44:49 UTC 2011


Author: akhaldi
Date: Fri Jun 10 20:44:47 2011
New Revision: 52178

URL: http://svn.reactos.org/svn/reactos?rev=52178&view=rev
Log:
[CMAKE]
* Add delay importlib creation support.

Modified:
    trunk/reactos/gcc.cmake
    trunk/reactos/msc.cmake

Modified: trunk/reactos/gcc.cmake
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/gcc.cmake?rev=52178&r1=52177&r2=52178&view=diff
==============================================================================
--- trunk/reactos/gcc.cmake [iso-8859-1] (original)
+++ trunk/reactos/gcc.cmake [iso-8859-1] Fri Jun 10 20:44:47 2011
@@ -230,6 +230,14 @@
     endforeach()
 endmacro()
 
+macro(add_delay_importlibs MODULE)
+    foreach(LIB ${ARGN})
+        target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}_delayed.a)
+        add_dependencies(${MODULE} lib${LIB}_delayed)
+    endforeach()
+    target_link_libraries(${MODULE} delayimp)
+endmacro()
+
 if(NOT ARCH MATCHES i386)
     set(DECO_OPTION "-@")
 endif()
@@ -250,10 +258,18 @@
 
     if (${_extension} STREQUAL ".spec")
 
+        # Normal importlib creation
         add_custom_command(
             OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a
             COMMAND native-spec2def -n=${_name}${_suffix} -a=${ARCH2} -d=${CMAKE_CURRENT_BINARY_DIR}/${_name}_implib.def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file}
             COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_BINARY_DIR}/${_name}_implib.def --kill-at --output-lib=${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a
+            DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file})
+
+        # Delayed importlib creation
+        add_custom_command(
+            OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_delayed.a
+            COMMAND native-spec2def -n=${_name}${_suffix} -a=${ARCH2} -d=${CMAKE_CURRENT_BINARY_DIR}/${_name}_delayed_implib.def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file}
+            COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_BINARY_DIR}/${_name}_delayed_implib.def --kill-at --output-delaylib ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_delayed.a
             DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file})
 
     elseif(${_extension} STREQUAL ".def")
@@ -262,13 +278,22 @@
             OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a
             COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file} --kill-at --output-lib=${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a
             DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file})
+        add_custom_command(
+            OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_delayed.a
+            COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file} --kill-at --output-delaylib ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_delayed.a
+            DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file})
     else()
         message(FATAL_ERROR "Unsupported exports file extension: ${_extension}")
     endif()
 
+    # Normal importlib target
     add_custom_target(
         lib${_name}
         DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a)
+    # Delayed importlib target
+    add_custom_target(
+        lib${_name}_delayed
+        DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_delayed.a)
 
 endmacro()
 

Modified: trunk/reactos/msc.cmake
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/msc.cmake?rev=52178&r1=52177&r2=52178&view=diff
==============================================================================
--- trunk/reactos/msc.cmake [iso-8859-1] (original)
+++ trunk/reactos/msc.cmake [iso-8859-1] Fri Jun 10 20:44:47 2011
@@ -173,6 +173,10 @@
     endforeach()
 endmacro()
 
+macro(add_delay_importlibs MODULE)
+# TODO
+endmacro()
+
 macro(spec2def _dllname _spec_file)
     get_filename_component(_file ${_spec_file} NAME_WE)
     add_custom_command(




More information about the Ros-diffs mailing list