diff --git a/ports/llfio/portfile.cmake b/ports/llfio/portfile.cmake index 6f133d71c1..b8b45822e8 100644 --- a/ports/llfio/portfile.cmake +++ b/ports/llfio/portfile.cmake @@ -1,4 +1,4 @@ -if (NOT "cxx20" IN_LIST FEATURES) +if ("polyfill-cxx20" IN_LIST FEATURES) message(WARNING [=[ LLFIO depends on Outcome which depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's, Outcome's and LLFIO's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against. ]=]) @@ -70,7 +70,7 @@ vcpkg_cmake_configure( if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_cmake_build(TARGET install.dl) -else(VCPKG_LIBRARY_LINKAGE STREQUAL "static") +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_cmake_build(TARGET install.sl) endif() diff --git a/ports/llfio/vcpkg.json b/ports/llfio/vcpkg.json index 52457a800b..2ddcfa8103 100644 --- a/ports/llfio/vcpkg.json +++ b/ports/llfio/vcpkg.json @@ -1,7 +1,7 @@ { "name": "llfio", "version": "2.0-20220112", - "port-version": 1, + "port-version": 2, "description": "P1031 low level file i/o and filesystem library for the C++ standard", "homepage": "https://github.com/ned14/llfio", "license": "Apache-2.0 OR BSL-1.0", @@ -18,33 +18,33 @@ } ], "features": { - "cxx17": { - "description": "Do not polyfill C++17 entities", - "dependencies": [ - { - "name": "ned14-internal-quickcpplib", - "default-features": false, - "features": [ - "cxx17" - ] - } - ] - }, - "cxx20": { - "description": "Do not polyfill C++20 entities", + "polyfill-cxx17": { + "description": "Polyfill C++17 entities", "dependencies": [ { "name": "llfio", "default-features": false, "features": [ - "cxx17" + "polyfill-cxx20" ] }, { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ - "cxx20" + "polyfill-cxx17" + ] + } + ] + }, + "polyfill-cxx20": { + "description": "Polyfill C++20 entities", + "dependencies": [ + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx20" ] } ] diff --git a/ports/ned14-internal-quickcpplib/portfile.cmake b/ports/ned14-internal-quickcpplib/portfile.cmake index 8f78243a0a..d9878b6bf9 100644 --- a/ports/ned14-internal-quickcpplib/portfile.cmake +++ b/ports/ned14-internal-quickcpplib/portfile.cmake @@ -10,11 +10,19 @@ include("${CURRENT_PORT_DIR}/sha_manifest.cmake") -if (NOT "cxx20" IN_LIST FEATURES) +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + INVERTED_FEATURES + polyfill-cxx17 QUICKCPPLIB_REQUIRE_CXX17 + polyfill-cxx20 QUICKCPPLIB_REQUIRE_CXX20 +) + +if (NOT QUICKCPPLIB_REQUIRE_CXX20) message(WARNING [=[ - QuickCppLib and its downstream dependencies Outcome and LLFIO were tested against gsl-lite version 0.38.1 and byte-lite version 0.3.0. They are not guaranteed to work with newer versions, with failures experienced in the past up-to-and-including runtime crashes. You can pin the versions as verified to work in QuickCppLib's CI in your manifest file by adding: + QuickCppLib and its downstream dependencies Outcome and LLFIO were tested against span-lite version 0.10.3 and byte-lite version 0.3.0. They are not guaranteed to work with newer versions, with failures experienced in the past up-to-and-including runtime crashes. You can pin the versions as verified to work in QuickCppLib's CI in your manifest file by adding: "overrides": [ - { "name": "gsl-lite", "version": "0.38.1" }, + { "name": "span-lite", "version": "0.10.3" }, { "name": "byte-lite", "version": "0.3.0" } ] Do not report issues to upstream without first pinning these previous versions. @@ -32,15 +40,13 @@ vcpkg_from_github( ) # Quickcpplib deploys subsets of the dependency headers into a private subdirectory -if (NOT "cxx17" IN_LIST FEATURES) +if (NOT QUICKCPPLIB_REQUIRE_CXX17) file(COPY "${CURRENT_INSTALLED_DIR}/include/nonstd/byte.hpp" DESTINATION "${SOURCE_PATH}/include/quickcpplib/byte/include/nonstd") endif() -if (NOT "cxx20" IN_LIST FEATURES) - file(COPY "${CURRENT_INSTALLED_DIR}/include/gsl/gsl-lite.hpp" - DESTINATION "${SOURCE_PATH}/include/quickcpplib/gsl-lite/include/gsl") - file(COPY "${CURRENT_INSTALLED_DIR}/include/gsl-lite/gsl-lite.hpp" - DESTINATION "${SOURCE_PATH}/include/quickcpplib/gsl-lite/include/gsl-lite") +if (NOT QUICKCPPLIB_REQUIRE_CXX20) + file(COPY "${CURRENT_INSTALLED_DIR}/include/nonstd/span.hpp" + DESTINATION "${SOURCE_PATH}/include/quickcpplib/span-lite/include/nonstd") endif() vcpkg_from_github( @@ -56,13 +62,6 @@ file(COPY "${OPT_SOURCE_PATH}/." DESTINATION "${SOURCE_PATH}/include/quickcpplib # Because quickcpplib's deployed files are header-only, the debug build it not necessary set(VCPKG_BUILD_TYPE release) -vcpkg_check_features( - OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - cxx17 QUICKCPPLIB_REQUIRE_CXX17 - cxx20 QUICKCPPLIB_REQUIRE_CXX20 -) - # Use QuickCppLib's own build process, skipping examples and tests. vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" @@ -78,6 +77,20 @@ vcpkg_cmake_configure( vcpkg_cmake_install() +if (QUICKCPPLIB_REQUIRE_CXX17) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/byte.hpp" "#if QUICKCPPLIB_USE_STD_BYTE" "#if 1") +else () + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/byte.hpp" "#if QUICKCPPLIB_USE_STD_BYTE" "#if 0") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/byte.hpp" "#include \"byte/include/nonstd/byte.hpp\"" "#include ") +endif() +if (QUICKCPPLIB_REQUIRE_CXX20) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/span.hpp" "#ifdef QUICKCPPLIB_USE_STD_SPAN" "#if 1") +else () + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/span.hpp" "#ifdef QUICKCPPLIB_USE_STD_SPAN" "#if 0") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/span.hpp" "#elif(_HAS_CXX20 || __cplusplus >= 202002) && __has_include()" "#elif 0") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quickcpplib/span.hpp" "#include \"span-lite/include/nonstd/span.hpp\"" "#include ") +endif() + vcpkg_cmake_config_fixup( PACKAGE_NAME quickcpplib CONFIG_PATH lib/cmake/quickcpplib diff --git a/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch b/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch index 7ad3c3b9a7..de49af0234 100644 --- a/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch +++ b/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch @@ -1,5 +1,5 @@ diff --git a/cmake/headers.cmake b/cmake/headers.cmake -index 1aad359..e5053ed 100644 +index 3924a2a..f1e32d9 100644 --- a/cmake/headers.cmake +++ b/cmake/headers.cmake @@ -15,8 +15,6 @@ set(quickcpplib_HEADERS @@ -11,19 +11,15 @@ index 1aad359..e5053ed 100644 "include/quickcpplib/config.hpp" "include/quickcpplib/console_colours.hpp" "include/quickcpplib/cpp_feature.h" -@@ -27,15 +25,8 @@ set(quickcpplib_HEADERS - "include/quickcpplib/erasure_cast.hpp" - "include/quickcpplib/execinfo_win64.h" - "include/quickcpplib/function_ptr.hpp" -- "include/quickcpplib/gsl-lite/gsl-lite.natvis" - "include/quickcpplib/gsl-lite/include/gsl-lite/gsl-lite.hpp" -- "include/quickcpplib/gsl-lite/include/gsl.h" -- "include/quickcpplib/gsl-lite/include/gsl.hpp" -- "include/quickcpplib/gsl-lite/include/gsl/gsl-lite-vc6.hpp" -- "include/quickcpplib/gsl-lite/include/gsl/gsl-lite.h" - "include/quickcpplib/gsl-lite/include/gsl/gsl-lite.hpp" -- "include/quickcpplib/gsl-lite/test/gsl-lite.t.hpp" -- "include/quickcpplib/gsl-lite/test/lest_cpp03.hpp" - "include/quickcpplib/import.h" - "include/quickcpplib/in_place_detach_attach.hpp" - "include/quickcpplib/mem_flush_loads_stores.hpp" +@@ -40,11 +38,7 @@ set(quickcpplib_HEADERS + "include/quickcpplib/ringbuffer_log.hpp" + "include/quickcpplib/scope.hpp" + "include/quickcpplib/signal_guard.hpp" +- "include/quickcpplib/span-lite/example/nonstd/span.tweak.hpp" + "include/quickcpplib/span-lite/include/nonstd/span.hpp" +- "include/quickcpplib/span-lite/test/lest/lest_cpp03.hpp" +- "include/quickcpplib/span-lite/test/nonstd/span.tweak.hpp" +- "include/quickcpplib/span-lite/test/span-main.t.hpp" + "include/quickcpplib/span.hpp" + "include/quickcpplib/spinlock.hpp" + "include/quickcpplib/spinlock.natvis" diff --git a/ports/ned14-internal-quickcpplib/sha_manifest.cmake b/ports/ned14-internal-quickcpplib/sha_manifest.cmake index d98e7c99c7..25aa1d36af 100644 --- a/ports/ned14-internal-quickcpplib/sha_manifest.cmake +++ b/ports/ned14-internal-quickcpplib/sha_manifest.cmake @@ -1,5 +1,5 @@ -set(QUICKCPPLIB_REF 568e1811edf0f47caafbeb62a4f9fe4e885a0f96) -set(QUICKCPPLIB_SHA512 1f14d9603a308258d7632817942125d4330c82a2b3f44cd1238c8cb76f3c0c6cd7c0ad7b2cac75259148fd76f323626e7fed1c613404b173982a1be18c27458c) +set(QUICKCPPLIB_REF 9cdcd45d9036247dcade3d3ab1ff4adbe14b1927) +set(QUICKCPPLIB_SHA512 c23831c7a43b678bc33f11b3ccfc31ccb580f7225bfb7771010cdb5bc2d6a45a1d3c7b6b2dda7c5691fae817da3b303265156d434d7cb6efb9a86714b0095675) set(OPTIONAL_REF 2b43315458a99fc5de1da6e7bc0ddd364b26d643) set(OPTIONAL_SHA512 1952386cd3c7b963861f9634055e1baa4181d398d6f1b068a8a3f411368432bdcd42e47aadfa856584ed9a7c724a1c83369243ccb653e650af5c9155b42a84f4) diff --git a/ports/ned14-internal-quickcpplib/vcpkg.json b/ports/ned14-internal-quickcpplib/vcpkg.json index af40d4cc83..d3dbc28695 100644 --- a/ports/ned14-internal-quickcpplib/vcpkg.json +++ b/ports/ned14-internal-quickcpplib/vcpkg.json @@ -1,12 +1,10 @@ { "name": "ned14-internal-quickcpplib", - "version-date": "2022-06-17", + "version-date": "2022-07-04", "description": "NOT FOR EXTERNAL CONSUMPTION, a set of internal scripts used by ned14's libraries.", "homepage": "https://github.com/ned14/quickcpplib", "license": "Apache-2.0 OR BSL-1.0", "dependencies": [ - "byte-lite", - "gsl-lite", { "name": "vcpkg-cmake", "host": true @@ -17,20 +15,24 @@ } ], "features": { - "cxx17": { - "description": "Do not polyfill C++17 entities" - }, - "cxx20": { - "description": "Do not polyfill C++20 entities", + "polyfill-cxx17": { + "description": "Polyfill std::byte with byte-lite", "dependencies": [ + "byte-lite", { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ - "cxx17" + "polyfill-cxx20" ] } ] + }, + "polyfill-cxx20": { + "description": "Polyfill std::span with span-lite", + "dependencies": [ + "span-lite" + ] } } } diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 1d1447834c..75898e8581 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -560,6 +560,10 @@ linenoise-ng:x64-uwp=fail live555:arm-uwp=fail live555:x64-osx=fail live555:x64-uwp=fail +# fails due to an upstream bug +llfio:arm64-windows=fail +# fails due to an outdated gcc version +llfio:x64-linux=fail llgl:arm-uwp=fail llgl:x64-uwp=fail log4cplus:arm-uwp=fail diff --git a/versions/baseline.json b/versions/baseline.json index b81ee4dec4..83f70f3bdf 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4298,7 +4298,7 @@ }, "llfio": { "baseline": "2.0-20220112", - "port-version": 1 + "port-version": 2 }, "llgl": { "baseline": "2019-08-15", @@ -4857,7 +4857,7 @@ "port-version": 0 }, "ned14-internal-quickcpplib": { - "baseline": "2022-06-17", + "baseline": "2022-07-04", "port-version": 0 }, "neon2sse": { diff --git a/versions/l-/llfio.json b/versions/l-/llfio.json index f7910b2e6d..45d6ee4b2c 100644 --- a/versions/l-/llfio.json +++ b/versions/l-/llfio.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c3d2d8d9dfddbbf74af7e1f603ac18e4aee2fe7a", + "version": "2.0-20220112", + "port-version": 2 + }, { "git-tree": "bc96b88ab308808ce26135e75038c4b316d5533c", "version": "2.0-20220112", diff --git a/versions/n-/ned14-internal-quickcpplib.json b/versions/n-/ned14-internal-quickcpplib.json index 6d942e9b40..aea0033245 100644 --- a/versions/n-/ned14-internal-quickcpplib.json +++ b/versions/n-/ned14-internal-quickcpplib.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "081192c8586e086ef1fe8beb576255f86dc9458e", + "version-date": "2022-07-04", + "port-version": 0 + }, { "git-tree": "3ab059ed3893e5635482409f22bd73cdbcec2166", "version-date": "2022-06-17",