From 0a41fb2dfa6b0714da83e00aa3802302c7ec7fb4 Mon Sep 17 00:00:00 2001 From: Sander Cox Date: Tue, 13 Oct 2020 23:40:16 +0200 Subject: [PATCH] [vcpkg] VCPKG_APPINSTALL_DEPS install dependencies on install #1653 (#13011) Co-authored-by: Robert Schumacher --- scripts/buildsystems/vcpkg.cmake | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 1092bc9446..00e6645fa5 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -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}/$\" + -installedDir \"${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$:/debug>/bin\" + -OutVariable out)") + endforeach() + endif() +endfunction() + if(NOT DEFINED VCPKG_OVERRIDE_FIND_PACKAGE_NAME) set(VCPKG_OVERRIDE_FIND_PACKAGE_NAME find_package) endif()