mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-20 13:07:55 +08:00
48 lines
1.9 KiB
CMake
48 lines
1.9 KiB
CMake
#[===[.md:
|
|
# vcpkg_copy_tool_dependencies
|
|
|
|
Copy all DLL dependencies of built tools into the tool folder.
|
|
|
|
## Usage
|
|
```cmake
|
|
vcpkg_copy_tool_dependencies(<${CURRENT_PACKAGES_DIR}/tools/${PORT}>)
|
|
```
|
|
## Parameters
|
|
The path to the directory containing the tools.
|
|
|
|
## Notes
|
|
This command should always be called by portfiles after they have finished rearranging the binary output, if they have any tools.
|
|
|
|
## Examples
|
|
|
|
* [glib](https://github.com/Microsoft/vcpkg/blob/master/ports/glib/portfile.cmake)
|
|
* [fltk](https://github.com/Microsoft/vcpkg/blob/master/ports/fltk/portfile.cmake)
|
|
#]===]
|
|
|
|
function(vcpkg_copy_tool_dependencies TOOL_DIR)
|
|
if (VCPKG_TARGET_IS_WINDOWS)
|
|
find_program(PWSH_EXE pwsh)
|
|
if (NOT PWSH_EXE)
|
|
if(UNIX AND NOT CYGWIN)
|
|
message(FATAL_ERROR "Could not find PowerShell Core; install PowerShell Core as described here: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux")
|
|
endif()
|
|
message(FATAL_ERROR "Could not find PowerShell Core; please open an issue to report this.")
|
|
endif()
|
|
macro(search_for_dependencies PATH_TO_SEARCH)
|
|
file(GLOB TOOLS "${TOOL_DIR}/*.exe" "${TOOL_DIR}/*.dll" "${TOOL_DIR}/*.pyd")
|
|
foreach(TOOL IN LISTS TOOLS)
|
|
vcpkg_execute_required_process(
|
|
COMMAND "${PWSH_EXE}" -noprofile -executionpolicy Bypass -nologo
|
|
-file "${SCRIPTS}/buildsystems/msbuild/applocal.ps1"
|
|
-targetBinary "${TOOL}"
|
|
-installedDir "${PATH_TO_SEARCH}"
|
|
WORKING_DIRECTORY "${VCPKG_ROOT_DIR}"
|
|
LOGNAME copy-tool-dependencies
|
|
)
|
|
endforeach()
|
|
endmacro()
|
|
search_for_dependencies("${CURRENT_PACKAGES_DIR}/bin")
|
|
search_for_dependencies("${CURRENT_INSTALLED_DIR}/bin")
|
|
endif()
|
|
endfunction()
|