diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index f8c0c9f38f937f..9bfc038f3dfaf1 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -1,24 +1,25 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ffmpeg-4.1) + vcpkg_download_distfile(ARCHIVE URLS "http://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2" FILENAME "ffmpeg-4.1.tar.bz2" SHA512 ccf6d07268dc47e08ca619eb182a003face2a8ee73ec1a28157330dd7de1df88939def1fc1c7e6b6ac7b59752cdad84657d589b2fafb73e14e5ef03fb6e33417 ) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF 4.1 + PATCHES + create-lib-libraries.patch + detect-openssl.patch + configure_opencv.patch +) + if (${SOURCE_PATH} MATCHES " ") message(FATAL_ERROR "Error: ffmpeg will not build with spaces in the path. Please use a directory with no spaces") endif() -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/create-lib-libraries.patch - ${CMAKE_CURRENT_LIST_DIR}/detect-openssl.patch - ${CMAKE_CURRENT_LIST_DIR}/configure_opencv.patch -) - vcpkg_find_acquire_program(YASM) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${YASM_EXE_PATH}") diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 2061111e9ad5ac..0e572cf63cd3e6 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -15,11 +15,12 @@ vcpkg_download_distfile( FILENAME "icu4c-${VERSION2}-src.tgz" SHA512 4c37691246db802e4bae0c8c5f6ac1dac64c5753b607e539c5c1c36e361fcd9dd81bd1d3b5416c2960153b83700ccdb356412847d0506ab7782ae626ac0ffb94 ) -vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src/icu-${VERSION}) - -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-escapestr-tool.patch - ${CMAKE_CURRENT_LIST_DIR}/remove-MD-from-configure.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES + disable-escapestr-tool.patch + remove-MD-from-configure.patch ) set(CONFIGURE_OPTIONS "--disable-samples --disable-tests") diff --git a/ports/liblemon/portfile.cmake b/ports/liblemon/portfile.cmake index 689903024df6c8..f518ca67692643 100644 --- a/ports/liblemon/portfile.cmake +++ b/ports/liblemon/portfile.cmake @@ -21,7 +21,7 @@ vcpkg_extract_source_archive_ex( "cmake.patch" "fixup-targets.patch" ) - + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake index d253008e777b96..249f39c5917c9a 100644 --- a/ports/libvpx/portfile.cmake +++ b/ports/libvpx/portfile.cmake @@ -8,7 +8,7 @@ include(vcpkg_common_functions) set(LIBVPX_VERSION 1.7.0) set(LIBVPX_HASH 8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libvpx-${LIBVPX_VERSION}) +# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libvpx-${LIBVPX_VERSION}) string(REGEX REPLACE "\\\\" "/" SOURCE_PATH_UNIX ${SOURCE_PATH}) string(REGEX REPLACE "\\\\" "/" CURRENT_PACKAGES_DIR_UNIX ${CURRENT_PACKAGES_DIR}) @@ -18,9 +18,11 @@ vcpkg_download_distfile(ARCHIVE FILENAME "libvpx-${LIBVPX_VERSION}.tar.gz" SHA512 ${LIBVPX_HASH} ) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_find_acquire_program(YASM) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${LIBVPX_VERSION} +) vcpkg_find_acquire_program(PERL) vcpkg_acquire_msys(MSYS_ROOT PACKAGES make) vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils) diff --git a/ports/ms-angle/CONTROL b/ports/ms-angle/CONTROL index c3cf500b3eac40..6d68b4e56bbdb2 100644 --- a/ports/ms-angle/CONTROL +++ b/ports/ms-angle/CONTROL @@ -1,4 +1,4 @@ Source: ms-angle -Version: 2018-04-18 +Version: 2018-04-18-1 Description: The UWP version of a conformant OpenGL ES implementation for Windows, Mac and Linux. The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support. diff --git a/ports/ms-angle/portfile.cmake b/ports/ms-angle/portfile.cmake index afaec0bf3ab543..9efc3b10baf040 100644 --- a/ports/ms-angle/portfile.cmake +++ b/ports/ms-angle/portfile.cmake @@ -9,15 +9,13 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(VCPKG_LIBRARY_LINKAGE dynamic) endif() -vcpkg_from_github( +vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/angle REF ms-master SHA512 eecdb7012c0630b24fde540fb6a558f4ee5326fc1218773b779953d0fe0ef02da68ceb2577822cfc0374392a88b871201bfe291e3b85c3dd005edc83f84fec1f -) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/001-fix-uwp.patch + PATCHES + 001-fix-uwp.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/nmap/portfile.cmake b/ports/nmap/portfile.cmake index 5e2e057874a172..82057d088917ca 100644 --- a/ports/nmap/portfile.cmake +++ b/ports/nmap/portfile.cmake @@ -8,15 +8,8 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} - REF ${SQLITE_VERSION} -) - -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/detect-crypto-library.patch + detect-crypto-library.patch ) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") diff --git a/ports/ogdf/portfile.cmake b/ports/ogdf/portfile.cmake index 5ad5e72cabc33f..bf88948241ee1a 100644 --- a/ports/ogdf/portfile.cmake +++ b/ports/ogdf/portfile.cmake @@ -16,7 +16,7 @@ vcpkg_configure_cmake( -DOGDF_INSTALL_LIBRARY_DIR:STRING=lib -DOGDF_INSTALL_CMAKE_DIR:STRING=lib/cmake/OGDF ) - + vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/OGDF) diff --git a/ports/openssl-unix/portfile.cmake b/ports/openssl-unix/portfile.cmake index b0064cdf4a6869..bd1b817404e716 100644 --- a/ports/openssl-unix/portfile.cmake +++ b/ports/openssl-unix/portfile.cmake @@ -3,6 +3,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAM endif() include(vcpkg_common_functions) + set(OPENSSL_VERSION 1.0.2q) vcpkg_find_acquire_program(PERL) diff --git a/ports/vxl/portfile.cmake b/ports/vxl/portfile.cmake index 9735f144baeb0b..f57545276b7b79 100644 --- a/ports/vxl/portfile.cmake +++ b/ports/vxl/portfile.cmake @@ -18,7 +18,7 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore endif() vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} + SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DBUILD_EXAMPLES=OFF diff --git a/scripts/cmake/vcpkg_acquire_msys.cmake b/scripts/cmake/vcpkg_acquire_msys.cmake index adbd58ca5bea7c..53159e490edd43 100644 --- a/scripts/cmake/vcpkg_acquire_msys.cmake +++ b/scripts/cmake/vcpkg_acquire_msys.cmake @@ -69,7 +69,6 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) endif() set(PATH_TO_ROOT ${TOOLPATH}/${TOOLSUBPATH}) - if(NOT EXISTS "${TOOLPATH}/${STAMP}") message(STATUS "Acquiring MSYS2...") @@ -95,6 +94,13 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) ) file(WRITE "${TOOLPATH}/${STAMP}" "0") message(STATUS "Acquiring MSYS2... OK") + + # Remove database lock + SET(DB_LOCK_PATH ${PATH_TO_ROOT}/var/lib/pacman/db.lck) + if (EXISTS "${DB_LOCK_PATH}") + message(STATUS "${DB_LOCK_PATH} exists --- deleting it") + file(REMOVE "${DB_LOCK_PATH}") + endif() endif() if(_am_PACKAGES) diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index 584e93251f45bf..612b55e50fa79e 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -138,13 +138,15 @@ This can be worked around by either: if(DEFINED VCPKG_CMAKE_SYSTEM_NAME) list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") - if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION) - set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) - endif() endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") endif() + if(DEFINED VCPKG_CMAKE_SYSTEM_PROCESSOR) + list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_PROCESSOR=${VCPKG_CMAKE_SYSTEM_PROCESSOR}") + endif() + + list(APPEND _csc_OPTIONS "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND _csc_OPTIONS -DBUILD_SHARED_LIBS=ON) diff --git a/scripts/toolchains/linux.cmake b/scripts/toolchains/linux.cmake index b9cbc0ff35e54e..ce30df1c60b672 100644 --- a/scripts/toolchains/linux.cmake +++ b/scripts/toolchains/linux.cmake @@ -2,6 +2,17 @@ if(NOT _VCPKG_LINUX_TOOLCHAIN) set(_VCPKG_LINUX_TOOLCHAIN 1) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") + + if (NOT CMAKE_SYSTEM_PROCESSOR) + # TODO: This should be replaced with a switch on VCPKG_TARGET_ARCHITECTURE once we know what linux systems "natively" define for each of the targets + set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") + message("CMAKE_HOST_SYSTEM_PROCESSOR is ${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() +else() + if (NOT CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR "x86_64" CACHE STRING "") + message("CMAKE_HOST_SYSTEM_PROCESSOR defaulted to x86_64") + endif() endif() set(CMAKE_SYSTEM_NAME Linux CACHE STRING "") diff --git a/scripts/toolchains/windows.cmake b/scripts/toolchains/windows.cmake index 266e023b147d20..389de5396634cf 100644 --- a/scripts/toolchains/windows.cmake +++ b/scripts/toolchains/windows.cmake @@ -1,3 +1,23 @@ +if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "") +endif() + +if (NOT CMAKE_SYSTEM_PROCESSOR) + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(CMAKE_SYSTEM_PROCESSOR ARM CACHE STRING "") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") + set(CMAKE_SYSTEM_PROCESSOR ARM64 CACHE STRING "") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(CMAKE_SYSTEM_PROCESSOR AMD64 CACHE STRING "") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(CMAKE_SYSTEM_PROCESSOR X86 CACHE STRING "") + elseif(NOT VCPKG_TARGET_ARCHITECTURE) + message(STATUS "VCPKG_TARGET_ARCHITECTURE is not set") + else() + message(FATAL_ERROR "Unknow target architecture: ${VCPKG_TARGET_ARCHITECTURE}") + endif() +endif() + get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE ) if(NOT _CMAKE_IN_TRY_COMPILE) diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index f20367e00b793f..a69a603edb0f70 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -985,6 +985,11 @@ namespace vcpkg::Build hash += "-"; hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "android.cmake", "SHA1"); } + else if (pre_build_info.cmake_system_name.empty() || pre_build_info.cmake_system_name == "WindowsStore") + { + hash += "-"; + hash += Hash::get_file_hash(fs, paths.scripts / "toolchains" / "windows.cmake", "SHA1"); + } s_hash_cache.emplace(triplet_file_path, hash); return hash;