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(