# 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()
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.
/**
* 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
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;