From fc98ae65d997c9b9d0619c58e967f90e6a969fbc Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Mon, 15 Jul 2024 19:47:48 +0200 Subject: [PATCH] [stdexec] Move all downloads to portfile, use stable refs (#39795) --- ports/stdexec/portfile.cmake | 51 +++++++++++++++++++++++++++--------- ports/stdexec/vcpkg.json | 2 +- versions/baseline.json | 2 +- versions/s-/stdexec.json | 5 ++++ 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/ports/stdexec/portfile.cmake b/ports/stdexec/portfile.cmake index 9ac8b1b6f1..d3d64cbf3d 100644 --- a/ports/stdexec/portfile.cmake +++ b/ports/stdexec/portfile.cmake @@ -1,3 +1,4 @@ +set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH @@ -12,33 +13,59 @@ vcpkg_from_github( vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_RAPIDS REPO rapidsai/rapids-cmake - REF c7a28304639a2ed460181b4753f3280c7833c718 - SHA512 9a87fdef490199337778b8c9b4df31ca37d65df23803d058f13b406dcfda4d96d992b2780b0b878b61b027c0dc848351496a0f32e779f95298f259bab040b49b + REF v24.02.01 # stable tag (stdexec wants branch-24.02) + SHA512 bb8f2b1177f6451d61f2de26f39fd6d31c2f0fb80b4cd1409edc3e6e4f726e80716ec177d510d0f31b8f39169cd8b58290861f0f217daedbd299e8e426d25891 HEAD_REF main ) - -vcpkg_download_distfile(RAPIDS_cmake - URLS "https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.02/RAPIDS.cmake" - FILENAME "RAPIDS.cmake" - SHA512 e7830364222a9ea46fe7756859dc8d36e401c720f6a49880a2945a9ebc5bd9aa7e40a8bd382e1cae3af4235d5c9a7998f38331e23b676af7c5c72e7f00e61f0c +vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" + [[file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-24.02/RAPIDS.cmake]] + "file(COPY_FILE \"${SOURCE_PATH_RAPIDS}/RAPIDS.cmake\"" ) -file(COPY "${RAPIDS_cmake}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/") vcpkg_download_distfile(execution_bs - URLS "https://raw.githubusercontent.com/cplusplus/sender-receiver/main/execution.bs" + URLS "https://raw.githubusercontent.com/cplusplus/sender-receiver/12fde4af201017e49efd39178126f661a04dbb94/execution.bs" FILENAME "execution.bs" SHA512 90bb992356f22e4091ed35ca922f6a0143abd748499985553c0660eaf49f88d031a8f900addb6b4cf9a39ac8d1ab7c858b79677e2459136a640b2c52afe3dd23 ) -file(COPY "${execution_bs}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/") +vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" + [[file(DOWNLOAD "https://raw.githubusercontent.com/cplusplus/sender-receiver/main/execution.bs"]] + "file(COPY_FILE \"${execution_bs}\"" +) -set(VCPKG_BUILD_TYPE release) +# stdexec uses cpm (via rapids-cmake). +# Setup a local cpm cache from assets cached by vcpkg +file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/cpm") +# Version from rapids-cmake cpm/detail/download.cmake +set(CPM_DOWNLOAD_VERSION 0.38.5) +vcpkg_download_distfile(CPM_CMAKE + URLS https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + FILENAME CPM_${CPM_DOWNLOAD_VERSION}.cmake + SHA512 a376162be4fe70408c000409f7a3798e881ed183cb51d57c9540718fdd539db9028755653bd3965ae7764b5c3e36adea81e0752fe85e40790f022fa1c4668cc6 +) +file(INSTALL "${CPM_CMAKE}" DESTINATION "${CURRENT_BUILDTREES_DIR}/cpm/cpm") + +# Version and patch from stdexec CMakeLists.txt +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH_ICM + REPO iboB/icm + REF v1.5.0 # from stdexec CMakeLists.txt + SHA512 0d5173d7640e2b411dddfc67e1ee19c921817e58de36ea8325430ee79408edc0a23e17159e22dc4a05f169596ee866effa69e7cd0000b08f47bd090d5003ba1c + HEAD_REF master + PATCHES + "${SOURCE_PATH}/cmake/cpm/patches/icm/regex-build-error.diff" +) + +vcpkg_find_acquire_program(GIT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTDEXEC_BUILD_TESTS=OFF -DSTDEXEC_BUILD_EXAMPLES=OFF - -DFETCHCONTENT_SOURCE_DIR_RAPIDS-CMAKE="${SOURCE_PATH_RAPIDS}" + "-DFETCHCONTENT_SOURCE_DIR_RAPIDS-CMAKE=${SOURCE_PATH_RAPIDS}" + "-DCPM_SOURCE_CACHE=${CURRENT_BUILDTREES_DIR}/cpm" + "-DCPM_icm_SOURCE=${SOURCE_PATH_ICM}" + "-DGIT_EXECUTABLE=${GIT}" ) vcpkg_cmake_install() diff --git a/ports/stdexec/vcpkg.json b/ports/stdexec/vcpkg.json index 8a5874a585..39e6e1e1bc 100644 --- a/ports/stdexec/vcpkg.json +++ b/ports/stdexec/vcpkg.json @@ -1,7 +1,7 @@ { "name": "stdexec", "version-date": "2024-06-16", - "port-version": 1, + "port-version": 2, "description": "stdexec is an experimental reference implementation of the Senders model of asynchronous programming proposed by P2300 - std::execution for adoption into the C++ Standard.", "homepage": "https://github.com/NVIDIA/stdexec", "license": "Apache-2.0", diff --git a/versions/baseline.json b/versions/baseline.json index 3be79ab2ad..3cd9493b34 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -8530,7 +8530,7 @@ }, "stdexec": { "baseline": "2024-06-16", - "port-version": 1 + "port-version": 2 }, "stduuid": { "baseline": "1.2.3", diff --git a/versions/s-/stdexec.json b/versions/s-/stdexec.json index ae08895dab..7d375b67b7 100644 --- a/versions/s-/stdexec.json +++ b/versions/s-/stdexec.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "06777edff8fc92c3716e6a800ae44c8c80cf8af3", + "version-date": "2024-06-16", + "port-version": 2 + }, { "git-tree": "1bc8de1856cd06c3b1c1a04c580ef085b3f766ab", "version-date": "2024-06-16",