diff options
Diffstat (limited to 'cmake/macros/ConfigureBoost.cmake')
-rw-r--r-- | cmake/macros/ConfigureBoost.cmake | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/cmake/macros/ConfigureBoost.cmake b/cmake/macros/ConfigureBoost.cmake index 6b2419a00e7..a1f00126f1d 100644 --- a/cmake/macros/ConfigureBoost.cmake +++ b/cmake/macros/ConfigureBoost.cmake @@ -30,13 +30,22 @@ add_definitions(-DBOOST_DATE_TIME_NO_LIB) add_definitions(-DBOOST_REGEX_NO_LIB)
add_definitions(-DBOOST_CHRONO_NO_LIB)
-try_compile (boost_filesystem_copy_links_without_NO_SCOPED_ENUM
- ${CMAKE_BINARY_DIR}/try_compile/boost_filesystem_copy_links_without_NO_SCOPED_ENUM
- SOURCES ${CMAKE_SOURCE_DIR}/cmake/test_use_boost_cxx11_no_scoped_enum_for_filesystem.cpp
- COMPILE_DEFINITIONS -I${Boost_INCLUDE_DIR}
- --std=c++11
- LINK_LIBRARIES ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}
-)
+# 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)
|