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…
==============================================================================
--- 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…
==============================================================================
--- 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(