diff options
Diffstat (limited to 'cmake/macros/ConfigureBoost.cmake')
-rw-r--r-- | cmake/macros/ConfigureBoost.cmake | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/cmake/macros/ConfigureBoost.cmake b/cmake/macros/ConfigureBoost.cmake index 3d3791b8a93..16c817d9d25 100644 --- a/cmake/macros/ConfigureBoost.cmake +++ b/cmake/macros/ConfigureBoost.cmake @@ -25,11 +25,36 @@ if(WIN32) add_definitions(-D_WIN32_WINNT=${ver})
endif()
-find_package(Boost 1.49 REQUIRED system thread program_options)
+find_package(Boost 1.49 REQUIRED system filesystem thread program_options iostreams) add_definitions(-DBOOST_DATE_TIME_NO_LIB)
add_definitions(-DBOOST_REGEX_NO_LIB)
add_definitions(-DBOOST_CHRONO_NO_LIB)
+# 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} ${Boost_IOSTREAMS_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) + if (Boost_VERSION LESS 105100) # 1.51 + add_definitions(-DBOOST_NO_SCOPED_ENUMS) + else() + add_definitions(-DBOOST_NO_CXX11_SCOPED_ENUMS) + endif() +endif() + if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
endif()
|