]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Cleanup: Use PUSH_TEST_FLAG() and POP_TEST_FLAG where appropriate
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 28 Sep 2012 09:34:56 +0000 (09:34 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 28 Sep 2012 09:34:56 +0000 (09:34 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@26823 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/cmake/checks/check_for_compiler_bugs.cmake
deal.II/cmake/checks/check_for_compiler_features.cmake
deal.II/cmake/checks/check_for_cxx_features.cmake
deal.II/cmake/configure/configure_trilinos.cmake
deal.II/cmake/macros/macro_pop_test_flag.cmake
deal.II/cmake/macros/macro_push_test_flag.cmake

index 7beb7b35f162380774b3be61b74be6c602daf043..8d5118b7c392bebea140530baedbb17a165d4956 100644 (file)
@@ -54,14 +54,16 @@ CHECK_CXX_COMPILER_BUG(
 #
 # - maier, rewritten 2012
 #
-ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
+PUSH_TEST_FLAG("-Wreturn-type")
+PUSH_TEST_FLAG("-Werror")
 CHECK_CXX_COMPILER_BUG(
   "
   const double foo() { return 1.; }
   int main() { return 0; }
   "
   DEAL_II_WRETURN_TYPE_CONST_QUALIFIER_BUG)
-STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
+POP_TEST_FLAG()
+POP_TEST_FLAG()
 
 IF(DEAL_II_WRETURN_TYPE_CONST_QUALIFIER_BUG)
   ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS -Wno-return-type)
@@ -104,14 +106,16 @@ ENDIF()
 CHECK_INCLUDE_FILE_CXX("mpi.h" HAVE_MPI_H)
 
 IF(HAVE_MPI_H)
-  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
+  PUSH_TEST_FLAG("-Wunused-parameter")
+  PUSH_TEST_FLAG("-Werror")
   CHECK_CXX_COMPILER_BUG(
     "
     #include <mpi.h>
     int main() { return 0; }
     "
     DEAL_II_ADVANCE_WARNING_BUG)
-  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
+  POP_TEST_FLAG()
+  POP_TEST_FLAG()
 
   IF(DEAL_II_ADVANCE_WARNING_BUG)
     ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-Wno-unused-parameter")
index f112d030fd8a3960fbe46b5a1cced3108243a037..33f115f3189523ae83dc493ac0bfeacf785a3505 100644 (file)
@@ -427,7 +427,7 @@ CHECK_CXX_SOURCE_COMPILES(
 
 # ...and then verify whether it actually errors out if
 # -Werror is given
-ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Werror")
+PUSH_TEST_FLAG("-Werror")
 CHECK_CXX_SOURCE_COMPILES(
   "
           int old_fn () __attribute__((deprecated));
@@ -437,7 +437,7 @@ CHECK_CXX_SOURCE_COMPILES(
          int main () {}
   "
   DEAL_II_COMPILER_HAS_ATTRIBUTE_DEPRECATED_WARNING)
-STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-Werror")
+POP_TEST_FLAG()
 
 IF(DEAL_II_COMPILER_HAS_ATTRIBUTE_DEPRECATED
    AND
@@ -448,3 +448,4 @@ ELSE()
   MESSAGE(STATUS "Compiler does not support the deprecated attribute")
   SET(DEAL_II_DEPRECATED " ")
 ENDIF()
+
index 71c0689fb16d7de85dbc7d583ead9d337f4ce459..4d6245face4d6d0d6ce56e518088062623b07a31 100644 (file)
@@ -20,19 +20,27 @@ CHECK_CXX_SOURCE_COMPILES(
 #
 FOREACH(test_flag
     "-std=c++11"
-    "-std=c++-x"
+    "-std=c++0x"
     )
-  SET(DEAL_II_CXX11_FLAG ${test_flag})
+
   CHECK_CXX_COMPILER_FLAG("${test_flag}" DEAL_II_HAVE_CXX11_FLAG)
+
   IF(DEAL_II_HAVE_CXX11_FLAG)
+    # We have found a CXX11_FLAG that the compiler understands
+    SET(DEAL_II_CXX11_FLAG "${test_flag}")
     BREAK()
+  ELSE()
+    # Remove test result from cache and try the next flag in the list
+    UNSET(DEAL_II_HAVE_CXX11_FLAG CACHE)
   ENDIF()
+
 ENDFOREACH()
 
+
 IF(DEAL_II_HAVE_CXX11_FLAG)
 
   # Set CMAKE_REQUIRED_FLAGS for the unit tests
-  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${DEAL_II_CXX11_FLAG}")
+  PUSH_TEST_FLAG("${DEAL_II_CXX11_FLAG}")
 
   CHECK_CXX_SOURCE_COMPILES(
     "
@@ -94,7 +102,7 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
   # multithreading is requested, it will be added to CXXFLAGS
   # later on so there is no need to do this here.
   #
-  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-lpthread")
+  PUSH_TEST_FLAG("-lpthread")
   CHECK_CXX_SOURCE_RUNS(
     "
     #include <thread>
@@ -102,7 +110,7 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
     int main(){ std::thread t(f,1); t.join(); return 0; }
     "
     DEAL_II_HAVE_CXX11_THREAD_RUN_OK)
-  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-lpthread")
+  POP_TEST_FLAG()
 
   CHECK_CXX_SOURCE_COMPILES(
     "
@@ -151,14 +159,18 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
   ELSE()
 
     MESSAGE(STATUS "Insufficient C++11 support. Disabling ${DEAL_II_CXX11_FLAG}.")
+
   ENDIF()
 
+
   IF(DEAL_II_CAN_USE_CXX11)
     #
     # Also test for a couple of C++11 things that we don't use in the
     # library but that users may want to use in their applications and that
     # we might want to test in the testsuite
     #
+    # TODO: Actually we have to export the test results somehow. :-]
+    #
 
     CHECK_CXX_SOURCE_COMPILES(
       "
@@ -186,7 +198,7 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
     ENDIF()
   ENDIF()
 
-  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${DEAL_II_CXX11_FLAG}")
+  POP_TEST_FLAG()
 
 ELSE()
     MESSAGE(STATUS "Insufficient C++11 support. Disabling ${DEAL_II_CXX11_FLAG}.")
index 05cc7654754d00fcaddc4b4dd3e1ba05d94c7b7c..51c9f3228b2d97c5c2afe80800d7114687e06ba6 100644 (file)
@@ -103,7 +103,7 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
     # Test whether that is indeed the case
     #
     LIST(APPEND CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIRS})
-    ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${DEAL_II_CXX11_FLAG}")
+    PUSH_TEST_FLAG("${DEAL_II_CXX11_FLAG}")
     CHECK_CXX_SOURCE_COMPILES(
       "
       #include <Sacado_cmath.hpp>
@@ -115,14 +115,14 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
       #
       # Try whether exporting HAS_C99_TR1_CMATH helps:
       #
-      ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-DHAS_C99_TR1_CMATH")
+      PUSH_TEST_FLAG("-DHAS_C99_TR1_CMATH")
       CHECK_CXX_SOURCE_COMPILES(
         "
         #include <Sacado_cmath.hpp>
         int main(){ return 0; }
         "
         TRILINOS_HAS_C99_TR1_WORKAROUND)
-      STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-DHAS_C99_TR1_CMATH")
+      POP_TEST_FLAG()
 
       IF(TRILINOS_HAS_C99_TR1_WORKAROUND)
         LIST(APPEND DEAL_II_DEFINITIONS "HAS_C99_TR1_CMATH")
@@ -135,7 +135,7 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
         SET(${var} FALSE)
       ENDIF()
     ENDIF()
-    STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${DEAL_II_CXX11_FLAG")
+    POP_TEST_FLAG()
     LIST(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIRS})
 
     #
index 70e421d7a75b9cf26f6a64a3d125a034b82bde78..d187cda7207035f1adb5a1f3db6a93ae5ef96bf5 100644 (file)
@@ -8,9 +8,9 @@
 #     POP_TEST_FLAG()
 #
 
-MACRO(ADD_TEST_FLAG flag)
+MACRO(POP_TEST_FLAG)
   SET(CMAKE_REQUIRED_FLAGS " ${CMAKE_REQUIRED_FLAGS}")
-  STRING(REGEX_REPLACE " -[^ ]+$" ""
+  STRING(REGEX REPLACE " -[^ ]+$" ""
     CMAKE_REQUIRED_FLAGS
     "${CMAKE_REQUIRED_FLAGS}"
     )
index c8aed8d322475cda3c3eac27aa0d9aeb538aa483..267bcda8b5612c3ed18f3f350b41a872d8995a7e 100644 (file)
@@ -6,8 +6,10 @@
 #     PUSH_TEST_FLAG("flag")
 #
 
-MACRO(ADD_TEST_FLAG flag)
+MACRO(PUSH_TEST_FLAG flag)
+
   SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${flag}")
   STRING(STRIP "${CMAKE_REQUIRED_FLAGS}" CMAKE_REQUIRED_FLAGS)
+
 ENDMACRO()
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.