diff --git a/devel/boost-libs/Makefile b/devel/boost-libs/Makefile index 2d327f1d3604..0ec1a3bdaf1e 100644 --- a/devel/boost-libs/Makefile +++ b/devel/boost-libs/Makefile @@ -1,58 +1,58 @@ # Created by: Alexander Churanov PORTNAME= boost-libs -PORTREVISION= 3 +PORTREVISION= 4 COMMENT= Free portable C++ libraries (without Boost.Python) BROKEN_sparc64= https://github.com/boostorg/context/commit/f2ef6326b6ed BUILD_DEPENDS+= bjam:devel/boost-jam OPTIONS_DEFINE= DEBUG OPTIMIZED_CFLAGS OPTIONS_MULTI= LOCALE OPTIONS_MULTI_LOCALE= ICONV ICU OPTIONS_DEFAULT= ICONV ICU ICONV_DESC= Boost.Locale with iconv encoding support ICU_DESC= Boost.Regex/Locale with ICU unicode support ICONV_USES= iconv ICONV_MAKE_ARGS= -sICONV_PATH=${ICONV_PREFIX} ICONV_MAKE_ARGS_OFF= boost.locale.iconv=off ICU_LIB_DEPENDS= libicuuc.so:devel/icu ICU_MAKE_ARGS= -sICU_PATH=${LOCALBASE} ICU_MAKE_ARGS_OFF= boost.locale.icu=off .include "${.CURDIR}/../boost-all/common.mk" .include "${.CURDIR}/../boost-all/compiled.mk" MAKE_ARGS+= --without-python MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} MAKE_ARGS_gcc= xdll-path=${_GCC_RUNTIME} ALL_TARGET= stage do-install: @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \ ${MAKE_ARGS:NDESTDIR=*:S,^--prefix=,&${STAGEDIR},} ${INSTALL_TARGET} @${FIND} ${STAGEDIR}${PREFIX}/lib/cmake -type f -exec \ ${REINPLACE_CMD} -i '' -e 's,${STAGEDIR},,' {} + # For some reasons BJAM forget about the links @cd ${WRKSRC}/stage/ && ${FIND} lib -type l | ${PAX} -rw -p p ${STAGEDIR}${PREFIX} # display pkg-message post-install: @${TOUCH} ${PKGMESSAGE} @${CAT} ${PKG_MESSAGE_FILE_THREADS} >> ${PKGMESSAGE} @${ECHO_CMD} >> ${PKGMESSAGE} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so @${REINPLACE_CMD} \ -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ -e "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g" \ -e "s|%%PYTHON_LIBDIR%%|${PYTHON_LIBDIR}|g" \ -e "s|%%PYTHON_VERSION%%|${PYTHON_VERSION}|g" ${PKGMESSAGE} .include diff --git a/devel/boost-libs/files/patch-c++20-concepts b/devel/boost-libs/files/patch-c++20-concepts new file mode 100644 index 000000000000..6ac8296abc84 --- /dev/null +++ b/devel/boost-libs/files/patch-c++20-concepts @@ -0,0 +1,69 @@ +From a707db8193b30b6cc4a3d10ee946f7f245e07097 Mon Sep 17 00:00:00 2001 +From: Christopher Kohlhoff +Date: Tue, 7 Apr 2020 11:18:31 +1000 +Subject: [PATCH] Support C++20 concept syntax. + +--- + include/boost/asio/async_result.hpp | 18 +++++++++++------- + include/boost/asio/detail/config.hpp | 10 +++++++--- + 2 files changed, 18 insertions(+), 10 deletions(-) + +diff --git a/include/boost/asio/async_result.hpp b/include/boost/asio/async_result.hpp +index 2f4b337d1..0eea0f471 100644 +--- boost/asio/async_result.hpp ++++ boost/asio/async_result.hpp +@@ -66,9 +66,10 @@ BOOST_ASIO_CONCEPT completion_signature = + #define BOOST_ASIO_COMPLETION_SIGNATURE \ + ::boost::asio::completion_signature + +-template ++template + BOOST_ASIO_CONCEPT completion_handler_for = +- detail::is_completion_handler_for::value; ++ detail::is_completion_signature::value ++ && detail::is_completion_handler_for::value; + + #define BOOST_ASIO_COMPLETION_HANDLER_FOR(s) \ + ::boost::asio::completion_handler_for +@@ -488,11 +489,14 @@ struct initiation_archetype + + } // namespace detail + +-template +-BOOST_ASIO_CONCEPT completion_token_for = requires(T&& t) +-{ +- async_initiate(detail::initiation_archetype{}, t); +-}; ++template ++BOOST_ASIO_CONCEPT completion_token_for = ++ detail::is_completion_signature::value ++ && ++ requires(T&& t) ++ { ++ async_initiate(detail::initiation_archetype{}, t); ++ }; + + #define BOOST_ASIO_COMPLETION_TOKEN_FOR(s) \ + ::boost::asio::completion_token_for +diff --git a/include/boost/asio/detail/config.hpp b/include/boost/asio/detail/config.hpp +index 27d1d6753..6b85cccea 100644 +--- boost/asio/detail/config.hpp ++++ boost/asio/detail/config.hpp +@@ -343,10 +343,14 @@ + // Support concepts on compilers known to allow them. + #if !defined(BOOST_ASIO_HAS_CONCEPTS) + # if !defined(BOOST_ASIO_DISABLE_CONCEPTS) +-# if __cpp_concepts ++# if defined(__cpp_concepts) + # define BOOST_ASIO_HAS_CONCEPTS 1 +-# define BOOST_ASIO_CONCEPT concept bool +-# endif // __cpp_concepts ++# if (__cpp_concepts >= 201707) ++# define BOOST_ASIO_CONCEPT concept ++# else // (__cpp_concepts >= 201707) ++# define BOOST_ASIO_CONCEPT concept bool ++# endif // (__cpp_concepts >= 201707) ++# endif // defined(__cpp_concepts) + # endif // !defined(BOOST_ASIO_DISABLE_CONCEPTS) + #endif // !defined(BOOST_ASIO_HAS_CONCEPTS) +