From f76d810d433756d181bcddbb2c972f401625d8b0 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 14 Jul 2013 11:44:21 +0000 Subject: [PATCH] [CMAKE] - Do not allow add_delay_importlibs to be called on static libraries svn path=/trunk/; revision=59481 --- reactos/cmake/gcc.cmake | 10 +++++++--- reactos/cmake/msvc.cmake | 14 +++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/reactos/cmake/gcc.cmake b/reactos/cmake/gcc.cmake index 6559071f1ac..a74cd77c01f 100644 --- a/reactos/cmake/gcc.cmake +++ b/reactos/cmake/gcc.cmake @@ -211,11 +211,15 @@ function(set_module_type_toolchain MODULE TYPE) endif() endfunction() -function(add_delay_importlibs MODULE) +function(add_delay_importlibs _module) + get_target_property(_module_type ${_module} TYPE) + if(_module_type STREQUAL "STATIC_LIBRARY") + message(FATAL_ERROR "Cannot add delay imports to a static library") + endif() foreach(LIB ${ARGN}) - target_link_libraries(${MODULE} lib${LIB}_delayed) + target_link_libraries(${_module} lib${LIB}_delayed) endforeach() - target_link_libraries(${MODULE} delayimp) + target_link_libraries(${_module} delayimp) endfunction() if(NOT ARCH STREQUAL "i386") diff --git a/reactos/cmake/msvc.cmake b/reactos/cmake/msvc.cmake index 0258ed5b6dc..8a6821be04b 100644 --- a/reactos/cmake/msvc.cmake +++ b/reactos/cmake/msvc.cmake @@ -128,13 +128,17 @@ endfunction() #define those for having real libraries set(CMAKE_IMPLIB_CREATE_STATIC_LIBRARY "LINK /LIB /NOLOGO /OUT: ") set(CMAKE_STUB_ASM_COMPILE_OBJECT " /Cp /Fo /c /Ta ") -macro(add_delay_importlibs MODULE) +function(add_delay_importlibs _module) + get_target_property(_module_type ${_module} TYPE) + if(_module_type STREQUAL "STATIC_LIBRARY") + message(FATAL_ERROR "Cannot add delay imports to a static library") + endif() foreach(LIB ${ARGN}) - add_target_link_flags(${MODULE} "/DELAYLOAD:${LIB}.dll") - target_link_libraries(${MODULE} lib${LIB}) + add_target_link_flags(${_module} "/DELAYLOAD:${LIB}.dll") + target_link_libraries(${_module} lib${LIB}) endforeach() - target_link_libraries(${MODULE} delayimp) -endmacro() + target_link_libraries(${_module} delayimp) +endfunction() function(generate_import_lib _libname _dllname _spec_file) -- 2.17.1