From 408954060bfeada07587a51635de836d0e0ca0ab Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sun, 22 Sep 2019 13:24:23 -0400 Subject: [PATCH] Fix boost problems with MSVC --- .../include/boost/config/pragma_message.hpp | 31 +++++++++++ .../preprocessor/seq/detail/to_list_msvc.hpp | 55 +++++++++++++++++++ cmake/configure/configure_2_boost.cmake | 8 ++- 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 bundled/boost-1.70.0/include/boost/config/pragma_message.hpp create mode 100644 bundled/boost-1.70.0/include/boost/preprocessor/seq/detail/to_list_msvc.hpp diff --git a/bundled/boost-1.70.0/include/boost/config/pragma_message.hpp b/bundled/boost-1.70.0/include/boost/config/pragma_message.hpp new file mode 100644 index 0000000000..49a66da949 --- /dev/null +++ b/bundled/boost-1.70.0/include/boost/config/pragma_message.hpp @@ -0,0 +1,31 @@ +#ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED +#define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED + +// Copyright 2017 Peter Dimov. +// +// Distributed under the Boost Software License, Version 1.0. +// +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// BOOST_PRAGMA_MESSAGE("message") +// +// Expands to the equivalent of #pragma message("message") +// +// Note that this header is C compatible. + +#include + +#if defined(BOOST_DISABLE_PRAGMA_MESSAGE) +# define BOOST_PRAGMA_MESSAGE(x) +#elif defined(__INTEL_COMPILER) +# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) +#elif defined(__GNUC__) +# define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x))) +#elif defined(_MSC_VER) +# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x)) +#else +# define BOOST_PRAGMA_MESSAGE(x) +#endif + +#endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED \ No newline at end of file diff --git a/bundled/boost-1.70.0/include/boost/preprocessor/seq/detail/to_list_msvc.hpp b/bundled/boost-1.70.0/include/boost/preprocessor/seq/detail/to_list_msvc.hpp new file mode 100644 index 0000000000..12f2c039b4 --- /dev/null +++ b/bundled/boost-1.70.0/include/boost/preprocessor/seq/detail/to_list_msvc.hpp @@ -0,0 +1,55 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2016. * +# * Distributed under the Boost Software License, Version 1.0. (See * +# * accompanying file LICENSE_1_0.txt or copy at * +# * http://www.boost.org/LICENSE_1_0.txt) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_TO_LIST_MSVC_HPP +# define BOOST_PREPROCESSOR_SEQ_DETAIL_TO_LIST_MSVC_HPP +# +# include +# +# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# +# include +# include +# include +# include +# +# define BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_RESULT(state) \ + BOOST_PP_TUPLE_ELEM(2, 0, state) \ +/**/ +# define BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_SIZE(state) \ + BOOST_PP_TUPLE_ELEM(2, 1, state) \ +/**/ +# define BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_PRED(d,state) \ + BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_SIZE(state) \ +/**/ +# define BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_OP(d,state) \ + ( \ + BOOST_PP_CAT(BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_RESULT(state),), \ + BOOST_PP_DEC(BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_SIZE(state)) \ + ) \ +/**/ +# +# /* BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC */ +# +# define BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC(result,seqsize) \ + BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_STATE_RESULT \ + ( \ + BOOST_PP_WHILE \ + ( \ + BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_PRED, \ + BOOST_PP_SEQ_DETAIL_TO_LIST_MSVC_OP, \ + (result,seqsize) \ + ) \ + ) \ +/**/ +# endif // BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() +# +# endif // BOOST_PREPROCESSOR_SEQ_DETAIL_TO_LIST_MSVC_HPP \ No newline at end of file diff --git a/cmake/configure/configure_2_boost.cmake b/cmake/configure/configure_2_boost.cmake index 8485ec42ae..aa78f31475 100644 --- a/cmake/configure/configure_2_boost.cmake +++ b/cmake/configure/configure_2_boost.cmake @@ -63,15 +63,19 @@ MACRO(FEATURE_BOOST_CONFIGURE_COMMON) ELSE() ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Werror") ENDIF() + LIST(APPEND CMAKE_REQUIRED_INCLUDES ${BOOST_INCLUDE_DIRS} ${BOOST_BUNDLED_INCLUDE_DIRS}) CHECK_CXX_SOURCE_COMPILES( " #include + #include int main() { + #ifndef BOOST_NO_AUTO_PTR int *i = new int; std::auto_ptr x(i); + #endif return 0; } " @@ -100,10 +104,10 @@ MACRO(FEATURE_BOOST_CONFIGURE_BUNDLED) ENDIF() ENDIF() - FEATURE_BOOST_CONFIGURE_COMMON() - SET(BOOST_BUNDLED_INCLUDE_DIRS ${BOOST_FOLDER}/include) + FEATURE_BOOST_CONFIGURE_COMMON() + IF(CMAKE_SYSTEM_NAME MATCHES "Windows") # # Bundled boost tries to (dl)open itself as a dynamic library on -- 2.39.5