From ac5a70fca031d322270f5a927bfa41b8b8838180 Mon Sep 17 00:00:00 2001 From: Dale Glass Date: Mon, 16 Dec 2019 22:55:50 +0100 Subject: [PATCH] Change asset URLs to Athena S3 bucket. This uses a variable that can be overriden with an environment variable. This makes it easy for the community to create alternate asset hosts. Due to vcpkg using a clean environment, variables can't be easily passed to cmake scripts run by vcpkg. This was worked around by writing the data that needs to be passed into temporary files and reading it from the vcpkg ports. --- CMakeLists.txt | 34 ++++++++++++++++++ cmake/externals/GifCreator/CMakeLists.txt | 4 +-- cmake/externals/LibOVR/CMakeLists.txt | 4 +-- cmake/externals/LibOVRPlatform/CMakeLists.txt | 2 +- cmake/externals/crashpad/CMakeLists.txt | 4 +-- cmake/externals/glad32es/CMakeLists.txt | 2 +- cmake/externals/glad41/CMakeLists.txt | 2 +- cmake/externals/glad45/CMakeLists.txt | 2 +- cmake/externals/hifiAudioCodec/CMakeLists.txt | 8 ++--- cmake/externals/neuron/CMakeLists.txt | 2 +- cmake/externals/polyvox/CMakeLists.txt | 2 +- cmake/externals/quazip/CMakeLists.txt | 2 +- cmake/externals/sixense/CMakeLists.txt | 6 ++-- cmake/externals/steamworks/CMakeLists.txt | 2 +- cmake/externals/tbb/CMakeLists.txt | 6 ++-- cmake/externals/vhacd/CMakeLists.txt | 2 +- cmake/externals/wasapi/CMakeLists.txt | 2 +- cmake/ports/openssl-android/portfile.cmake | 4 ++- cmake/ports/webrtc/portfile.cmake | 8 +++-- hifi_vcpkg.py | 35 ++++++++++++++----- launchers/qt/CMakeLists.txt | 4 +-- 21 files changed, 97 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8fd5b7637..476164b845 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,40 @@ else() cmake_minimum_required(VERSION 3.2) endif() + +# Passing of variables to vcpkg +# +# vcpkg runs cmake scripts in an isolated environment, see this for details: +# https://github.com/Microsoft/vcpkg/issues/3712 +# +# Here's how this works and how we work around this issue: +# +# 1. This file (CMakeLists.txt) runs first and is authoritative. It is the one +# that reads the environment, sets variables and sets a default value. +# 2. It writes the contents of the variables to +# $CMAKE_CURRENT_BINARY_DIR/_env/$VARNAME +# 3. hifi_vcpkg.py takes the _env directory, and copies it to the vcpkg dir. +# This solves the issue of CMakeLists.txt not knowing where the vcpkg dir is. +# 4. cmake/ports/*/portfile.cmake does know where the vcpkg dir is, and can +# read the _env that was copied there to obtain the variable's name. +# +# To ensure no old data could be accidentally read, the _env directories are +# deleted on each execution and fully recreated. + +# Ensure nothing is kept from any previous run +file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/_env") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_env") + +# Base URL for externally downloaded files +set(EXTERNAL_BUILD_ASSETS "https://athena-public.s3.amazonaws.com") + +if( DEFINED ENV{EXTERNAL_BUILD_ASSETS} ) + set(EXTERNAL_BUILD_ASSETS "$ENV{EXTERNAL_BUILD_ASSETS}") +endif() + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" "${EXTERNAL_BUILD_ASSETS}") +MESSAGE(STATUS "EXTERNAL_BUILD_ASSETS: ${EXTERNAL_BUILD_ASSETS}") + include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros/TargetPython.cmake") target_python() diff --git a/cmake/externals/GifCreator/CMakeLists.txt b/cmake/externals/GifCreator/CMakeLists.txt index 094f5612a9..bacfefd48b 100644 --- a/cmake/externals/GifCreator/CMakeLists.txt +++ b/cmake/externals/GifCreator/CMakeLists.txt @@ -3,7 +3,7 @@ set(EXTERNAL_NAME GifCreator) include(ExternalProject) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/GifCreator.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/GifCreator.zip" URL_MD5 8ac8ef5196f47c658dce784df5ecdb70 CONFIGURE_COMMAND "" BUILD_COMMAND "" @@ -17,4 +17,4 @@ set_target_properties(${EXTERNAL_NAME} PROPERTIES FOLDER "hidden/externals") ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR) string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) -set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/src/${EXTERNAL_NAME} CACHE PATH "List of GifCreator include directories") \ No newline at end of file +set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/src/${EXTERNAL_NAME} CACHE PATH "List of GifCreator include directories") diff --git a/cmake/externals/LibOVR/CMakeLists.txt b/cmake/externals/LibOVR/CMakeLists.txt index 53c4c2976c..872d0e5fef 100644 --- a/cmake/externals/LibOVR/CMakeLists.txt +++ b/cmake/externals/LibOVR/CMakeLists.txt @@ -17,7 +17,7 @@ if (WIN32) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://hifi-public.s3.amazonaws.com/dependencies/ovr_sdk_win_1.35.0.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/ovr_sdk_win_1.35.0.zip" URL_MD5 1e3e8b2101387af07ff9c841d0ea285e CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= PATCH_COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/LibOVRCMakeLists.txt" /CMakeLists.txt @@ -38,7 +38,7 @@ elseif(APPLE) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/ovr_sdk_macos_0.5.0.1.tar.gz + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/ovr_sdk_macos_0.5.0.1.tar.gz" URL_MD5 0a0785a04fb285f64f62267388344ad6 CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/cmake/externals/LibOVRPlatform/CMakeLists.txt b/cmake/externals/LibOVRPlatform/CMakeLists.txt index adf89823f2..40e6ae123c 100644 --- a/cmake/externals/LibOVRPlatform/CMakeLists.txt +++ b/cmake/externals/LibOVRPlatform/CMakeLists.txt @@ -9,7 +9,7 @@ if (WIN32) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/OVRPlatformSDK_v1.10.0.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/OVRPlatformSDK_v1.10.0.zip" URL_MD5 e6c8264af16d904e6506acd5172fa0a9 CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/cmake/externals/crashpad/CMakeLists.txt b/cmake/externals/crashpad/CMakeLists.txt index 34348b6418..e519ead0ee 100644 --- a/cmake/externals/crashpad/CMakeLists.txt +++ b/cmake/externals/crashpad/CMakeLists.txt @@ -6,7 +6,7 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) if (WIN32) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/crashpad_062317.1.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/crashpad_062317.1.zip" URL_MD5 9c84b77f5f23daf939da1371825ed2b1 CONFIGURE_COMMAND "" BUILD_COMMAND "" @@ -25,7 +25,7 @@ if (WIN32) elseif (APPLE) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/crashpad_mac_070318.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/crashpad_mac_070318.zip" URL_MD5 ba1501dc163591ac2d1be74946967e2a CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/cmake/externals/glad32es/CMakeLists.txt b/cmake/externals/glad32es/CMakeLists.txt index 04000b4cfe..8487e5aaaf 100644 --- a/cmake/externals/glad32es/CMakeLists.txt +++ b/cmake/externals/glad32es/CMakeLists.txt @@ -5,7 +5,7 @@ include(SelectLibraryConfigurations) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/glad/glad32es.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/glad/glad32es.zip" URL_MD5 6a641d8c49dee4c895fa59315f5682a6 CONFIGURE_COMMAND CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_POSITION_INDEPENDENT_CODE=ON LOG_DOWNLOAD 1 diff --git a/cmake/externals/glad41/CMakeLists.txt b/cmake/externals/glad41/CMakeLists.txt index 0c99a03025..76382dd05d 100644 --- a/cmake/externals/glad41/CMakeLists.txt +++ b/cmake/externals/glad41/CMakeLists.txt @@ -5,7 +5,7 @@ include(SelectLibraryConfigurations) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/glad/glad41.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/glad/glad41.zip" URL_MD5 1324eeec33abe91e67d19ae551ba624d CONFIGURE_COMMAND CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_POSITION_INDEPENDENT_CODE=ON LOG_DOWNLOAD 1 diff --git a/cmake/externals/glad45/CMakeLists.txt b/cmake/externals/glad45/CMakeLists.txt index 112f6f3592..477a5f79d5 100644 --- a/cmake/externals/glad45/CMakeLists.txt +++ b/cmake/externals/glad45/CMakeLists.txt @@ -5,7 +5,7 @@ include(SelectLibraryConfigurations) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/glad/glad45.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/glad/glad45.zip" URL_MD5 cfb19b3cb5b2f8f1d1669fb3150e5f05 CONFIGURE_COMMAND CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_POSITION_INDEPENDENT_CODE=ON LOG_DOWNLOAD 1 diff --git a/cmake/externals/hifiAudioCodec/CMakeLists.txt b/cmake/externals/hifiAudioCodec/CMakeLists.txt index 5d439cd519..31454ace50 100644 --- a/cmake/externals/hifiAudioCodec/CMakeLists.txt +++ b/cmake/externals/hifiAudioCodec/CMakeLists.txt @@ -6,16 +6,16 @@ set(EXTERNAL_NAME hifiAudioCodec) string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) if (WIN32) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/codecSDK-win-2.0.zip) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/codecSDK-win-2.0.zip") set(DOWNLOAD_MD5 9199d4dbd6b16bed736b235efe980e67) elseif (APPLE) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/codecSDK-mac-2.0.zip) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/codecSDK-mac-2.0.zip") set(DOWNLOAD_MD5 21649881e7d5dc94f922179be96f76ba) elseif (ANDROID) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/codecSDK-android-2.0.zip) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/codecSDK-android-2.0.zip") set(DOWNLOAD_MD5 aef2a852600d498d58aa586668191683) elseif (UNIX) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/codecSDK-linux-2.0.zip) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/codecSDK-linux-2.0.zip") set(DOWNLOAD_MD5 67fb7755f9bcafb98a9fceea53bc7481) else() return() diff --git a/cmake/externals/neuron/CMakeLists.txt b/cmake/externals/neuron/CMakeLists.txt index 049e175354..45b18f86cd 100644 --- a/cmake/externals/neuron/CMakeLists.txt +++ b/cmake/externals/neuron/CMakeLists.txt @@ -4,7 +4,7 @@ set(EXTERNAL_NAME neuron) string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) -set(NEURON_URL "https://public.highfidelity.com/dependencies/neuron_datareader_b.12.2.zip") +set(NEURON_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/neuron_datareader_b.12.2.zip") set(NEURON_URL_MD5 "84273ad2200bf86a9279d1f412a822ca") ExternalProject_Add(${EXTERNAL_NAME} diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt index e5c3521b63..63a4bee043 100644 --- a/cmake/externals/polyvox/CMakeLists.txt +++ b/cmake/externals/polyvox/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_BUILD_TYPE Release) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/polyvox-master-2015-7-15.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/polyvox-master-2015-7-15.zip" URL_MD5 9ec6323b87e849ae36e562ae1c7494a9 CMAKE_ARGS -DENABLE_EXAMPLES=OFF -DENABLE_BINDINGS=OFF -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} BINARY_DIR ${EXTERNAL_PROJECT_PREFIX}/build diff --git a/cmake/externals/quazip/CMakeLists.txt b/cmake/externals/quazip/CMakeLists.txt index f99d995a0c..8190a35988 100644 --- a/cmake/externals/quazip/CMakeLists.txt +++ b/cmake/externals/quazip/CMakeLists.txt @@ -18,7 +18,7 @@ endif () ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/quazip-0.7.3.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/quazip-0.7.3.zip" URL_MD5 ed03754d39b9da1775771819b8001d45 BINARY_DIR ${EXTERNAL_PROJECT_PREFIX}/build CMAKE_ARGS ${QUAZIP_CMAKE_ARGS} diff --git a/cmake/externals/sixense/CMakeLists.txt b/cmake/externals/sixense/CMakeLists.txt index 35f7758820..c2fb8ad8f9 100644 --- a/cmake/externals/sixense/CMakeLists.txt +++ b/cmake/externals/sixense/CMakeLists.txt @@ -4,15 +4,15 @@ set(EXTERNAL_NAME sixense) string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) -#set(SIXENSE_URL "https://public.highfidelity.com/dependencies/SixenseSDK_062612.zip") +#set(SIXENSE_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/SixenseSDK_062612.zip") #set(SIXENSE_URL_MD5 "10cc8dc470d2ac1244a88cf04bc549cc") #set(SIXENSE_NEW_LAYOUT 0) -set(SIXENSE_URL "https://public.highfidelity.com/dependencies/SixenseSDK_071615.zip") +set(SIXENSE_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/SixenseSDK_071615.zip") set(SIXENSE_URL_MD5 "752a3901f334124e9cffc2ba4136ef7d") set(SIXENSE_NEW_LAYOUT 1) -#set(SIXENSE_URL "https://public.highfidelity.com/dependencies/SixenseSDK_102215.zip") +#set(SIXENSE_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/SixenseSDK_102215.zip") #set(SIXENSE_URL_MD5 "93c3a6795cce777a0f472b09532935f1") #set(SIXENSE_NEW_LAYOUT 1) diff --git a/cmake/externals/steamworks/CMakeLists.txt b/cmake/externals/steamworks/CMakeLists.txt index eb61d22f8b..1ec72d7d28 100644 --- a/cmake/externals/steamworks/CMakeLists.txt +++ b/cmake/externals/steamworks/CMakeLists.txt @@ -4,7 +4,7 @@ set(EXTERNAL_NAME steamworks) string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) -set(STEAMWORKS_URL "https://public.highfidelity.com/dependencies/steamworks_sdk_137.zip") +set(STEAMWORKS_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/steamworks_sdk_137.zip") set(STEAMWORKS_URL_MD5 "95ba9d0e3ddc04f8a8be17d2da806cbb") ExternalProject_Add( diff --git a/cmake/externals/tbb/CMakeLists.txt b/cmake/externals/tbb/CMakeLists.txt index 1788922ef2..8f8f2d3030 100644 --- a/cmake/externals/tbb/CMakeLists.txt +++ b/cmake/externals/tbb/CMakeLists.txt @@ -3,13 +3,13 @@ set(EXTERNAL_NAME tbb) include(ExternalProject) if (WIN32) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/tbb2017_20170604oss_win_slim.zip) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/tbb2017_20170604oss_win_slim.zip") set(DOWNLOAD_MD5 065934458e3db88397f3d10e7eea536c) elseif (APPLE) - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/tbb2017_20170604oss_mac_slim.tar.gz) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/tbb2017_20170604oss_mac_slim.tar.gz") set(DOWNLOAD_MD5 62bde626b396f8e1a85c6a8ded1d8105) else () - set(DOWNLOAD_URL https://public.highfidelity.com/dependencies/tbb2017_20170604oss_lin_slim.tar.gz) + set(DOWNLOAD_URL "${EXTERNAL_BUILD_ASSETS}/dependencies/tbb2017_20170604oss_lin_slim.tar.gz") set(DOWNLOAD_MD5 2a5c721f40fa3503ffc12c18dd00011c) endif () diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt index fe19f7ac7a..5fb89b7e9b 100644 --- a/cmake/externals/vhacd/CMakeLists.txt +++ b/cmake/externals/vhacd/CMakeLists.txt @@ -7,7 +7,7 @@ endif () include(ExternalProject) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/v-hacd-master.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/v-hacd-master.zip" URL_MD5 3bfc94f8dd3dfbfe8f4dc088f4820b3e CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH= BINARY_DIR ${EXTERNAL_PROJECT_PREFIX}/build diff --git a/cmake/externals/wasapi/CMakeLists.txt b/cmake/externals/wasapi/CMakeLists.txt index 286d18e2b5..bc8148c278 100644 --- a/cmake/externals/wasapi/CMakeLists.txt +++ b/cmake/externals/wasapi/CMakeLists.txt @@ -6,7 +6,7 @@ if (WIN32) include(ExternalProject) ExternalProject_Add( ${EXTERNAL_NAME} - URL https://public.highfidelity.com/dependencies/qtaudio_wasapi13.zip + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/qtaudio_wasapi13.zip" URL_MD5 aa56a45f19c18caee13d29a40d1d7d28 CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/cmake/ports/openssl-android/portfile.cmake b/cmake/ports/openssl-android/portfile.cmake index 54936d254d..372a9fceef 100644 --- a/cmake/ports/openssl-android/portfile.cmake +++ b/cmake/ports/openssl-android/portfile.cmake @@ -2,10 +2,12 @@ include(vcpkg_common_functions) set(OPENSSL_VERSION 1.1.0g) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) +file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" EXTERNAL_BUILD_ASSETS) + message("MASTER_COPY_SOURCE_PATH ${MASTER_COPY_SOURCE_PATH}") vcpkg_download_distfile( OPENSSL_SOURCE_ARCHIVE - URLS https://hifi-public.s3.amazonaws.com/dependencies/android/openssl-1.1.0g_armv8.tgz?versionId=AiiPjmgUZTgNj7YV1EEx2lL47aDvvvAW + URLS "${EXTERNAL_BUILD_ASSETS}/dependencies/android/openssl-1.1.0g_armv8.tgz?versionId=AiiPjmgUZTgNj7YV1EEx2lL47aDvvvAW" SHA512 5d7bb6e5d3db2340449e2789bcd72da821f0e57483bac46cf06f735dffb5d73c1ca7cc53dd48f3b3979d0fe22b3ae61997c516fc0c4611af4b4b7f480e42b992 FILENAME openssl-1.1.0g_armv8.tgz ) diff --git a/cmake/ports/webrtc/portfile.cmake b/cmake/ports/webrtc/portfile.cmake index b5b46723bd..fdc653d6a5 100644 --- a/cmake/ports/webrtc/portfile.cmake +++ b/cmake/ports/webrtc/portfile.cmake @@ -2,19 +2,21 @@ include(vcpkg_common_functions) set(WEBRTC_VERSION 20190626) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) +file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" EXTERNAL_BUILD_ASSETS) + if (ANDROID) # this is handled by hifi_android.py elseif (WIN32) vcpkg_download_distfile( WEBRTC_SOURCE_ARCHIVE - URLS https://hifi-public.s3.amazonaws.com/seth/webrtc-20190626-windows.zip + URLS "${EXTERNAL_BUILD_ASSETS}/seth/webrtc-20190626-windows.zip" SHA512 c0848eddb1579b3bb0496b8785e24f30470f3c477145035fd729264a326a467b9467ae9f426aa5d72d168ad9e9bf2c279150744832736bdf39064d24b04de1a3 FILENAME webrtc-20190626-windows.zip ) elseif (APPLE) vcpkg_download_distfile( WEBRTC_SOURCE_ARCHIVE - URLS https://hifi-public.s3.amazonaws.com/seth/webrtc-m78-osx.tar.gz + URLS "${EXTERNAL_BUILD_ASSETS}/seth/webrtc-m78-osx.tar.gz" SHA512 8b547da921cc96f5c22b4253a1c9e707971bb627898fbdb6b238ef1318c7d2512e878344885c936d4bd6a66005cc5b63dfc3fa5ddd14f17f378dcaa17b5e25df FILENAME webrtc-m78-osx.tar.gz ) @@ -22,7 +24,7 @@ else () # else Linux desktop vcpkg_download_distfile( WEBRTC_SOURCE_ARCHIVE - URLS https://hifi-public.s3.amazonaws.com/seth/webrtc-20190626-linux.tar.gz + URLS "${EXTERNAL_BUILD_ASSETS}/seth/webrtc-20190626-linux.tar.gz" SHA512 07d7776551aa78cb09a3ef088a8dee7762735c168c243053b262083d90a1d258cec66dc386f6903da5c4461921a3c2db157a1ee106a2b47e7756cb424b66cc43 FILENAME webrtc-20190626-linux.tar.gz ) diff --git a/hifi_vcpkg.py b/hifi_vcpkg.py index 6ec2184d45..94cac9afa2 100644 --- a/hifi_vcpkg.py +++ b/hifi_vcpkg.py @@ -9,6 +9,7 @@ import tempfile import json import xml.etree.ElementTree as ET import functools +from os import path print = functools.partial(print, flush=True) @@ -36,6 +37,7 @@ endif() self.sourcePortsPath = args.ports_path self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8] self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake') + self.assets_url = self.readVar('EXTERNAL_BUILD_ASSETS') # OS dependent information system = platform.system() @@ -72,19 +74,19 @@ endif() if 'Windows' == system: self.exe = os.path.join(self.path, 'vcpkg.exe') self.bootstrapCmd = 'bootstrap-vcpkg.bat' - self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-win32.tar.gz?versionId=YZYkDejDRk7L_hrK_WVFthWvisAhbDzZ' + self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-win32.tar.gz%3FversionId=YZYkDejDRk7L_hrK_WVFthWvisAhbDzZ' self.vcpkgHash = '3e0ff829a74956491d57666109b3e6b5ce4ed0735c24093884317102387b2cb1b2cd1ff38af9ed9173501f6e32ffa05cc6fe6d470b77a71ca1ffc3e0aa46ab9e' self.hostTriplet = 'x64-windows' elif 'Darwin' == system: self.exe = os.path.join(self.path, 'vcpkg') self.bootstrapCmd = 'bootstrap-vcpkg.sh' - self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-osx.tar.gz?versionId=_fhqSxjfrtDJBvEsQ8L_ODcdUjlpX9cc' + self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-osx.tar.gz%3FversionId=_fhqSxjfrtDJBvEsQ8L_ODcdUjlpX9cc' self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d' self.hostTriplet = 'x64-osx' else: self.exe = os.path.join(self.path, 'vcpkg') self.bootstrapCmd = 'bootstrap-vcpkg.sh' - self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-linux.tar.gz?versionId=97Nazh24etEVKWz33XwgLY0bvxEfZgMU' + self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-linux.tar.gz%3FversionId=97Nazh24etEVKWz33XwgLY0bvxEfZgMU' self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d' self.hostTriplet = 'x64-linux' @@ -94,6 +96,10 @@ endif() else: self.triplet = self.hostTriplet + def readVar(self, var): + with open(os.path.join(self.args.build_root, '_env', var + ".txt")) as fp: + return fp.read() + def upToDate(self): # Prevent doing a clean if we've explcitly set a directory for vcpkg if self.args.vcpkg_root is not None: @@ -115,6 +121,17 @@ endif() return False return True + def copyEnv(self): + print("Passing on variables to vcpkg") + srcEnv = os.path.join(self.args.build_root, "_env") + destEnv = os.path.join(self.path, "_env") + + if path.exists(destEnv): + shutil.rmtree(destEnv) + + shutil.copytree(srcEnv, destEnv) + + def clean(self): print("Cleaning vcpkg installation at {}".format(self.path)) if os.path.isdir(self.path): @@ -124,6 +141,7 @@ endif() # Make sure the VCPKG prerequisites are all there. def bootstrap(self): if self.upToDate(): + self.copyEnv() return self.clean() @@ -160,6 +178,7 @@ endif() if (os.path.isdir(portsPath)): shutil.rmtree(portsPath, ignore_errors=True) shutil.copytree(self.sourcePortsPath, portsPath) + self.copyEnv() def run(self, commands): actualCommands = [self.exe, '--vcpkg-root', self.path] @@ -199,7 +218,7 @@ endif() # vcpkg prebuilt if not os.path.isdir(os.path.join(self.path, 'installed', 'arm64-android')): dest = os.path.join(self.path, 'installed') - url = "https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-arm64-android.tar.gz" + url = self.assets_url + "/dependencies/vcpkg/vcpkg-arm64-android.tar.gz" # FIXME I don't know why the hash check frequently fails here. If you examine the file later it has the right hash #hash = "832f82a4d090046bdec25d313e20f56ead45b54dd06eee3798c5c8cbdd64cce4067692b1c3f26a89afe6ff9917c10e4b601c118bea06d23f8adbfe5c0ec12bc3" #hifi_utils.downloadAndExtract(url, dest, hash) @@ -263,14 +282,14 @@ endif() url = 'NOT DEFINED' if platform.system() == 'Windows': - url = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/qt5-install-5.12.3-windows3.tar.gz' + url = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-windows3.tar.gz' elif platform.system() == 'Darwin': - url = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/qt5-install-5.12.3-macos.tar.gz?versionId=bLAgnoJ8IMKpqv8NFDcAu8hsyQy3Rwwz' + url = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-macos.tar.gz%3FversionId=bLAgnoJ8IMKpqv8NFDcAu8hsyQy3Rwwz' elif platform.system() == 'Linux': if platform.linux_distribution()[1][:3] == '16.': - url = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz' + url = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz' elif platform.linux_distribution()[1][:3] == '18.': - url = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-18.04.tar.gz' + url = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-18.04.tar.gz' else: print('UNKNOWN LINUX VERSION!!!') return; diff --git a/launchers/qt/CMakeLists.txt b/launchers/qt/CMakeLists.txt index 8155400f45..596f3b7d5c 100644 --- a/launchers/qt/CMakeLists.txt +++ b/launchers/qt/CMakeLists.txt @@ -45,7 +45,7 @@ if (WIN32) ExternalProject_Add( qtlite - URL "https://public.highfidelity.com/dependencies/qtlite/qt-lite-5.9.9-win-oct-15-2019.zip" + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-win-oct-15-2019.zip" URL_HASH MD5=0176277bca37d219e83738caf3a698eb CONFIGURE_COMMAND "" BUILD_COMMAND "" @@ -78,7 +78,7 @@ endif () if (APPLE) ExternalProject_Add( qtlite - URL "https://public.highfidelity.com/dependencies/qtlite/qt-lite-5.9.9-mac.zip" + URL "${EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-mac.zip" URL_HASH MD5=0cd78d40e5f539a7e314cf99b6cae0d0 CONFIGURE_COMMAND "" BUILD_COMMAND ""