]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
A very big bugfix...
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 20 Sep 2012 09:06:17 +0000 (09:06 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 20 Sep 2012 09:06:17 +0000 (09:06 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@26550 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/contrib/cmake/check/check_for_compiler_bugs.cmake
deal.II/contrib/cmake/check/check_for_cxx_features.cmake
deal.II/contrib/cmake/configure/configure_1_tbb.cmake
deal.II/contrib/cmake/configure/configure_lapack.cmake
deal.II/contrib/cmake/configure/configure_trilinos.cmake
deal.II/contrib/cmake/macros/macro_add_flags.cmake
deal.II/contrib/cmake/macros/macro_strip_flag.cmake

index 68bfbc4b905883f20c1c8b22d31bf32c1d2650eb..3ec5d882f75eb063e21253ae8c5d83c113b00143 100644 (file)
@@ -95,14 +95,14 @@ CHECK_CXX_COMPILER_BUG(
 #
 # - maier, rewritten 2012
 #
-LIST(APPEND CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
+ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
 CHECK_CXX_COMPILER_BUG(
   "
   const double foo() { return 1.; }
   int main() { return 0; }
   "
   DEAL_II_WRETURN_TYPE_CONST_QUALIFIER_BUG)
-LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
+STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-Wreturn-type -Werror")
 
 IF(DEAL_II_WRETURN_TYPE_CONST_QUALIFIER_BUG)
   ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS -Wno-return-type)
@@ -145,14 +145,14 @@ ENDIF()
 CHECK_INCLUDE_FILE_CXX("mpi.h" HAVE_MPI_H)
 
 IF(HAVE_MPI_H)
-  LIST(APPEND CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
+  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
   CHECK_CXX_COMPILER_BUG(
     "
     #include <mpi.h>
     int main() { return 0; }
     "
     DEAL_II_ADVANCE_WARNING_BUG)
-  LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
+  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-Wunused-parameter -Werror")
 
   IF(DEAL_II_ADVANCE_WARNING_BUG)
     ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-Wno-unused-parameter")
index f73e05d0d53886e7e20d44278fbbde0549f99255..9b89bfdf2f777cd013b06cdd4ace0ece3de6e00e 100644 (file)
@@ -30,7 +30,7 @@ CHECK_CXX_COMPILER_FLAG(
 IF(DEAL_II_HAVE_CXX11_FLAG)
 
   # Set CMAKE_REQUIRED_FLAGS for the unit tests
-  LIST(APPEND CMAKE_REQUIRED_FLAGS "-std=c++0x")
+  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-std=c++0x")
 
   CHECK_CXX_SOURCE_COMPILES(
     "
@@ -76,8 +76,6 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
     "
     DEAL_II_HAVE_CXX11_SHARED_PTR)
 
-  LIST(APPEND CMAKE_REQUIRED_FLAGS "-lpthreads")
-
   CHECK_CXX_SOURCE_COMPILES(
     "
     #include <thread>
@@ -87,13 +85,14 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
     DEAL_II_HAVE_CXX11_THREAD)
 
   #
-  #On some systems with gcc 4.5.0, we can compile the code
-  #above but it will throw an exception when run. So test
-  #that as well. The test will only be successful if we have
-  #libpthread available, so link it in for this test. If
-  #multithreading is requested, it will be added to CXXFLAGS
-  #later on so there is no need to do this here.
+  # On some systems with gcc 4.5.0, we can compile the code
+  # above but it will throw an exception when run. So test
+  # that as well. The test will only be successful if we have
+  # libpthread available, so link it in for this test. If
+  # 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")
   CHECK_CXX_SOURCE_RUNS(
     "
     #include <thread>
@@ -101,8 +100,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)
-
-  LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "-lpthreads")
+  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-lpthread")
 
   CHECK_CXX_SOURCE_COMPILES(
     "
@@ -186,7 +184,7 @@ IF(DEAL_II_HAVE_CXX11_FLAG)
     ENDIF()
   ENDIF()
 
-  LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "-std=c++0x")
+  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-std=c++0x")
 
 ELSE()
     MESSAGE(STATUS "Insufficient C++11 support. Disabling -std=c++0x.")
index 7887bd771b34df1f486d85957d31fe610c1eaa4c..0f8c80f89ae37d151c5b79cca577964117df59e0 100644 (file)
@@ -28,7 +28,7 @@ MACRO(SETUP_THREADING var)
       #
       # Check whether posix thread barriers are available:
       #
-      LIST(APPEND CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
+      ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
       CHECK_CXX_SOURCE_COMPILES(
       "
       #include <pthread.h>
@@ -42,7 +42,7 @@ MACRO(SETUP_THREADING var)
       }
       "
       DEAL_II_HAVE_MT_POSIX_BARRIERS)
-      LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
+      STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
 
       IF(NOT DEAL_II_HAVE_MT_POSIX_BARRIERS)
         SET(DEAL_II_USE_MT_POSIX_NO_BARRIERS TRUE)
@@ -55,7 +55,7 @@ MACRO(SETUP_THREADING var)
     # switches on some preprocessor flags. If this is not the case,
     # then define them explicitely.
     #
-    LIST(APPEND CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
+    ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
     CHECK_CXX_SOURCE_COMPILES(
       "
       #if !defined (_REENTRANT) && !defined (_THREAD_SAFE)
@@ -65,7 +65,7 @@ MACRO(SETUP_THREADING var)
       int main(){ return 0; }
       "
       DEAL_II_HAVE_SANE_MT_DEFINITIONS)
-    LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
+    STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
 
     IF(NOT DEAL_II_HAVE_SANE_MT_DEFINITIONS)
       ADD_DEFINITIONS("-D_REENTRANT" "-D_THREAD_SAFE")
index 1bed7ff8c3fef517733c3d444ba06661070c1f9a..10e8c00616fd7ebba8c443c4c7090682bf13b2b3 100644 (file)
@@ -24,7 +24,7 @@ MACRO(FEATURE_LAPACK_CONFIGURE_EXTERNAL var)
   # TODO: Reduce to the really necessary parts.
   #
   LIST(APPEND CMAKE_REQUIRED_LIBRARIES "${LAPACK_LIBRARIES}")
-  LIST(APPEND CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
+  ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
   CHECK_FUNCTION_EXISTS(daxpy_ HAVE_DAXPY_)
   CHECK_FUNCTION_EXISTS(dgeevx_ HAVE_DGEEVX_)
   CHECK_FUNCTION_EXISTS(dgeev_ AVE_DGEEV_)
@@ -61,7 +61,7 @@ MACRO(FEATURE_LAPACK_CONFIGURE_EXTERNAL var)
   CHECK_FUNCTION_EXISTS(ssygvx_ HAVE_SSYGVX_)
   CHECK_FUNCTION_EXISTS(strtrs_ HAVE_STRTRS_)
   LIST(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "${LAPACK_LIBRARIES}")
-  LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
+  STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
 
 
   SET(HAVE_LIBLAPACK TRUE)
index af8e8c65424616a86d59c399e5963ed2dc523352..9776c4a0fa7d1de6f80e4601825905a7e68dd52e 100644 (file)
@@ -103,14 +103,14 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
     # Test whether that is indeed the case
     #
     LIST(APPEND CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIR})
-    LIST(APPEND CMAKE_REQUIRED_FLAGS "-std=c++0x")
+    ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-std=c++0x")
     CHECK_CXX_SOURCE_COMPILES(
       "
       #include <Sacado_cmath.hpp>
       int main(){ return 0; }
       "
       TRILINOS_SUPPORTS_CPP11)
-    LIST(REMOVE_ITEM CMAKE_REQUIRED_FLAGS "-std=c++0x")
+    STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-std=c++0x")
     LIST(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIR})
 
     IF(DEAL_II_CAN_USE_CXX11 AND NOT TRILINOS_SUPPORTS_CPP11)
index 3e4728de9c6ad5e355ab6a03b4b60e41b4cbea2e..2a84224afefef9e89ed77cece988e30829eb3245 100644 (file)
@@ -1,11 +1,12 @@
 #
-# A small macro used for (string-)appending flags to a variable
+# A small macro used for (string-)appending a string flags to a
+# string variable
 #
 # Usage:
-#     ADD_FLAGS(variable flag)
+#     ADD_FLAGS(variable flags)
 #
 
-MACRO(ADD_FLAGS variable flag)
-  SET(${variable} "${${variable}} ${flag}")
+MACRO(ADD_FLAGS variable flags)
+  SET(${variable} "${${variable}} ${flags}")
 ENDMACRO()
 
index d5d046c5557c21a2aa5e20e7c65129b7630d36a2..bbf571e48bb5300489d705e2cfcab1556448b81b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Remove the first occurence of flag in the string variable.
+# Remove all occurences of "${flag}" in the string variable.
 #
 # Usage:
 #     STRIP_FLAG(variable flag)
@@ -7,7 +7,11 @@
 
 MACRO(STRIP_FLAG variable flag)
   IF(NOT "${variable}" STREQUAL "")
-    STRING(REGEX REPLACE " ${flag}" "" ${variable} ${${variable}})
+    SET(${variable} " ${${variable}}")
+    STRING(REPLACE " ${flag}" "" ${variable} ${${variable}})
+    IF(NOT "${variable}" STREQUAL "")
+      STRING(STRIP ${${variable}} ${variable})
+    ENDIF()
   ENDIF()
 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.