From 386b97c4851ca614bfac3916502e2e2a26dd9fd6 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Thu, 30 Oct 2014 01:57:54 +0000 Subject: [PATCH] Build: Fixup 428d510f7664. Use check_cxx_source_compiles instead of try_compile --- cmake/macros/ConfigureBoost.cmake | 23 +++++++++++------ ...st_cxx11_no_scoped_enum_for_filesystem.cpp | 25 ------------------- 2 files changed, 16 insertions(+), 32 deletions(-) delete mode 100644 cmake/test_use_boost_cxx11_no_scoped_enum_for_filesystem.cpp diff --git a/cmake/macros/ConfigureBoost.cmake b/cmake/macros/ConfigureBoost.cmake index 6b2419a00e..a1f00126f1 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 + #include + 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) diff --git a/cmake/test_use_boost_cxx11_no_scoped_enum_for_filesystem.cpp b/cmake/test_use_boost_cxx11_no_scoped_enum_for_filesystem.cpp deleted file mode 100644 index d5df4c6c83..0000000000 --- a/cmake/test_use_boost_cxx11_no_scoped_enum_for_filesystem.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2008-2014 TrinityCore - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -#include -#include - -int main() -{ - boost::filesystem::copy_file(boost::filesystem::path(), boost::filesystem::path()); - return 0; -}