diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/future-config | |
Diffstat (limited to 'vcpkg/ports/future-config')
| -rw-r--r-- | vcpkg/ports/future-config/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/future-config/usage | 7 | ||||
| -rw-r--r-- | vcpkg/ports/future-config/vcpkg.json | 22 |
3 files changed, 69 insertions, 0 deletions
diff --git a/vcpkg/ports/future-config/portfile.cmake b/vcpkg/ports/future-config/portfile.cmake new file mode 100644 index 0000000..c6405d0 --- /dev/null +++ b/vcpkg/ports/future-config/portfile.cmake @@ -0,0 +1,40 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO F-I-D-O/Future-Config
+ REF "v${VERSION}"
+ SHA512 bbb6ce397963c15f71d4c10b14a69d8047ff6e49eaf1ad65de840cce96cee459a9145b0257a53a0a4ddab6f35122d3fd9fbad125503e16b23a6a7907a0bee5c7
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}/cpp"
+ OPTIONS
+ -DFCONFIG_BUILD_SHARED_LIBS=${BUILD_SHARED}
+ -DFCONFIG_ENABLE_TESTS=OFF
+ -DFCONFIG_BUILDER_COPY_LIBRARY_DEPENDENCIES_MANUALLY=OFF
+ -DFCONFIG_INSTALL_BUILDER_TOOL_AND_HEADERS_DEBUG=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup()
+
+# move the jinja template for the builder tool from bin directory to tools directory
+set(BIN_DIR "${CURRENT_PACKAGES_DIR}/bin")
+set(BIN_DATA_DIR "${BIN_DIR}/data")
+set(PORT_TOOL_DATA_DIR "${CURRENT_PACKAGES_DIR}/tools/${PORT}/data")
+file(MAKE_DIRECTORY "${PORT_TOOL_DATA_DIR}")
+file(RENAME "${BIN_DATA_DIR}/config.jinja" "${PORT_TOOL_DATA_DIR}/config.jinja")
+file(REMOVE_RECURSE "${BIN_DATA_DIR}")
+
+# Copy the builder tool dependencies
+vcpkg_copy_tools(
+ TOOL_NAMES fconfig_builder
+ AUTO_CLEAN
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
diff --git a/vcpkg/ports/future-config/usage b/vcpkg/ports/future-config/usage new file mode 100644 index 0000000..89e68c0 --- /dev/null +++ b/vcpkg/ports/future-config/usage @@ -0,0 +1,7 @@ +future-config provides CMake targets and functions:
+
+ find_package(future-config CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE future-config::future-config)
+
+ run_fconfig_builder(...)
+ copy_master_config(...)
diff --git a/vcpkg/ports/future-config/vcpkg.json b/vcpkg/ports/future-config/vcpkg.json new file mode 100644 index 0000000..10b055d --- /dev/null +++ b/vcpkg/ports/future-config/vcpkg.json @@ -0,0 +1,22 @@ +{ + "name": "future-config", + "version": "0.1.0", + "description": "C++ implementation of the Future Config configuration system", + "homepage": "https://github.com/F-I-D-O/Future-Config", + "license": "LGPL-3.0-or-later", + "dependencies": [ + "fmt", + "inja", + "spdlog", + "tclap", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "yaml-cpp" + ] +} |