aboutsummaryrefslogtreecommitdiff
path: root/cmake/macros/ConfigureBoost.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/macros/ConfigureBoost.cmake')
-rw-r--r--cmake/macros/ConfigureBoost.cmake19
1 files changed, 18 insertions, 1 deletions
diff --git a/cmake/macros/ConfigureBoost.cmake b/cmake/macros/ConfigureBoost.cmake
index 81b4dd9abb2..a1f00126f1d 100644
--- a/cmake/macros/ConfigureBoost.cmake
+++ b/cmake/macros/ConfigureBoost.cmake
@@ -30,7 +30,24 @@ add_definitions(-DBOOST_DATE_TIME_NO_LIB)
add_definitions(-DBOOST_REGEX_NO_LIB)
add_definitions(-DBOOST_CHRONO_NO_LIB)
-if(!WIN32) # https://svn.boost.org/trac/boost/ticket/6779
+# Find if Boost was compiled in C++03 mode because it requires -DBOOST_NO_CXX11_SCOPED_ENUMS
+
+include (CheckCXXSourceCompiles)
+
+set(CMAKE_REQUIRED_INCLUDES ${Boost_INCLUDE_DIR})
+set(CMAKE_REQUIRED_LIBRARIES ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
+set(CMAKE_REQUIRED_FLAGS "-std=c++11")
+unset(boost_filesystem_copy_links_without_NO_SCOPED_ENUM CACHE)
+check_cxx_source_compiles("
+ #include <boost/filesystem/path.hpp>
+ #include <boost/filesystem/operations.hpp>
+ int main() { boost::filesystem::copy_file(boost::filesystem::path(), boost::filesystem::path()); }"
+boost_filesystem_copy_links_without_NO_SCOPED_ENUM)
+unset(CMAKE_REQUIRED_INCLUDES CACHE)
+unset(CMAKE_REQUIRED_LIBRARIES CACHE)
+unset(CMAKE_REQUIRED_FLAGS CACHE)
+
+if (NOT boost_filesystem_copy_links_without_NO_SCOPED_ENUM)
add_definitions(-DBOOST_NO_CXX11_SCOPED_ENUMS)
endif()