From 109cb9ebdccf3da6402ce01fa1027be34106b048 Mon Sep 17 00:00:00 2001 From: Conor Williams Date: Tue, 5 Mar 2024 10:00:17 +0000 Subject: [PATCH] [libfork] new port (#37048) This PR adds [libfork](https://github.com/ConorWilliams/libfork), a [portable continuation stealing framework](https://arxiv.org/abs/2402.18480). I am the author of the package. - [x] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [x] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines. - [x] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all `find_package` calls are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or disabled with [CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html). - [x] The versioning scheme in `vcpkg.json` matches what upstream says. - [x] The license declaration in `vcpkg.json` matches what upstream says. - [x] The installed as the "copyright" file matches what upstream says. - [x] The source code of the component installed comes from an authoritative source. - [x] The generated "usage text" is accurate. See [adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md) for context. - [x] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [x] Only one version is in the new port's versions file. - [x] Only one version is added to each modified port's versions file. --------- Co-authored-by: jim wang <122244446+jimwang118@users.noreply.github.com> --- ports/libfork/portfile.cmake | 22 ++++++++++++++++++++++ ports/libfork/usage | 4 ++++ ports/libfork/vcpkg.json | 19 +++++++++++++++++++ versions/baseline.json | 4 ++++ versions/l-/libfork.json | 9 +++++++++ 5 files changed, 58 insertions(+) create mode 100644 ports/libfork/portfile.cmake create mode 100644 ports/libfork/usage create mode 100644 ports/libfork/vcpkg.json create mode 100644 versions/l-/libfork.json diff --git a/ports/libfork/portfile.cmake b/ports/libfork/portfile.cmake new file mode 100644 index 0000000000..60615da61b --- /dev/null +++ b/ports/libfork/portfile.cmake @@ -0,0 +1,22 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO conorwilliams/libfork + REF "v${VERSION}" + SHA512 1e94f91924abdda8950af634896fcdc6317b6487a4b51619733758291d3fa2ba9004f9204440b2e6a827b5ba417503e7120e4d32cf3bb3a96495792efb14fcfc + HEAD_REF main +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(PACKAGE_NAME "libfork") + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") + +configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) + diff --git a/ports/libfork/usage b/ports/libfork/usage new file mode 100644 index 0000000000..06d186ab64 --- /dev/null +++ b/ports/libfork/usage @@ -0,0 +1,4 @@ +libfork provides CMake targets: + + find_package(libfork CONFIG REQUIRED) + target_link_libraries(main PRIVATE libfork::libfork) diff --git a/ports/libfork/vcpkg.json b/ports/libfork/vcpkg.json new file mode 100644 index 0000000000..1b64524027 --- /dev/null +++ b/ports/libfork/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "libfork", + "version": "3.7.1", + "description": "A bleeding-edge, lock-free, wait-free, continuation-stealing fork-join library built on C++20's coroutines.", + "homepage": "https://github.com/conorwilliams/libfork", + "license": "MPL-2.0", + "dependencies": [ + "boost-atomic", + "hwloc", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 87b1828197..a51811e559 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4352,6 +4352,10 @@ "baseline": "1.1.4", "port-version": 0 }, + "libfork": { + "baseline": "3.7.1", + "port-version": 0 + }, "libfort": { "baseline": "0.4.2", "port-version": 1 diff --git a/versions/l-/libfork.json b/versions/l-/libfork.json new file mode 100644 index 0000000000..8a44f40075 --- /dev/null +++ b/versions/l-/libfork.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "5217dcb7548a52356e0ead8c0c671fa4ee4efa41", + "version": "3.7.1", + "port-version": 0 + } + ] +}