diff options
-rw-r--r-- | cmake/Functions.cmake | 25 | ||||
-rw-r--r-- | src/core/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/process/CMakeLists.txt | 3 |
3 files changed, 29 insertions, 0 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index 96ff575fa..59ee72799 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -327,6 +327,27 @@ function(add_gn_target_for_cmake_target gnTarget cmakeTarget ninjaTarget config ) endfunction() +function(copy_response_files gnTarget) + get_target_property(config ${gnTarget} CONFIG) + get_target_property(ninjaTarget ${gnTarget} NINJA_TARGET) + get_target_property(cmakeTarget ${gnTarget} CMAKE_TARGET) + list(REMOVE_ITEM ARGN ${gnTarget}) + foreach(rsp IN ITEMS ${ARGN}) + set(rsp_dst "CMakeFiles_${ninjaTarget}_${config}_${rsp}.rsp") + set(rsp_src "${${rsp}_rsp}") + add_custom_command( + OUTPUT ${PROJECT_BINARY_DIR}/${rsp_dst} + COMMAND ${CMAKE_COMMAND} -E copy ${rsp_src} ${PROJECT_BINARY_DIR}/${rsp_dst} + DEPENDS ${rsp_src} + ) + set(${rsp}_rsp ${rsp_dst} PARENT_SCOPE) + add_custom_target(${cmakeTarget}_${rsp}_copy_${config} + DEPENDS ${PROJECT_BINARY_DIR}/${rsp_dst} + ) + add_dependencies(${cmakeTarget} ${cmakeTarget}_${rsp}_copy_${config}) + endforeach() +endfunction() + function(extend_target_with_gn_target gnTarget buildDir) get_target_property(config ${gnTarget} CONFIG) get_target_property(ninjaTarget ${gnTarget} NINJA_TARGET) @@ -355,10 +376,14 @@ function(extend_target_with_gn_target gnTarget buildDir) ) endif() if(WIN32) + copy_response_files(${gnTarget} objects archives libs) target_link_options(${cmakeTarget} PRIVATE "$<$<CONFIG:${config}>:@${objects_rsp}>" "$<$<CONFIG:${config}>:@${archives_rsp}>" + "$<$<CONFIG:${config}>:@${libs_rsp}>" ) + # we need libs rsp also when linking process with sandbox lib + set_property(TARGET ${cmakeTarget} PROPERTY LIBS_RSP ${libs_rsp}) endif() endfunction() diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e4283e1d9..ffb327c2e 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -491,6 +491,7 @@ if(WIN32) add_custom_target(sandboxLibrary_${config} DEPENDS ${buildDir}/${config}/${arch}/QtWebEngineCoreSandbox.lib) add_dependencies(WebEngineCoreSandbox sandboxLibrary_${config}) + add_dependencies(WebEngineCoreSandbox WebEngineCore) endforeach() endif() diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt index 87adc0c88..9b515f1d9 100644 --- a/src/process/CMakeLists.txt +++ b/src/process/CMakeLists.txt @@ -17,6 +17,9 @@ if(WIN32) target_sources(${qtWebEngineProcessName} PRIVATE support_win.cpp) target_link_libraries(${qtWebEngineProcessName} PRIVATE WebEngineCoreSandbox) set_property(TARGET ${qtWebEngineProcessName} PROPERTY WIN32_EXECUTABLE TRUE) + # get libs rsp file, since cmake is not aware of PUBLIC libs for WebEngineCore + get_target_property(libs_rsp WebEngineCore LIBS_RSP) + target_link_options(${qtWebEngineProcessName} PRIVATE "@${libs_rsp}") endif() target_link_libraries(${qtWebEngineProcessName} |