aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Christoph Hertzberg <chtz@informatik.uni-bremen.de>2018-10-19 17:20:51 +0200
committerGravatar Christoph Hertzberg <chtz@informatik.uni-bremen.de>2018-10-19 17:20:51 +0200
commit40fa6f98bf120b302c32be3fa15d7abbce4c96a7 (patch)
treec08382e868f605b5bddd3892f4d94c36bfd8f725
parentdda68f56eca13d6942ee9aabb0b6c55153802548 (diff)
bug #1606: Explicitly set the standard before find_package(StandardMathLibrary). Also replace EIGEN_COMPILER_SUPPORT_CXX11 in favor of EIGEN_COMPILER_SUPPORT_CPP11.
-rw-r--r--CMakeLists.txt38
-rw-r--r--cmake/EigenConfigureTesting.cmake5
-rw-r--r--unsupported/test/CMakeLists.txt7
3 files changed, 31 insertions, 19 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6d74709a3..1d0f56367 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,33 @@ include(GNUInstallDirs)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+option(EIGEN_TEST_CXX11 "Enable testing with C++11 and C++11 features (e.g. Tensor module)." OFF)
+
+
+macro(ei_add_cxx_compiler_flag FLAG)
+ string(REGEX REPLACE "-" "" SFLAG1 ${FLAG})
+ string(REGEX REPLACE "\\+" "p" SFLAG ${SFLAG1})
+ check_cxx_compiler_flag(${FLAG} COMPILER_SUPPORT_${SFLAG})
+ if(COMPILER_SUPPORT_${SFLAG})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
+ endif()
+endmacro(ei_add_cxx_compiler_flag)
+
+check_cxx_compiler_flag("-std=c++11" EIGEN_COMPILER_SUPPORT_CPP11)
+
+if(EIGEN_TEST_CXX11)
+ set(CMAKE_CXX_STANDARD 11)
+ set(CMAKE_CXX_EXTENSIONS OFF)
+ if(EIGEN_COMPILER_SUPPORT_CPP11)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ endif()
+else()
+ #set(CMAKE_CXX_STANDARD 03)
+ #set(CMAKE_CXX_EXTENSIONS OFF)
+ ei_add_cxx_compiler_flag("-std=c++03")
+endif()
+
#############################################################################
# find how to link to the standard libraries #
#############################################################################
@@ -119,15 +146,6 @@ endif()
set(EIGEN_TEST_MAX_SIZE "320" CACHE STRING "Maximal matrix/vector size, default is 320")
-macro(ei_add_cxx_compiler_flag FLAG)
- string(REGEX REPLACE "-" "" SFLAG1 ${FLAG})
- string(REGEX REPLACE "\\+" "p" SFLAG ${SFLAG1})
- check_cxx_compiler_flag(${FLAG} COMPILER_SUPPORT_${SFLAG})
- if(COMPILER_SUPPORT_${SFLAG})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
- endif()
-endmacro(ei_add_cxx_compiler_flag)
-
if(NOT MSVC)
# We assume that other compilers are partly compatible with GNUCC
@@ -374,8 +392,6 @@ if(EIGEN_TEST_NO_EXCEPTIONS)
message(STATUS "Disabling exceptions in tests/examples")
endif()
-option(EIGEN_TEST_CXX11 "Enable testing with C++11 and C++11 features (e.g. Tensor module)." OFF)
-
set(EIGEN_CUDA_COMPUTE_ARCH 30 CACHE STRING "The CUDA compute architecture level to target when compiling CUDA code")
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/cmake/EigenConfigureTesting.cmake b/cmake/EigenConfigureTesting.cmake
index ba88228a0..1e72d92e9 100644
--- a/cmake/EigenConfigureTesting.cmake
+++ b/cmake/EigenConfigureTesting.cmake
@@ -56,8 +56,3 @@ elseif(MSVC)
endif(CMAKE_COMPILER_IS_GNUCXX)
-check_cxx_compiler_flag("-std=c++11" EIGEN_COMPILER_SUPPORT_CXX11)
-
-if(EIGEN_TEST_CXX11 AND EIGEN_COMPILER_SUPPORT_CXX11)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-endif()
diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt
index 875842272..cda658e0e 100644
--- a/unsupported/test/CMakeLists.txt
+++ b/unsupported/test/CMakeLists.txt
@@ -68,7 +68,7 @@ ei_add_test(EulerAngles)
find_package(MPFR 2.3.0)
find_package(GMP)
-if(MPFR_FOUND AND EIGEN_COMPILER_SUPPORT_CXX11)
+if(MPFR_FOUND AND EIGEN_COMPILER_SUPPORT_CPP11)
include_directories(${MPFR_INCLUDES} ./mpreal)
ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ")
set(EIGEN_MPFR_TEST_LIBRARIES ${MPFR_LIBRARIES} ${GMP_LIBRARIES})
@@ -151,8 +151,9 @@ if(EIGEN_TEST_CXX11)
else(EIGEN_SYCL_TRISYCL)
# It should be safe to always run these tests as there is some fallback code for
# older compiler that don't support cxx11.
- set(CMAKE_CXX_STANDARD 11)
- set(STD_CXX_FLAG "-std=c++11")
+ # This is already set if EIGEN_TEST_CXX11 is enabled:
+ # set(CMAKE_CXX_STANDARD 11)
+ # set(STD_CXX_FLAG "-std=c++11")
endif(EIGEN_SYCL_TRISYCL)
ei_add_test_sycl(cxx11_tensor_sycl ${STD_CXX_FLAG})