aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Traversaro <silvio.traversaro@iit.it>2020-08-01 01:49:53 +0200
committerGitHub <noreply@github.com>2020-07-31 16:49:53 -0700
commit00e44369cb23f911821ee96888cbb4785810ba07 (patch)
treedfcbb3c5c8aa79cf7772875f652a181b50d3c7d7
parent5c66f720c0bc28071955e0c224075cae556bf286 (diff)
downloadvcpkg-00e44369cb23f911821ee96888cbb4785810ba07.tar.gz
vcpkg-00e44369cb23f911821ee96888cbb4785810ba07.zip
[tomlplusplus] Add new port (#10786)
* vcpkg_fixup_cmake_targets: Add support for processing cmake config files generated by meson In particular this adds a workaround for the differences between CMake and meson described in https://github.com/mesonbuild/meson/issues/6955 * Add tomlplusplus * Resolve conflicts * Update scripts/ci.baseline.txt * [tomplusplus] Update ci.basline.txt Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com> Co-authored-by: wangli28 <wangli28@beyondsoft.com> Co-authored-by: Cheney Wang <38240633+Cheney-W@users.noreply.github.com>
-rw-r--r--ports/tomlplusplus/CONTROL5
-rw-r--r--ports/tomlplusplus/portfile.cmake24
-rw-r--r--scripts/cmake/vcpkg_fixup_cmake_targets.cmake4
3 files changed, 33 insertions, 0 deletions
diff --git a/ports/tomlplusplus/CONTROL b/ports/tomlplusplus/CONTROL
new file mode 100644
index 000000000..7ac41ccf3
--- /dev/null
+++ b/ports/tomlplusplus/CONTROL
@@ -0,0 +1,5 @@
+Source: tomlplusplus
+Version: 1.3.0-3
+Homepage: https://marzer.github.io/tomlplusplus/
+Description: Header-only TOML config file parser and serializer for modern C++.
+Supports: !(arm|uwp|linux|osx)
diff --git a/ports/tomlplusplus/portfile.cmake b/ports/tomlplusplus/portfile.cmake
new file mode 100644
index 000000000..604d44d43
--- /dev/null
+++ b/ports/tomlplusplus/portfile.cmake
@@ -0,0 +1,24 @@
+vcpkg_fail_port_install(ON_ARCH "arm" "arm64" ON_TARGET "linux" "osx" "uwp")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO marzer/tomlplusplus
+ REF v1.3.0
+ SHA512 3c758c59f4bddfc646b596c358909f37c35d3e7200bd04663bf8c6493c2f64797352dd8a788e68bcc1a785fa41ac2dfc5621bf5328018748bdc3c5cea621b3bc
+ HEAD_REF master
+)
+
+vcpkg_configure_meson(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS -DGENERATE_CMAKE_CONFIG=enabled
+ -DBUILD_TESTS=disabled
+ -DBUILD_EXAMPLES=disabled
+)
+
+vcpkg_install_meson()
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
index ad2077b4d..0be2dfc54 100644
--- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
+++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake
@@ -169,6 +169,10 @@ function(vcpkg_fixup_cmake_targets)
"get_filename_component\\(PACKAGE_PREFIX_DIR \"\\\${CMAKE_CURRENT_LIST_DIR}/\\.\\./(\\.\\./)*\" ABSOLUTE\\)"
"get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../\" ABSOLUTE)"
_contents "${_contents}")
+ string(REGEX REPLACE
+ "get_filename_component\\(PACKAGE_PREFIX_DIR \"\\\${CMAKE_CURRENT_LIST_DIR}/\\.\\.((\\\\|/)\\.\\.)*\" ABSOLUTE\\)"
+ "get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../\" ABSOLUTE)"
+ _contents "${_contents}") # This is a meson-related workaround, see https://github.com/mesonbuild/meson/issues/6955
#Fix wrongly absolute paths to install dir with the correct dir using ${_IMPORT_PREFIX}
string(REPLACE "${CURRENT_INSTALLED_DIR}" [[${_IMPORT_PREFIX}]] _contents "${_contents}")
file(WRITE ${MAIN_CMAKE} "${_contents}")