diff --git a/reactos/cmake/msvc.cmake b/reactos/cmake/msvc.cmake index ba9d118a2c8..42ce7567402 100644 --- a/reactos/cmake/msvc.cmake +++ b/reactos/cmake/msvc.cmake @@ -177,8 +177,12 @@ function(add_importlib_target _exports_file) endfunction() macro(add_delay_importlibs MODULE) - # TODO. For now forward to normal import libs - add_importlibs(${MODULE} ${ARGN}) + foreach(LIB ${ARGN}) + add_linkerflag(${MODULE} "/DELAYLOAD:${LIB}.dll") + target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.LIB) + add_dependencies(${MODULE} lib${LIB}) + endforeach() + target_link_libraries(${MODULE} delayimp) endmacro() function(spec2def _dllname _spec_file) diff --git a/reactos/dll/win32/rpcrt4/CMakeLists.txt b/reactos/dll/win32/rpcrt4/CMakeLists.txt index 6f77eddca46..e9c1175fd44 100644 --- a/reactos/dll/win32/rpcrt4/CMakeLists.txt +++ b/reactos/dll/win32/rpcrt4/CMakeLists.txt @@ -1,12 +1,6 @@ add_rpc_files(client epm.idl) -# HACK!!!!!! -if(MSVC) - set(CMAKE_C_COMPILE_OBJECT " /nologo /Fo /Fd -c ") - set_source_files_properties(rpc_transport.c PROPERTIES COMPILE_FLAGS "/link /DELAYLOAD:wininet.dll") -endif() - list(APPEND SOURCE cproxy.c cpsf.c @@ -43,7 +37,7 @@ add_definitions( -D_RPCRT4_ -DCOM_NO_WINDOWS_H -DMSWMSG) - + include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) spec2def(rpcrt4.dll rpcrt4.spec) @@ -56,16 +50,9 @@ target_link_libraries(rpcrt4 wine uuid ${PSEH_LIB}) - -if(NOT MSVC) - add_delay_importlibs(rpcrt4 wininet) -else() - add_importlibs(rpcrt4 wininet) - add_linkerflag(rpcrt4 "/DELAYLOAD:wininet.dll") - target_link_libraries(rpcrt4 delayimp) -endif() - add_importlibs(rpcrt4 msvcrt user32 advapi32 secur32 iphlpapi ws2_32 kernel32 ntdll) +add_delay_importlibs(rpcrt4 wininet) + add_cd_file(TARGET rpcrt4 DESTINATION reactos/system32 FOR all) add_importlib_target(rpcrt4.spec)