[flux] new port (#33407)

Co-authored-by: MonicaLiu <110024546+MonicaLiu0311@users.noreply.github.com>
This commit is contained in:
Michael Heyman 2023-09-07 03:04:52 -04:00 committed by GitHub
parent 37cc171326
commit c6ea5d087a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 87 additions and 0 deletions

25
ports/flux/portfile.cmake Normal file
View File

@ -0,0 +1,25 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO tcbrindle/flux
REF 1c128b50af95fc39b6683d437f9210239e219836
SHA512 c07d3053227d6a62f5a7b0aba8535c0ed42195249d131a77989b3ee79a697f8d540b68639dcd9e89b5cdd76ee5d7f07db9b3be23bc325761c85af625f507e393
HEAD_REF master
PATCHES
targets-fixup.patch
)
set(VCPKG_BUILD_TYPE release) # header-only port
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DFLUX_BUILD_EXAMPLES=OFF
-DFLUX_BUILD_TESTS=OFF
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/flux)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt")

View File

@ -0,0 +1,33 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
index e87b3c7..c6239f0 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -118,4 +118,27 @@ install(
DIRECTORY "${PROJECT_SOURCE_DIR}/include"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/.."
PATTERN "build2file" EXCLUDE
-)
+)
+
+#
+# Removes the INTERFACE_SOURCES flux::flux property in the flux-targets.cmake
+# file that is there only because of the poor interaction of the
+# $<BUILD_INTERFACE:...> with the install(TARGETS...) command. The generator
+# creates an empty string instead of no string and the install(TARGETS...)
+# takes that empty string as a indication that the code should put the source
+# path in as a source file list (why?).
+#
+# The code here gets inserted into near the end of the cmake_install.cmake
+# file. It reads the flux-targets.cmake file into memory, clears the file,
+# then recreates the file skipping the line that contains the malformed
+# INTERFACE_SOURCES property value.
+#
+set(FLUX_TARGETS_FILE "${CMAKE_INSTALL_PREFIX}/lib/cmake/flux/flux-targets.cmake")
+install(CODE
+ "file (STRINGS \"${FLUX_TARGETS_FILE}\" FLUX_TARGETS_FILE_LINES)
+ file(WRITE \"${FLUX_TARGETS_FILE}\" \"\")
+ foreach(FLUX_TARGETS_FILE_LINE IN LISTS FLUX_TARGETS_FILE_LINES)
+ if (NOT FLUX_TARGETS_FILE_LINE MATCHES \"^[ \t]*INTERFACE_SOURCES[ \t].*$\")
+ file(APPEND \"${FLUX_TARGETS_FILE}\" \"\${FLUX_TARGETS_FILE_LINE}\\n\")
+ endif()
+ endforeach()")

16
ports/flux/vcpkg.json Normal file
View File

@ -0,0 +1,16 @@
{
"name": "flux",
"version-date": "2023-08-25",
"description": "Experimental C++20 library that provides a broadly equivalent feature set to C++20 Ranges, but uses a slightly different model based around cursors rather than iterators. Safer, easier, more efficient, compatible.",
"homepage": "https://github.com/tcbrindle/flux",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -2608,6 +2608,10 @@
"baseline": "2.3.3",
"port-version": 0
},
"flux": {
"baseline": "2023-08-25",
"port-version": 0
},
"fmem": {
"baseline": "c-libs-2ccee3d2fb",
"port-version": 3

9
versions/f-/flux.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "3be6cb846e140bc6b745f684bbd4141cae6c4dbd",
"version-date": "2023-08-25",
"port-version": 0
}
]
}