[CMAKE] Allow overriding the .dll extension for delay imports in MSVC builds.

Fixes delay-importing winspool.drv.
This commit is contained in:
Thomas Faber 2017-12-31 13:08:39 +01:00
parent 2b4d5c5cff
commit b20280a0f9
No known key found for this signature in database
GPG key ID: 076E7C3D44720826
4 changed files with 11 additions and 5 deletions

View file

@ -326,7 +326,8 @@ function(add_delay_importlibs _module)
message(FATAL_ERROR "Cannot add delay imports to a static library")
endif()
foreach(_lib ${ARGN})
target_link_libraries(${_module} lib${_lib}_delayed)
get_filename_component(_basename "${_lib}" NAME_WE)
target_link_libraries(${_module} lib${_basename}_delayed)
endforeach()
target_link_libraries(${_module} delayimp)
endfunction()

View file

@ -336,8 +336,13 @@ function(add_delay_importlibs _module)
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})
get_filename_component(_basename "${_lib}" NAME_WE)
get_filename_component(_ext "${_lib}" EXT)
if(NOT _ext)
set(_ext ".dll")
endif()
add_target_link_flags(${_module} "/DELAYLOAD:${_basename}${_ext}")
target_link_libraries(${_module} "lib${_basename}")
endforeach()
target_link_libraries(${_module} delayimp)
endfunction()