[vcpkg] VCPKG_APPINSTALL_DEPS install dependencies on install #1653 (#13011)

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
This commit is contained in:
Sander Cox 2020-10-13 23:40:16 +02:00 committed by GitHub
parent eaa2e3db0f
commit 0a41fb2dfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -443,6 +443,26 @@ function(add_library name)
endif()
endfunction()
# This is an experimental function to enable applocal install of dependencies as part of the `make install` process
# Arguments:
# TARGETS - a list of installed targets to have dependencies copied for
# DESTINATION - the runtime directory for those targets (usually `bin`)
function(x_vcpkg_install_local_dependencies)
if(_VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp")
# Parse command line
cmake_parse_arguments(__VCPKG_APPINSTALL "" "DESTINATION" "TARGETS" ${ARGN})
foreach(TARGET ${__VCPKG_APPINSTALL_TARGETS})
_install(CODE "message(\"-- Installing app dependencies for ${TARGET}...\")
execute_process(COMMAND
powershell -noprofile -executionpolicy Bypass -file \"${_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1\"
-targetBinary \"${__VCPKG_APPINSTALL_DESTINATION}/$<TARGET_FILE_NAME:${TARGET}>\"
-installedDir \"${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$<CONFIG:Debug>:/debug>/bin\"
-OutVariable out)")
endforeach()
endif()
endfunction()
if(NOT DEFINED VCPKG_OVERRIDE_FIND_PACKAGE_NAME)
set(VCPKG_OVERRIDE_FIND_PACKAGE_NAME find_package)
endif()