From 6af7c99555a03235994bc6dfe495ad07369088c6 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 28 Aug 2018 23:19:08 -0700 Subject: [tbb] Add support for Linux and OSX [tbb] Fix installed cmake file. Add vcpkg_test_cmake() [tbb] Fix static non-windows builds [tbb] Fix find_package() on Windows --- ports/tbb/CMakeLists.txt | 18 +++++++ ports/tbb/CONTROL | 2 +- ports/tbb/portfile.cmake | 135 +++++++++++++++++++++++------------------------ ports/tbb/usage | 4 ++ 4 files changed, 88 insertions(+), 71 deletions(-) create mode 100644 ports/tbb/CMakeLists.txt create mode 100644 ports/tbb/usage diff --git a/ports/tbb/CMakeLists.txt b/ports/tbb/CMakeLists.txt new file mode 100644 index 000000000..cc1dd3933 --- /dev/null +++ b/ports/tbb/CMakeLists.txt @@ -0,0 +1,18 @@ +project(tbb CXX) + +file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*) +file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/src) + +include(${CMAKE_CURRENT_BINARY_DIR}/src/cmake/TBBBuild.cmake REQUIRED) +tbb_build(TBB_ROOT ${CMAKE_CURRENT_BINARY_DIR}/src MAKE_ARGS extra_inc=big_iron.inc) + +set(SUBDIR ${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build/tbb_cmake_build_subdir) +if(CMAKE_BUILD_TYPE STREQUAL "Release") + set(SUBDIR "${SUBDIR}_release") +else() + set(SUBDIR "${SUBDIR}_debug") +endif() + +file(GLOB OUTPUTS ${SUBDIR}/*.so.* ${SUBDIR}/*.so ${SUBDIR}/*.a ${SUBDIR}/*.dylib ${SUBDIR}/*.dylib.*) + +install(FILES ${OUTPUTS} DESTINATION lib) diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL index e70178a80..e87106dc3 100644 --- a/ports/tbb/CONTROL +++ b/ports/tbb/CONTROL @@ -1,3 +1,3 @@ Source: tbb -Version: 2018_U5 +Version: 2018_U5-4 Description: Intel's Threading Building Blocks. diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index 8a66fe2e3..ac47360f8 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -1,91 +1,86 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() -if (VCPKG_CRT_LINKAGE STREQUAL static) - message(FATAL_ERROR "TBB does not currently support static crt linkage") +include(vcpkg_common_functions) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() -include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 01org/tbb REF 2018_U5 SHA512 3e8d20276ccb1b50099f96b6cf968e3d0ada53caea1fa836ecb8652f1dca236fbbbf2c783e64ea2f761f7f21725064d19b72d176e35e4dc29706b8a30965153b - HEAD_REF tbb_2018) + HEAD_REF tbb_2018 +) -if(TRIPLET_SYSTEM_ARCH STREQUAL x86) - set(BUILD_ARCH Win32) -else() - set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) -endif() +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -set(TBB_MSBUILD_PROJECT_DIR ${SOURCE_PATH}/build/vs2013) +if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + ) -vcpkg_build_msbuild(PROJECT_PATH ${TBB_MSBUILD_PROJECT_DIR}/makefile.sln PLATFORM ${BUILD_ARCH}) + vcpkg_install_cmake() + + # Settings for TBBConfigForSource.cmake.in + set(TBB_LIB_EXT a) + set(TBB_LIB_PREFIX lib) +else() + if (VCPKG_CRT_LINKAGE STREQUAL static) + set(RELEASE_CONFIGURATION Release-MT) + set(DEBUG_CONFIGURATION Debug-MT) + else() + set(RELEASE_CONFIGURATION Release) + set(DEBUG_CONFIGURATION Debug) + endif() + + vcpkg_install_msbuild( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH build/vs2013/makefile.sln + RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION} + DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION} + ) + # Settings for TBBConfigForSource.cmake.in + set(TBB_LIB_EXT lib) + set(TBB_LIB_PREFIX) +endif() -# Installation -message(STATUS "Installing") file(COPY ${SOURCE_PATH}/include/tbb ${SOURCE_PATH}/include/serial DESTINATION ${CURRENT_PACKAGES_DIR}/include) -set(DEBUG_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Debug) -set(RELEASE_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Release) - -file(COPY - ${RELEASE_OUTPUT_PATH}/tbb.lib - ${RELEASE_OUTPUT_PATH}/tbbmalloc.lib - ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(COPY - ${DEBUG_OUTPUT_PATH}/tbb_debug.lib - ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.lib - ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - -file(COPY - ${RELEASE_OUTPUT_PATH}/tbb.dll - ${RELEASE_OUTPUT_PATH}/tbbmalloc.dll - ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/bin) -file(COPY - ${DEBUG_OUTPUT_PATH}/tbb_debug.dll - ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.dll - ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - -vcpkg_copy_pdbs() - -include(${SOURCE_PATH}/cmake/TBBMakeConfig.cmake) -tbb_make_config(TBB_ROOT ${CURRENT_PACKAGES_DIR} - CONFIG_DIR TBB_CONFIG_DIR # is set to ${CURRENT_PACKAGES_DIR}/cmake - SYSTEM_NAME "Windows" - CONFIG_FOR_SOURCE - TBB_RELEASE_DIR "\${_tbb_root}/bin" - TBB_DEBUG_DIR "\${_tbb_root}/debug/bin") - -file(COPY ${TBB_CONFIG_DIR}/TBBConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) -file(COPY ${TBB_CONFIG_DIR}/TBBConfigVersion.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) -file(REMOVE_RECURSE ${TBB_CONFIG_DIR}) +# Settings for TBBConfigForSource.cmake.in +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc) +else() + set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc tbbmalloc_proxy) +endif() +file(READ "${SOURCE_PATH}/include/tbb/tbb_stddef.h" _tbb_stddef) +string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}") +string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}") +string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}") +set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}") +set(TBB_RELEASE_DIR "\${_tbb_root}/lib") +set(TBB_DEBUG_DIR "\${_tbb_root}/debug/lib") -# make it work with our installation layout -file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake TBB_CONFIG_CMAKE) -string(REPLACE -"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" -"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH) -get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") +configure_file( + ${SOURCE_PATH}/cmake/templates/TBBConfigForSource.cmake.in + ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake + @ONLY +) +file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake _contents) string(REPLACE -"\${_tbb_root}/bin/\${_tbb_component}.lib" -"\${_tbb_root}/lib/\${_tbb_component}.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") -string(REPLACE -"\${_tbb_root}/debug/bin/\${_tbb_component}_debug.lib" -"\${_tbb_root}/debug/lib/\${_tbb_component}_debug.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${TBB_CONFIG_CMAKE}") - -message(STATUS "Installing done") + "get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" + "get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)\nget_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" + _contents + "${_contents}" +) +string(REPLACE "SHARED IMPORTED)" "UNKNOWN IMPORTED)" _contents "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${_contents}") # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) +file(COPY ${SOURCE_PATH}/LICENSE ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) file(RENAME ${CURRENT_PACKAGES_DIR}/share/tbb/LICENSE ${CURRENT_PACKAGES_DIR}/share/tbb/copyright) + +vcpkg_test_cmake(PACKAGE_NAME TBB) diff --git a/ports/tbb/usage b/ports/tbb/usage new file mode 100644 index 000000000..ecea9834c --- /dev/null +++ b/ports/tbb/usage @@ -0,0 +1,4 @@ +The package tbb provides CMake targets: + + find_package(TBB CONFIG REQUIRED) + target_link_libraries(main PRIVATE TBB::tbb) -- cgit v1.2.3 From d68cc287f994bc6505473a8264018f5abf5a5183 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Tue, 4 Sep 2018 19:20:46 -0400 Subject: [GraphicsMagick] bug-fix: image files won't load (#4215) * [GraphicsMagick] bug-fix: image files won't load GM (GraphicsMagick) was failing to load image files, notably PNG or JPEG images, as it was being compiled with support for 'GraphicsMagick Modules'. These are files with names specific to GM, and of the format, 'IM_*.dll'. vcpkg's install process was not setting these up. This patch makes sure that when GM is built, it embed's GM's own image-loading code into graphicsmagick.dll. * [vcpkg_extract_source_archive_ex] Add PATCHES argument * [openmesh] Use direct download instead of gitlab * [blaze] Use PATCHES argument * [graphicsmagick] Use vcpkg_extract_source_archive_ex --- ports/blaze/portfile.cmake | 4 - .../disable_graphicsmagick_modules.patch | 11 +++ ports/graphicsmagick/portfile.cmake | 28 ++++-- ports/openmesh/CONTROL | 2 +- ports/openmesh/portfile.cmake | 30 +++--- scripts/cmake/vcpkg_extract_source_archive.cmake | 104 ++++++++++++++++----- scripts/cmake/vcpkg_from_bitbucket.cmake | 32 +++++-- scripts/cmake/vcpkg_from_github.cmake | 74 ++++----------- scripts/cmake/vcpkg_from_gitlab.cmake | 81 +++++----------- 9 files changed, 189 insertions(+), 177 deletions(-) create mode 100644 ports/graphicsmagick/disable_graphicsmagick_modules.patch diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake index 53e845b70..a44808249 100644 --- a/ports/blaze/portfile.cmake +++ b/ports/blaze/portfile.cmake @@ -6,10 +6,6 @@ vcpkg_from_bitbucket( REF bbe39c81b68eb0d8647da703899e1ee4a82cdfd3 SHA512 84eb8226672d9d11d194d165e7aaa333a0d49ca090bb94472f19242e5f2ad0c3e08a30cdafe055cff51b210b603533f879800bd6784f3ffdb0d9eeca65d58b25 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES avoid-src-dir-generation.patch ) diff --git a/ports/graphicsmagick/disable_graphicsmagick_modules.patch b/ports/graphicsmagick/disable_graphicsmagick_modules.patch new file mode 100644 index 000000000..bfb91d0fd --- /dev/null +++ b/ports/graphicsmagick/disable_graphicsmagick_modules.patch @@ -0,0 +1,11 @@ +--- a/magick/studio.h 2018-06-23 14:13:49.191541000 -0400 ++++ b/magick/studio.h 2018-09-02 11:50:41.856753700 -0400 +@@ -414,7 +414,7 @@ + #endif + + #if defined(HasLTDL) || ( defined(MSWINDOWS) && defined(_DLL) ) +-# define SupportMagickModules ++//# define SupportMagickModules + #endif + + #if defined(_MAGICKMOD_) diff --git a/ports/graphicsmagick/portfile.cmake b/ports/graphicsmagick/portfile.cmake index 0c47813f6..c097c9e97 100644 --- a/ports/graphicsmagick/portfile.cmake +++ b/ports/graphicsmagick/portfile.cmake @@ -1,27 +1,35 @@ include(vcpkg_common_functions) set(GM_VERSION 1.3.30) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/graphicsmagick-${GM_VERSION}-windows-source) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/${GM_VERSION}/GraphicsMagick-${GM_VERSION}-windows-source.7z" FILENAME "GraphicsMagick-${GM_VERSION}-windows-source.7z" SHA512 9e4cfff57ae547f133e6208033213d3aa790cd8c95a061c101c63b8ae8896e7504d02f302efdd20ff24f72c07760a0a5e2b32e21fe454717ed1deb2edeef159c - ) -vcpkg_extract_source_archive(${ARCHIVE}) +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF "${GM_VERSION}" + PATCHES + # GM always requires a dynamic BZIP2. This patch makes this dependent if _DLL is defined + dynamic_bzip2.patch + + # Bake GM's own modules into the .dll itself. This fixes a bug whereby + # 'vcpkg install graphicsmagick' did not lead to a copy of GM that could + # load either PNG or JPEG files (due to missing GM Modules, with names + # matching "IM_*.DLL"). + disable_graphicsmagick_modules.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/magick_types.h DESTINATION ${SOURCE_PATH}/magick) -# GM always requires a dynamic BZIP2. This patch makes this dependent if _DLL is defined -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/dynamic_bzip2.patch) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS_DEBUG -DINSTALL_HEADERS=OFF + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF ) vcpkg_install_cmake() diff --git a/ports/openmesh/CONTROL b/ports/openmesh/CONTROL index b803484eb..cf502b2a2 100644 --- a/ports/openmesh/CONTROL +++ b/ports/openmesh/CONTROL @@ -1,3 +1,3 @@ Source: openmesh -Version: 6.3 +Version: 7.0 Description: A generic and efficient polygon mesh data structure diff --git a/ports/openmesh/portfile.cmake b/ports/openmesh/portfile.cmake index 26c167adb..7bfacfe0e 100644 --- a/ports/openmesh/portfile.cmake +++ b/ports/openmesh/portfile.cmake @@ -1,24 +1,18 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - include(vcpkg_common_functions) -vcpkg_from_gitlab( +set(VERSION 7.0) + +# Note: upstream GitLab instance at https://graphics.rwth-aachen.de:9000 often goes down +vcpkg_download_distfile(ARCHIVE + URLS "https://www.openmesh.org/media/Releases/${VERSION}/OpenMesh-${VERSION}.tar.gz" + FILENAME "OpenMesh-${VERSION}.tar.gz" + SHA512 29280c8fe7208d39bd923c4d0444a24463e36b95402e6a75f42adc27bc1b261df9113442f69e1001dc1a8b1198488069ffb049742dcf6eac6ac1ecf4f216fad8 +) + +vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH - GITLAB_URL "https://graphics.rwth-aachen.de:9000" - REPO "OpenMesh/OpenMesh" - REF "OpenMesh-7.0" - HEAD_REF "master" - SHA512 "70e414088c094199af31a8694fb91fa5f9b574b3cc86b30b3fb64d938e6a218f9f38d857c559f958276b01ec9263ef71cd4039444e50a8cb38e820243aac7956" + ARCHIVE "${ARCHIVE}" + REF "${VERSION}" ) vcpkg_configure_cmake( diff --git a/scripts/cmake/vcpkg_extract_source_archive.cmake b/scripts/cmake/vcpkg_extract_source_archive.cmake index 3aafd4ca4..b1e2110a7 100644 --- a/scripts/cmake/vcpkg_extract_source_archive.cmake +++ b/scripts/cmake/vcpkg_extract_source_archive.cmake @@ -29,25 +29,19 @@ ## * [msgpack](https://github.com/Microsoft/vcpkg/blob/master/ports/msgpack/portfile.cmake) include(vcpkg_execute_required_process) -function(vcpkg_extract_source_archive_ex) - cmake_parse_arguments(_vesae "" "ARCHIVE;WORKING_DIRECTORY" "" ${ARGN}) - - if(NOT _vesae_ARCHIVE) - message(FATAL_ERROR "Must specify ARCHIVE parameter to vcpkg_extract_source_archive_ex()") - endif() - - if(DEFINED _vesae_WORKING_DIRECTORY) - set(WORKING_DIRECTORY ${_vesae_WORKING_DIRECTORY}) +function(vcpkg_extract_source_archive ARCHIVE) + if(NOT ARGC EQUAL 2) + set(WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src") else() - set(WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src) + set(WORKING_DIRECTORY ${ARGV1}) endif() - get_filename_component(ARCHIVE_FILENAME ${_vesae_ARCHIVE} NAME) + get_filename_component(ARCHIVE_FILENAME ${ARCHIVE} NAME) if(NOT EXISTS ${WORKING_DIRECTORY}/${ARCHIVE_FILENAME}.extracted) - message(STATUS "Extracting source ${_vesae_ARCHIVE}") + message(STATUS "Extracting source ${ARCHIVE}") file(MAKE_DIRECTORY ${WORKING_DIRECTORY}) vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} -E tar xjf ${_vesae_ARCHIVE} + COMMAND ${CMAKE_COMMAND} -E tar xjf ${ARCHIVE} WORKING_DIRECTORY ${WORKING_DIRECTORY} LOGNAME extract ) @@ -55,13 +49,81 @@ function(vcpkg_extract_source_archive_ex) endif() endfunction() -function(vcpkg_extract_source_archive ARCHIVE) - if(NOT ARGC EQUAL 2) - vcpkg_extract_source_archive_ex(ARCHIVE ${ARCHIVE}) - else() - vcpkg_extract_source_archive_ex( - ARCHIVE ${ARCHIVE} - WORKING_DIRECTORY ${ARGV1} +function(vcpkg_extract_source_archive_ex) + cmake_parse_arguments(_vesae "NO_REMOVE_ONE_LEVEL" "OUT_SOURCE_PATH;ARCHIVE;REF;WORKING_DIRECTORY" "PATCHES" ${ARGN}) + + if(NOT _vesae_ARCHIVE) + message(FATAL_ERROR "Must specify ARCHIVE parameter to vcpkg_extract_source_archive_ex()") + endif() + + if(NOT DEFINED _vesae_OUT_SOURCE_PATH) + message(FATAL_ERROR "Must specify OUT_SOURCE_PATH parameter to vcpkg_extract_source_archive_ex()") + endif() + + if(NOT DEFINED _vesae_WORKING_DIRECTORY) + set(_vesae_WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src) + endif() + + if(NOT DEFINED _vesae_REF) + get_filename_component(_vesae_REF ${_vesae_ARCHIVE} NAME_WE) + endif() + + string(REPLACE "/" "-" SANITIZED_REF "${_vesae_REF}") + + # Take the last 10 chars of the REF + set(REF_MAX_LENGTH 10) + string(LENGTH ${SANITIZED_REF} REF_LENGTH) + math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) + if(FROM_REF LESS 0) + set(FROM_REF 0) + endif() + string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) + + # Hash the archive hash along with the patches. Take the first 10 chars of the hash + file(SHA512 ${ARCHIVE} PATCHSET_HASH) + foreach(PATCH IN LISTS _vesae_PATCHES) + get_filename_component(ABSOLUTE_PATCH "${PATCH}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") + file(SHA512 ${ABSOLUTE_PATCH} CURRENT_HASH) + string(APPEND PATCHSET_HASH ${CURRENT_HASH}) + endforeach() + + string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) + string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) + set(SOURCE_PATH "${_vesae_WORKING_DIRECTORY}/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") + + if(NOT EXISTS ${SOURCE_PATH}) + set(TEMP_DIR "${_vesae_WORKING_DIRECTORY}/TEMP") + file(REMOVE_RECURSE ${TEMP_DIR}) + vcpkg_extract_source_archive("${ARCHIVE}" "${TEMP_DIR}") + + if(_vesae_NO_REMOVE_ONE_LEVEL) + set(TEMP_SOURCE_PATH ${TEMP_DIR}) + else() + file(GLOB _ARCHIVE_FILES "${TEMP_DIR}/*") + list(LENGTH _ARCHIVE_FILES _NUM_ARCHIVE_FILES) + set(TEMP_SOURCE_PATH) + foreach(dir IN LISTS _ARCHIVE_FILES) + if (IS_DIRECTORY ${dir}) + set(TEMP_SOURCE_PATH "${dir}") + break() + endif() + endforeach() + + if(NOT _NUM_ARCHIVE_FILES EQUAL 2 OR NOT TEMP_SOURCE_PATH) + message(FATAL_ERROR "Could not unwrap top level directory from archive. Pass NO_REMOVE_ONE_LEVEL to disable this.") + endif() + endif() + + vcpkg_apply_patches( + SOURCE_PATH ${TEMP_SOURCE_PATH} + PATCHES ${_vesae_PATCHES} ) + + file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) + file(REMOVE_RECURSE ${TEMP_DIR}) endif() -endfunction() \ No newline at end of file + + set(${_vesae_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) + message(STATUS "Using source at ${SOURCE_PATH}") + return() +endfunction() diff --git a/scripts/cmake/vcpkg_from_bitbucket.cmake b/scripts/cmake/vcpkg_from_bitbucket.cmake index 7eaf550bb..5f23714ea 100644 --- a/scripts/cmake/vcpkg_from_bitbucket.cmake +++ b/scripts/cmake/vcpkg_from_bitbucket.cmake @@ -11,6 +11,7 @@ ## [REF ] ## [SHA512 <45d0d7f8cc350...>] ## [HEAD_REF ] +## [PATCHES ...] ## ) ## ``` ## @@ -40,6 +41,11 @@ ## ## For most projects, this should be `master`. The chosen branch should be one that is expected to be always buildable on all supported platforms. ## +## ### PATCHES +## A list of patches to be applied to the extracted sources. +## +## Relative paths are based on the port directory. +## ## ## Notes: ## At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present. ## @@ -50,7 +56,7 @@ ## * [blaze](https://github.com/Microsoft/vcpkg/blob/master/ports/blaze/portfile.cmake) function(vcpkg_from_bitbucket) set(oneValueArgs OUT_SOURCE_PATH REPO REF SHA512 HEAD_REF) - set(multipleValuesArgs) + set(multipleValuesArgs PATCHES) cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) if(NOT _vdud_OUT_SOURCE_PATH) @@ -123,8 +129,14 @@ function(vcpkg_from_bitbucket) SHA512 "${_vdud_SHA512}" FILENAME "${ORG_NAME}-${REPO_NAME}-${_vdud_REF}.tar.gz" ) - vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}") - set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src ${_version}) + + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${_vdud_REF}" + PATCHES ${_vdud_PATCHES} + ) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) return() endif() @@ -164,11 +176,6 @@ function(vcpkg_from_bitbucket) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" - ) - # Parse the github refs response with regex. # TODO: use some JSON swiss-army-knife utility instead. file(READ "${ARCHIVE_VERSION}" _contents) @@ -179,5 +186,12 @@ function(vcpkg_from_bitbucket) # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) - set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${_vdud_HEAD_REF}) + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${_vdud_HEAD_REF}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" + PATCHES ${_vdud_PATCHES} + ) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake index 33de8354d..48bfd828a 100644 --- a/scripts/cmake/vcpkg_from_github.cmake +++ b/scripts/cmake/vcpkg_from_github.cmake @@ -80,16 +80,16 @@ function(vcpkg_from_github) string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) macro(set_TEMP_SOURCE_PATH BASE BASEREF) - set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${BASEREF}") - if(NOT EXISTS ${TEMP_SOURCE_PATH}) - # Sometimes GitHub strips a leading 'v' off the REF. - string(REGEX REPLACE "^v" "" REF ${BASEREF}) - string(REPLACE "/" "-" REF ${REF}) - set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${REF}") + set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${BASEREF}") if(NOT EXISTS ${TEMP_SOURCE_PATH}) - message(FATAL_ERROR "Could not determine source path: '${BASE}/${REPO_NAME}-${BASEREF}' does not exist") + # Sometimes GitHub strips a leading 'v' off the REF. + string(REGEX REPLACE "^v" "" REF ${BASEREF}) + string(REPLACE "/" "-" REF ${REF}) + set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${REF}") + if(NOT EXISTS ${TEMP_SOURCE_PATH}) + message(FATAL_ERROR "Could not determine source path: '${BASE}/${REPO_NAME}-${BASEREF}' does not exist") + endif() endif() - endif() endmacro() if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF) @@ -111,44 +111,14 @@ function(vcpkg_from_github) FILENAME "${ORG_NAME}-${REPO_NAME}-${SANITIZED_REF}.tar.gz" ) - # Take the last 10 chars of the REF - set(REF_MAX_LENGTH 10) - string(LENGTH ${SANITIZED_REF} REF_LENGTH) - math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) - if(FROM_REF LESS 0) - set(FROM_REF 0) - endif() - string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) - - # Hash the archive hash along with the patches. Take the first 10 chars of the hash - set(PATCHSET_HASH "${_vdud_SHA512}") - foreach(PATCH IN LISTS _vdud_PATCHES) - get_filename_component(ABSOLUTE_PATCH "${PATCH}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") - file(SHA512 ${ABSOLUTE_PATCH} CURRENT_HASH) - string(APPEND PATCHSET_HASH ${CURRENT_HASH}) - endforeach() - - string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) - string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) - set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") - - if(NOT EXISTS ${SOURCE_PATH}) - set(TEMP_DIR "${CURRENT_BUILDTREES_DIR}/src/TEMP") - file(REMOVE_RECURSE ${TEMP_DIR}) - vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY ${TEMP_DIR}) - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/TEMP ${SANITIZED_REF}) - - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} - PATCHES ${_vdud_PATCHES} - ) - - file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) - file(REMOVE_RECURSE ${TEMP_DIR}) - endif() + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${SANITIZED_REF}" + PATCHES ${_vdud_PATCHES} + ) set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) - message(STATUS "Using source at ${SOURCE_PATH}") return() endif() @@ -189,11 +159,6 @@ function(vcpkg_from_github) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" - ) - # Parse the github refs response with regex. # TODO: use some JSON swiss-army-knife utility instead. file(READ "${ARCHIVE_VERSION}" _contents) @@ -206,11 +171,12 @@ function(vcpkg_from_github) set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) endif() - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${SANITIZED_HEAD_REF}) - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${SANITIZED_HEAD_REF}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src/head PATCHES ${_vdud_PATCHES} ) - set(${_vdud_OUT_SOURCE_PATH} "${TEMP_SOURCE_PATH}" PARENT_SCOPE) - message(STATUS "Using source at ${TEMP_SOURCE_PATH}") + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_from_gitlab.cmake b/scripts/cmake/vcpkg_from_gitlab.cmake index 2f2198fd6..f13bc054c 100644 --- a/scripts/cmake/vcpkg_from_gitlab.cmake +++ b/scripts/cmake/vcpkg_from_gitlab.cmake @@ -11,6 +11,7 @@ ## [REF ] ## [SHA512 <45d0d7f8cc350...>] ## [HEAD_REF ] +## [PATCHES ...] ## ) ## ``` ## @@ -45,6 +46,11 @@ ## ## For most projects, this should be `master`. The chosen branch should be one that is expected to be always buildable on all supported platforms. ## +## ### PATCHES +## A list of patches to be applied to the extracted sources. +## +## Relative paths are based on the port directory. +## ## ## Notes: ## At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present. ## @@ -76,28 +82,14 @@ function(vcpkg_from_gitlab) message(FATAL_ERROR "At least one of REF and HEAD_REF must be specified.") endif() - string(REGEX REPLACE ".*/" "" REPO_NAME ${_vdud_REPO}) - string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) - - macro(set_TEMP_SOURCE_PATH BASE) - file(GLOB _ARCHIVE_FILES "${BASE}/${REPO_NAME}*") - foreach(dir ${_ARCHIVE_FILES}) - if (IS_DIRECTORY ${dir}) - list(APPEND _ARCHIVE_DIRS "${dir}") - endif() - endforeach() - list(LENGTH _ARCHIVE_DIRS _NUM_ARCHIVE_DIRS) - if(NOT 1 EQUAL ${_NUM_ARCHIVE_DIRS}) - message(FATAL_ERROR "Could not determine source path: There were ${_NUM_ARCHIVE_DIRS} directories extracted from the archive that start with the repo name.") - endif() - list(GET _ARCHIVE_DIRS 0 TEMP_SOURCE_PATH) - endmacro() - if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") set(VCPKG_USE_HEAD_VERSION OFF) endif() + string(REGEX REPLACE ".*/" "" REPO_NAME ${_vdud_REPO}) + string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) + # Handle --no-head scenarios if(NOT VCPKG_USE_HEAD_VERSION) if(NOT _vdud_REF) @@ -112,43 +104,14 @@ function(vcpkg_from_gitlab) FILENAME "${ORG_NAME}-${REPO_NAME}-${SANITIZED_REF}.tar.gz" ) - # Take the last 10 chars of the REF - set(REF_MAX_LENGTH 10) - string(LENGTH ${SANITIZED_REF} REF_LENGTH) - math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) - if(FROM_REF LESS 0) - set(FROM_REF 0) - endif() - string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) - - # Hash the archive hash along with the patches. Take the first 10 chars of the hash - set(PATCHSET_HASH "${_vdud_SHA512}") - foreach(PATCH IN LISTS _vdud_PATCHES) - file(SHA512 ${PATCH} CURRENT_HASH) - string(APPEND PATCHSET_HASH ${CURRENT_HASH}) - endforeach() - - string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) - string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) - set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") - - if(NOT EXISTS ${SOURCE_PATH}) - set(TEMP_DIR "${CURRENT_BUILDTREES_DIR}/src/TEMP") - file(REMOVE_RECURSE ${TEMP_DIR}) - vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY ${TEMP_DIR}) - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/TEMP ${SANITIZED_REF}) - - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} - PATCHES ${_vdud_PATCHES} - ) - - file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) - file(REMOVE_RECURSE ${TEMP_DIR}) - endif() + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${SANITIZED_REF}" + PATCHES ${_vdud_PATCHES} + ) set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) - return() endif() @@ -182,10 +145,6 @@ function(vcpkg_from_gitlab) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" - ) # There are issues with the Gitlab API project paths being URL-escaped, so we use git here to get the head revision execute_process(COMMAND ${GIT} ls-remote "${_vdud_GITLAB_URL}/${ORG_NAME}/${REPO_NAME}.git" "${_vdud_HEAD_REF}" @@ -199,10 +158,12 @@ function(vcpkg_from_gitlab) set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) endif() - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${SANITIZED_HEAD_REF}) - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${SANITIZED_HEAD_REF}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src/head PATCHES ${_vdud_PATCHES} ) - set(${_vdud_OUT_SOURCE_PATH} "${TEMP_SOURCE_PATH}" PARENT_SCOPE) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() -- cgit v1.2.3 From 3d73e3fac3b883e8c0568fab5c0d49596f38d085 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 4 Sep 2018 15:42:06 -0700 Subject: [cpprestsdk] Update to 2.10.6 --- ports/cpprestsdk/CONTROL | 2 +- ports/cpprestsdk/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL index f3053c7be..8a7d2aa06 100644 --- a/ports/cpprestsdk/CONTROL +++ b/ports/cpprestsdk/CONTROL @@ -1,5 +1,5 @@ Source: cpprestsdk -Version: 2.10.5 +Version: 2.10.6 Build-Depends: zlib, openssl (!uwp), boost-system (!uwp), boost-date-time (!uwp), boost-regex (!uwp), websocketpp (!uwp), boost-thread (!uwp&!windows), boost-filesystem (!uwp&!windows), boost-random (!uwp&!windows), boost-chrono (!uwp&!windows) Description: C++11 JSON, REST, and OAuth library The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake index b19bb8eb4..7b816fb79 100644 --- a/ports/cpprestsdk/portfile.cmake +++ b/ports/cpprestsdk/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/cpprestsdk - REF v2.10.5 - SHA512 7942185e0e1cd5080b57737887f44c12e706cfb6428e55762dcbad2fd2c557f25bd26abe25b6abd9769ab6c0cea564541e7e95dcaff53e609124dda065fa41be + REF v2.10.6 + SHA512 f0848f329df80ced68132600914f0f4ba1ed42c7c16188e0f2bd41cf0c50173c27ca42c8db72ff239ca881bc8789fa4d1e3189c492832f6c22d36d504b7ce8dd HEAD_REF master ) -- cgit v1.2.3 From 4eb219c9fd5a5d2d6414ae3976088bff93101c95 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Thu, 30 Aug 2018 23:49:44 -0700 Subject: [libpqxx] Fix non-Windows --- ports/libpqxx/CMakeLists.txt | 8 +++++--- ports/libpqxx/CONTROL | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ports/libpqxx/CMakeLists.txt b/ports/libpqxx/CMakeLists.txt index c33d8863f..1d0473376 100644 --- a/ports/libpqxx/CMakeLists.txt +++ b/ports/libpqxx/CMakeLists.txt @@ -1,9 +1,11 @@ cmake_minimum_required(VERSION 3.5) project(libpqxx VERSION 6.0.0 LANGUAGES CXX) -set(CMAKE_DEBUG_POSTFIX "D") -find_library(LIBPQD libpqd) -find_library(LIBPQ libpq) +set(CMAKE_DEBUG_POSTFIX "d") +set(CMAKE_CXX_STANDARD 14) + +find_library(LIBPQD NAMES libpqd pqd) +find_library(LIBPQ NAMES libpq pq) find_path(LIBPQ_FE_H libpq-fe.h) find_path(POSTGRES_EXT_H postgres_ext.h) diff --git a/ports/libpqxx/CONTROL b/ports/libpqxx/CONTROL index 8860ddaf9..ce1a688e9 100644 --- a/ports/libpqxx/CONTROL +++ b/ports/libpqxx/CONTROL @@ -1,4 +1,4 @@ Source: libpqxx -Version: 6.0.0 +Version: 6.0.0-1 Description: The official C++ client API for PostgreSQL Build-Depends: libpq -- cgit v1.2.3 From 5d0b0ec82f711082f5babd29aad76a5759608cf2 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 4 Sep 2018 16:47:47 -0700 Subject: [vcpkg_extract_source_archive] Fix incorrect var usage in vcpkg_extract_source_archive --- scripts/cmake/vcpkg_extract_source_archive.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cmake/vcpkg_extract_source_archive.cmake b/scripts/cmake/vcpkg_extract_source_archive.cmake index b1e2110a7..dbd17b5b6 100644 --- a/scripts/cmake/vcpkg_extract_source_archive.cmake +++ b/scripts/cmake/vcpkg_extract_source_archive.cmake @@ -80,7 +80,7 @@ function(vcpkg_extract_source_archive_ex) string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) # Hash the archive hash along with the patches. Take the first 10 chars of the hash - file(SHA512 ${ARCHIVE} PATCHSET_HASH) + file(SHA512 ${_vesae_ARCHIVE} PATCHSET_HASH) foreach(PATCH IN LISTS _vesae_PATCHES) get_filename_component(ABSOLUTE_PATCH "${PATCH}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") file(SHA512 ${ABSOLUTE_PATCH} CURRENT_HASH) -- cgit v1.2.3 From 06e85f063c696966a677f98e742d6263f61ded66 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 4 Sep 2018 16:51:01 -0700 Subject: [vcpkg_extract_source_archive] Fix incorrect var usage in vcpkg_extract_source_archive --- scripts/cmake/vcpkg_extract_source_archive.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/vcpkg_extract_source_archive.cmake b/scripts/cmake/vcpkg_extract_source_archive.cmake index dbd17b5b6..da0ac611a 100644 --- a/scripts/cmake/vcpkg_extract_source_archive.cmake +++ b/scripts/cmake/vcpkg_extract_source_archive.cmake @@ -36,7 +36,7 @@ function(vcpkg_extract_source_archive ARCHIVE) set(WORKING_DIRECTORY ${ARGV1}) endif() - get_filename_component(ARCHIVE_FILENAME ${ARCHIVE} NAME) + get_filename_component(ARCHIVE_FILENAME "${ARCHIVE}" NAME) if(NOT EXISTS ${WORKING_DIRECTORY}/${ARCHIVE_FILENAME}.extracted) message(STATUS "Extracting source ${ARCHIVE}") file(MAKE_DIRECTORY ${WORKING_DIRECTORY}) @@ -94,7 +94,7 @@ function(vcpkg_extract_source_archive_ex) if(NOT EXISTS ${SOURCE_PATH}) set(TEMP_DIR "${_vesae_WORKING_DIRECTORY}/TEMP") file(REMOVE_RECURSE ${TEMP_DIR}) - vcpkg_extract_source_archive("${ARCHIVE}" "${TEMP_DIR}") + vcpkg_extract_source_archive("${_vesae_ARCHIVE}" "${TEMP_DIR}") if(_vesae_NO_REMOVE_ONE_LEVEL) set(TEMP_SOURCE_PATH ${TEMP_DIR}) -- cgit v1.2.3