]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add support for Cygwin64
authorMatthias Maier <tamiko@kyomu.43-1.org>
Tue, 15 Oct 2013 21:05:24 +0000 (21:05 +0000)
committerMatthias Maier <tamiko@kyomu.43-1.org>
Tue, 15 Oct 2013 21:05:24 +0000 (21:05 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_port_the_testsuite@31244 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/cmake/checks/check_02_system_features.cmake
deal.II/doc/readme.html
deal.II/include/deal.II/base/geometry_info.h
deal.II/source/base/geometry_info.cc

index 22e6a8a88b2226595779ddc1e050f5b65e0fcf8b..7980378ed2c68aa5743e13747b2a34e7e207aa7e 100644 (file)
@@ -119,49 +119,22 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
   # Shared library handling:
   #
   IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-    #
     # With MinGW we're lucky:
-    #
     ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--export-all-symbols")
     ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--enable-auto-import")
     ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--allow-multiple-definition")
-
-    #
-    # Workaround for a miscompilation and linkage issue with shared libraries
-    # with MinGW. Replacing -O0 with -O1 seems to help..
-    #
-    REPLACE_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-O0" "-O1")
-
   ELSE()
-
-    #
     # Otherwise disable shared libraries:
-    #
     MESSAGE(WARNING "\n"
       "BUILD_SHARED_LIBS forced to OFF\n\n"
       )
     SET(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
   ENDIF()
 
-  #
-  # Disable -ggdb and -g on Windows/MinGW targets for the moment until the
-  # compilation issues with too big files are resolved
-  #
-  # - Matthias Maier, 2012
-  #
-  STRIP_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-ggdb")
-  STRIP_FLAG(DEAL_II_LINKER_FLAGS_DEBUG "-ggdb")
-  STRIP_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-g")
-  STRIP_FLAG(DEAL_II_LINKER_FLAGS_DEBUG "-g")
 ENDIF()
 
 
-IF(CMAKE_SYSTEM_NAME MATCHES "CYGWIN")
-  #
-  # Workaround for a miscompilation and linkage issue with shared libraries
-  # under Cygwin. Replacing -O0 with -O1 helps.
-  #
-  # - Matthias Maier, 2013
-  #
-  REPLACE_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-O0" "-O1")
+IF( CMAKE_SYSTEM_NAME MATCHES "CYGWIN"
+    OR CMAKE_SYSTEM_NAME MATCHES "Windows" )
+  # TODO: Bailout if current compiler is not gcc-4.8.1 or newer
 ENDIF()
index 33531d51b9d310d88bd194c6224c099209d7233e..36e6226be7ff0430b49a7579160e279137d8abe2 100644 (file)
   platforms:
 </p>
 <ul>
-  <li>GNU/Linux: GCC version 4.1 or later;
-    Clang version 3.0 or later; ICC version 12 or later</li>
-  <li>Mac OS X: GCC version 4.0 or later; Clang version 3.0 or later
-    (Please see the <a href="https://code.google.com/p/dealii/w/list"
-    target="_top">deal.II Wiki</a> for installation issues)</li>
+  <li>GNU/Linux: GCC version 4.1 or later; Clang version 3.0 or later;
+  ICC versions 12* or 14* (version 13 is not supported)</li>
+  <li>Mac OS X: GCC version 4.1 or later; Clang version 3.0 or later.
+    Please see the <a href="https://code.google.com/p/dealii/wiki/MacOSX"
+    target="_top">deal.II Wiki</a> for installation instructions.</li>
+  <li>Windows: Cygwin64 with gcc-4.8.1 (Cygwin32 is not supported).
+    Please see the <a href="https://code.google.com/p/dealii/wiki/Windows"
+    target="_top">deal.II Wiki</a> for installation instructions.</li>
+  </li>
 </ul>
 
 <p>
 </p>
 
 <p>
-  Windows support is currently highly experimental. For <a
-    href="https://code.google.com/p/dealii/wiki/Windows"
-    target="_top">installing on Windows</a>, please refer to additional
-  information on the <a href="https://code.google.com/p/dealii/w/list"
-    target="_top">deal.II Wiki</a> and have a look at the <a
-    href="https://code.google.com/p/dealii/issues/list">bug
-    tracker</a>!</li>
   Please note that the Microsoft Visual C++ compiler, that is widely
   used on Microsoft Windows, is not supported. If you need a native
   Windows target, use the MinGW compiler instead.
index ced3b187defddbc45b4e949bafb71df48ffce42d..ea6d4b11f1cc4c79dc2646f2a453c894955360fe 100644 (file)
@@ -1457,7 +1457,13 @@ struct GeometryInfo
   /**
    * Number of vertices of a cell.
    */
+#ifdef DEAL_II_USE_CXX11
+  // Workaround for some versions of gcc-4.8.1 (notably on Cygwin and Mac)
+  // that incorrectly fail to deduce the second version as a constexpr
+  static constexpr unsigned int vertices_per_cell = 1 << dim;
+#else
   static const unsigned int vertices_per_cell = 1 << dim;
+#endif
 
   /**
    * Number of vertices on each
index 6569451117892e39f132f8dbae4b30ad6a8dee47..5765bb6826fcb1777164b20e2481e7f12c941acf 100644 (file)
@@ -31,7 +31,13 @@ GeometryInfo<0>::n_children(const RefinementCase<0> &)
 template <int dim> const unsigned int GeometryInfo<dim>::max_children_per_cell;
 template <int dim> const unsigned int GeometryInfo<dim>::faces_per_cell;
 template <int dim> const unsigned int GeometryInfo<dim>::max_children_per_face;
-template <int dim> const unsigned int GeometryInfo<dim>::vertices_per_cell;
+#ifdef DEAL_II_USE_CXX11
+  // Workaround for some versions of gcc-4.8.1 (notably on Cygwin and Mac)
+  // that incorrectly fail to deduce the second version as a constexpr
+  template <int dim> constexpr unsigned int GeometryInfo<dim>::vertices_per_cell;
+#else
+  template <int dim> const unsigned int GeometryInfo<dim>::vertices_per_cell;
+#endif
 template <int dim> const unsigned int GeometryInfo<dim>::vertices_per_face;
 template <int dim> const unsigned int GeometryInfo<dim>::lines_per_face;
 template <int dim> const unsigned int GeometryInfo<dim>::quads_per_face;

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.