diff --git a/docs/maintainers/vcpkg_common_definitions.md b/docs/maintainers/vcpkg_common_definitions.md index 2e1037af5f50bc..b96dd3cbc5e56e 100644 --- a/docs/maintainers/vcpkg_common_definitions.md +++ b/docs/maintainers/vcpkg_common_definitions.md @@ -10,6 +10,8 @@ VCPKG_HOST_IS_ with being one of the following: VCPKG_HOST_PATH_SEPARATOR Host specific path separator (USAGE: "${VCPKG_HOST_PATH_SEPARATOR}"; only use and pass variables with VCPKG_HOST_PATH_SEPARATOR within "") VCPKG_HOST_EXECUTABLE_SUFFIX executable suffix of the host VCPKG_TARGET_EXECUTABLE_SUFFIX executable suffix of the target +VCPKG_HOST_BUNDLE_SUFFIX bundle suffix of the host +VCPKG_TARGET_BUNDLE_SUFFIX bundle suffix of the target VCPKG_TARGET_STATIC_LIBRARY_PREFIX static library prefix for target (same as CMAKE_STATIC_LIBRARY_PREFIX) VCPKG_TARGET_STATIC_LIBRARY_SUFFIX static library suffix for target (same as CMAKE_STATIC_LIBRARY_SUFFIX) VCPKG_TARGET_SHARED_LIBRARY_PREFIX shared library prefix for target (same as CMAKE_SHARED_LIBRARY_PREFIX) diff --git a/scripts/cmake/vcpkg_common_definitions.cmake b/scripts/cmake/vcpkg_common_definitions.cmake index e53d9396354171..40c8183f1bbb0c 100644 --- a/scripts/cmake/vcpkg_common_definitions.cmake +++ b/scripts/cmake/vcpkg_common_definitions.cmake @@ -9,6 +9,8 @@ VCPKG_HOST_IS_ with being one of the following: VCPKG_HOST_PATH_SEPARATOR Host specific path separator (USAGE: "${VCPKG_HOST_PATH_SEPARATOR}"; only use and pass variables with VCPKG_HOST_PATH_SEPARATOR within "") VCPKG_HOST_EXECUTABLE_SUFFIX executable suffix of the host VCPKG_TARGET_EXECUTABLE_SUFFIX executable suffix of the target +VCPKG_HOST_BUNDLE_SUFFIX bundle suffix of the host +VCPKG_TARGET_BUNDLE_SUFFIX bundle suffix of the target VCPKG_TARGET_STATIC_LIBRARY_PREFIX static library prefix for target (same as CMAKE_STATIC_LIBRARY_PREFIX) VCPKG_TARGET_STATIC_LIBRARY_SUFFIX static library suffix for target (same as CMAKE_STATIC_LIBRARY_SUFFIX) VCPKG_TARGET_SHARED_LIBRARY_PREFIX shared library prefix for target (same as CMAKE_SHARED_LIBRARY_PREFIX) @@ -88,6 +90,19 @@ else() set(VCPKG_TARGET_EXECUTABLE_SUFFIX "") endif() +#Helper variables to identify bundles on host/target +if(VCPKG_HOST_IS_OSX) + set(VCPKG_HOST_BUNDLE_SUFFIX ".app") +else() + set(VCPKG_HOST_BUNDLE_SUFFIX "") +endif() + +if(VCPKG_TARGET_IS_OSX) + set(VCPKG_TARGET_BUNDLE_SUFFIX ".app") +else() + set(VCPKG_TARGET_BUNDLE_SUFFIX "") +endif() + #Helper variables for libraries if(VCPKG_TARGET_IS_MINGW) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") diff --git a/scripts/cmake/vcpkg_copy_tools.cmake b/scripts/cmake/vcpkg_copy_tools.cmake index ef3259840ccf02..af4a457ffee24d 100644 --- a/scripts/cmake/vcpkg_copy_tools.cmake +++ b/scripts/cmake/vcpkg_copy_tools.cmake @@ -58,6 +58,14 @@ function(vcpkg_copy_tools) set(tool_pdb "${arg_SEARCH_DIR}/${tool_name}.pdb") if(EXISTS "${tool_path}") file(COPY "${tool_path}" DESTINATION "${arg_DESTINATION}") + elseif(NOT "${VCPKG_TARGET_BUNDLE_SUFFIX}" STREQUAL "" AND NOT "${VCPKG_TARGET_BUNDLE_SUFFIX}" STREQUAL "${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + set(bundle_path "${arg_SEARCH_DIR}/${tool_name}${VCPKG_TARGET_BUNDLE_SUFFIX}") + if(EXISTS "${bundle_path}") + file(COPY "${bundle_path}" DESTINATION "${arg_DESTINATION}") + else() + message(FATAL_ERROR "Couldn't find tool \"${tool_name}\": + neither \"${tool_path}\" nor \"${bundle_path}\" exists") + endif() else() message(FATAL_ERROR "Couldn't find tool \"${tool_name}\": \"${tool_path}\" does not exist")