aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/future-config
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/future-config')
-rw-r--r--vcpkg/ports/future-config/portfile.cmake40
-rw-r--r--vcpkg/ports/future-config/usage7
-rw-r--r--vcpkg/ports/future-config/vcpkg.json22
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"
+ ]
+}