aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/clipp
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/clipp')
-rw-r--r--vcpkg/ports/clipp/Fix-result_of-deprecated-in-C++20.patch47
-rw-r--r--vcpkg/ports/clipp/portfile.cmake18
-rw-r--r--vcpkg/ports/clipp/vcpkg.json13
3 files changed, 78 insertions, 0 deletions
diff --git a/vcpkg/ports/clipp/Fix-result_of-deprecated-in-C++20.patch b/vcpkg/ports/clipp/Fix-result_of-deprecated-in-C++20.patch
new file mode 100644
index 0000000..6613d21
--- /dev/null
+++ b/vcpkg/ports/clipp/Fix-result_of-deprecated-in-C++20.patch
@@ -0,0 +1,47 @@
+diff --git a/include/clipp.h b/include/clipp.h
+index d7b101e..a1bec2d 100644
+--- a/include/clipp.h
++++ b/include/clipp.h
+@@ -155,16 +155,27 @@ namespace traits {
+ * @brief function (class) signature type trait
+ *
+ *****************************************************************************/
++#if defined(__cpp_lib_is_invocable)
+ template<class Fn, class Ret, class... Args>
+ constexpr auto
+ check_is_callable(int) -> decltype(
+ std::declval<Fn>()(std::declval<Args>()...),
+ std::integral_constant<bool,
+- std::is_same<Ret,typename std::result_of<Fn(Args...)>::type>::value>{} );
++ std::is_same<Ret,typename std::invoke_result<Fn,Args...>::type>::value>{} );
+
+-template<class,class,class...>
++template<class Fn, class Ret>
+ constexpr auto
+-check_is_callable(long) -> std::false_type;
++check_is_callable_without_arg(int) -> decltype(
++ std::declval<Fn>()(),
++ std::integral_constant<bool,
++ std::is_same<Ret,typename std::invoke_result<Fn>::type>::value>{} );
++#else
++template<class Fn, class Ret, class... Args>
++constexpr auto
++check_is_callable(int) -> decltype(
++ std::declval<Fn>()(std::declval<Args>()...),
++ std::integral_constant<bool,
++ std::is_same<Ret,typename std::result_of<Fn(Args...)>::type>::value>{} );
+
+ template<class Fn, class Ret>
+ constexpr auto
+@@ -172,6 +183,11 @@ check_is_callable_without_arg(int) -> decltype(
+ std::declval<Fn>()(),
+ std::integral_constant<bool,
+ std::is_same<Ret,typename std::result_of<Fn()>::type>::value>{} );
++#endif
++
++template<class,class,class...>
++constexpr auto
++check_is_callable(long) -> std::false_type;
+
+ template<class,class>
+ constexpr auto
diff --git a/vcpkg/ports/clipp/portfile.cmake b/vcpkg/ports/clipp/portfile.cmake
new file mode 100644
index 0000000..3db19af
--- /dev/null
+++ b/vcpkg/ports/clipp/portfile.cmake
@@ -0,0 +1,18 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO "muellan/clipp"
+ REF 2c32b2f1f7cc530b1ec1f62c92f698643bb368db
+ SHA512 4645fafe85a8099ea97b85e939747a12e9b3b92213b5b8207a9c277537377b77b5daebd88a4c090ea89cfff2937a9fc155da6e8b5558574d7129227c28826e1c
+ HEAD_REF master
+ PATCHES
+ Fix-result_of-deprecated-in-C++20.patch # https://github.com/muellan/clipp/pull/54
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+)
+
+vcpkg_cmake_install()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/clipp/vcpkg.json b/vcpkg/ports/clipp/vcpkg.json
new file mode 100644
index 0000000..f3491d8
--- /dev/null
+++ b/vcpkg/ports/clipp/vcpkg.json
@@ -0,0 +1,13 @@
+{
+ "name": "clipp",
+ "version-date": "2019-04-30",
+ "port-version": 2,
+ "description": "command line interfaces for modern C++",
+ "license": "MIT",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ]
+}