Commit 251ee7ea authored by Praetorius, Simon's avatar Praetorius, Simon
Browse files

added windows compatibility

parent f8cc0645
......@@ -40,6 +40,8 @@ if (MSVC)
set(BUILD_SHARED_LIBS false)
mark_as_advanced(BUILD_SHARED_LIBS)
message(WARNING "Currently we can only build static libraries with Visual Studio")
add_definitions(-DNOMINMAX -D_CONSOLE -DSTRICT -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS)
endif (MSVC)
# parallel of sequential version
......
......@@ -24,9 +24,9 @@ if (AMDIS_NEED_CXX11)
if (NOT AMDIS_NEED_CXX11)
message(FATAL_ERROR "AMDiS was compiled with c++11 support, but the current compiler does not support this feature!")
endif (NOT AMDIS_NEED_CXX11)
list(APPEND AMDIS_COMPILEFLAGS "-DHAS_CXX11=1")
list(APPEND AMDIS_COMPILEFLAGS "-DAMDIS_HAS_CXX11=1")
else ()
list(APPEND AMDIS_COMPILEFLAGS "-DHAS_CXX11=0")
list(APPEND AMDIS_COMPILEFLAGS "-DAMDIS_HAS_CXX11=0")
endif (AMDIS_NEED_CXX11)
......
......@@ -59,6 +59,10 @@ else ()
list(APPEND AMDIS_CONFIGURATION "SEQUENTIAL")
endif ()
if (MSVC)
add_definitions(-DNOMINMAX -D_CONSOLE -DSTRICT -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS)
endif (MSVC)
if (NOT EXISTS ${AMDIS_DIR}/AMDIS${POSTFIX}.cmake)
message(FATAL_ERROR "Configuration ${AMDIS_CONFIGURATION} can not be found in ${AMDIS_DIR}.")
endif ()
......
......@@ -34,9 +34,9 @@ set(COMPILEFLAGS "")
enable_cxx11(ENABLE_CXX11 COMPILEFLAGS)
if (ENABLE_CXX11)
list(APPEND COMPILEFLAGS "-DHAS_CXX11=1")
list(APPEND COMPILEFLAGS "-DAMDIS_HAS_CXX11=1")
else ()
list(APPEND COMPILEFLAGS "-DHAS_CXX11=0")
list(APPEND COMPILEFLAGS "-DAMDIS_HAS_CXX11=0")
endif (ENABLE_CXX11)
enable_mtl4(COMPILEFLAGS AMDIS_INCLUDE_DIRS _)
......@@ -188,7 +188,7 @@ include(muparser)
# ------------------------------------------------------------------------------
if (ENABLE_COMPRESSION)
list(APPEND COMPILEFLAGS "-DHAVE_COMPRESSION=1")
list(APPEND COMPILEFLAGS "-DAMDIS_HAS_COMPRESSION")
endif (ENABLE_COMPRESSION)
if (ENABLE_EXTENSIONS)
......@@ -222,10 +222,6 @@ if (ENABLE_SEQ_PETSC)
include(amdis_seq_petsc)
endif (ENABLE_SEQ_PETSC)
if (MSVC)
list(APPEND COMPILEFLAGS "-D_SCL_SECURE_NO_WARNINGS" "-D_CRT_SECURE_NO_WARNINGS")
endif (MSVC)
# ------------------------------------------------------------------------------
include_directories(${AMDIS_INCLUDE_DIRS})
......
......@@ -16,6 +16,11 @@ add_library(muparser
include_directories(${MUPARSER_INCLUDE_DIR})
if (ENABLE_CXX11)
add_definitions(-DMUPARSER_HAS_CXX11=1)
endif (ENABLE_CXX11)
# specify how to install this target:
# -----------------------------------
......
......@@ -24,9 +24,9 @@ if (AMDIS_NEED_CXX11)
if (NOT AMDIS_NEED_CXX11)
message(FATAL_ERROR "AMDiS was compiled with c++11 support, but the current compiler does not support this feature!")
endif (NOT AMDIS_NEED_CXX11)
target_compile_definitions(amdis_base INTERFACE HAS_CXX11=1)
target_compile_definitions(amdis_base INTERFACE AMDIS_HAS_CXX11=1)
else ()
target_compile_definitions(amdis_base INTERFACE HAS_CXX11=0)
target_compile_definitions(amdis_base INTERFACE AMDIS_HAS_CXX11=0)
endif (AMDIS_NEED_CXX11)
......@@ -37,7 +37,7 @@ if (_AMDIS_H)
get_filename_component(AMDIS_INCLUDE_DIR ${_AMDIS_H} PATH CACHE)
target_include_directories(amdis_base INTERFACE ${AMDIS_INCLUDE_DIR})
else ()
message(ERROR "Could not detect the AMDiS include directory. Please set the variable AMDIS_INCLUDE_DIR to the directory containing the AMDiS headers.")
message(FATAL_ERROR "Could not detect the AMDiS include directory. Please set the variable AMDIS_INCLUDE_DIR to the directory containing the AMDiS headers.")
endif ()
unset(_AMDIS_H CACHE)
......@@ -59,7 +59,7 @@ if (_AMDIS_LIBD)
endif ()
if (NOT(_AMDIS_LIB OR _AMDIS_LIBD))
message(ERROR "Could not detect the AMDiS${POSTFIX} library. Please set the variable _AMDIS_LIB to the AMDiS${POSTFIX} library.")
message(FATAL_ERROR "Could not detect the AMDiS${POSTFIX} library. Please set the variable _AMDIS_LIB to the AMDiS${POSTFIX} library.")
endif ()
......@@ -100,7 +100,7 @@ if (AMDIS_NEED_EXTENSIONS)
target_include_directories(amdis_base INTERFACE ${AMDIS_INCLUDE_DIR}/extensions/base_problems)
endif (AMDIS_NEED_BASE_PROBLEMS)
else ()
message(ERROR "Extensions library not found")
message(FATAL_ERROR "Extensions library not found")
endif ()
if (_EXTENSIONS_LIB)
......@@ -117,10 +117,10 @@ endif (AMDIS_NEED_EXTENSIONS)
if (AMDIS_NEED_REINIT)
find_library(_REINIT_LIB amdisreinit${POSTFIX} PATHS ${AMDIS_DIR}/../../lib/amdis/)
find_library(_REINIT_LIBD amdisreinit${POSTFIX}d PATHS ${AMDIS_DIR}/../../lib/amdis/) # debug version
if (_REINIT_LIB OR _REINIT_LIB)
if (_REINIT_LIB OR _REINIT_LIBD)
target_include_directories(amdis_base INTERFACE ${AMDIS_INCLUDE_DIR}/reinit)
else ()
message(ERROR "Reinit library not found")
message(FATAL_ERROR "Reinit library not found")
endif ()
if (_REINIT_LIB)
......@@ -140,7 +140,7 @@ if (AMDIS_NEED_COMPOSITE_FEM)
if (_COMPOSITE_FEM_LIB OR _COMPOSITE_FEM_LIBD)
target_include_directories(amdis_base INTERFACE ${AMDIS_INCLUDE_DIR}/compositeFEM)
else ()
message(ERROR "CompositeFEM library not found")
message(FATAL_ERROR "CompositeFEM library not found")
endif ()
if (_COMPOSITE_FEM_LIB)
......@@ -159,7 +159,7 @@ if (_MUPARSER_LIB)
target_include_directories(amdis_base INTERFACE ${AMDIS_INCLUDE_DIR}/muparser)
target_link_libraries(amdis_base INTERFACE ${_MUPARSER_LIB})
else ()
message(ERROR "MuParser library not found")
message(FATAL_ERROR "MuParser library not found")
endif ()
unset(_MUPARSER_LIB CACHE)
......@@ -205,6 +205,7 @@ if (AMDIS_NEED_PNG)
target_enable_png(amdis_base INTERFACE ON)
endif ()
# Sequential PETSc library
# --------------
if (AMDIS_NEED_SEQ_PETSC AND NOT AMDIS_HAS_PARALLEL_DOMAIN)
......
......@@ -65,6 +65,10 @@ else ()
list(APPEND AMDIS_CONFIGURATION "SEQUENTIAL")
endif ()
if (MSVC)
add_definitions(-DNOMINMAX -D_CONSOLE -DSTRICT -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS)
endif (MSVC)
if (NOT EXISTS ${AMDIS_DIR}/AMDIS${POSTFIX}.cmake)
message(FATAL_ERROR "Configuration ${AMDIS_CONFIGURATION} can not be found in ${AMDIS_DIR}.")
endif ()
......
......@@ -25,9 +25,9 @@ target_compile_definitions(amdis_base INTERFACE)
target_enable_cxx11(ENABLE_CXX11 amdis_base INTERFACE)
if (ENABLE_CXX11)
target_compile_definitions(amdis_base INTERFACE HAS_CXX11=1)
target_compile_definitions(amdis_base INTERFACE AMDIS_HAS_CXX11=1)
else ()
target_compile_definitions(amdis_base INTERFACE HAS_CXX11=0)
target_compile_definitions(amdis_base INTERFACE AMDIS_HAS_CXX11=0)
endif (ENABLE_CXX11)
target_enable_mtl4(amdis_base INTERFACE)
......@@ -178,7 +178,7 @@ include(muparser) # -> target muparser
# ------------------------------------------------------------------------------
if (ENABLE_COMPRESSION)
target_compile_definitions(amdis PRIVATE HAVE_COMPRESSION=1)
target_compile_definitions(amdis PRIVATE AMDIS_HAS_COMPRESSION=1)
endif (ENABLE_COMPRESSION)
if (ENABLE_REINIT)
......@@ -195,12 +195,6 @@ endif (ENABLE_SEQ_PETSC)
# ------------------------------------------------------------------------------
if (MSVC)
target_compile_definitions(amdis PRIVATE
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS)
endif (MSVC)
target_link_libraries(amdis AMDiS::base muparser)
# specify how to install this target:
......
......@@ -18,7 +18,7 @@ target_include_directories(muparser PUBLIC ${MUPARSER_INCLUDE_DIR})
if (ENABLE_CXX11)
target_enable_cxx11(MUPARSER_ENABLE_CXX11 muparser PRIVATE)
target_compile_definitions(muparser PRIVATE HAS_CXX11=1)
target_compile_definitions(muparser PRIVATE MUPARSER_HAS_CXX11=1)
endif (ENABLE_CXX11)
# specify how to install this target:
......
......@@ -262,7 +262,7 @@ private:
mutable stringbuf_type m_vStringBuf; ///< String buffer, used for storing string function arguments
stringbuf_type m_vStringVarBuf;
#if HAS_CXX11
#if MUPARSER_HAS_CXX11
std::unique_ptr<token_reader_type> m_pTokenReader; ///< Managed pointer to the token reader object.
#else
std::auto_ptr<token_reader_type> m_pTokenReader; ///< Managed pointer to the token reader object.
......
......@@ -78,7 +78,7 @@ namespace mu
TString m_strTok; ///< Token string
TString m_strVal; ///< Value for string variables
value_type m_fVal;
#if HAS_CXX11
#if MUPARSER_HAS_CXX11
std::unique_ptr<ParserCallback> m_pCallback;
#else
std::auto_ptr<ParserCallback> m_pCallback;
......
......@@ -1040,7 +1040,7 @@ namespace mu
try
{
#if HAS_CXX11
#if MUPARSER_HAS_CXX11
std::unique_ptr<Parser> p1;
#else
std::auto_ptr<Parser> p1;
......
......@@ -145,7 +145,7 @@ namespace mu
*/
ParserTokenReader* ParserTokenReader::Clone(ParserBase *a_pParent) const
{
#if HAS_CXX11
#if MUPARSER_HAS_CXX11
std::unique_ptr<ParserTokenReader> ptr(new ParserTokenReader(*this));
#else
std::auto_ptr<ParserTokenReader> ptr(new ParserTokenReader(*this));
......
......@@ -72,7 +72,7 @@ namespace AMDiS {
}
#if HAS_CXX11
#if AMDIS_HAS_CXX11
// c++11 std::function of lambda-functions
void DirichletBC<_value_by_function>::fillBoundaryCondition(
DOFVectorBase<double>* vector,
......
......@@ -160,7 +160,7 @@ namespace AMDiS
};
#if HAS_CXX11
#if AMDIS_HAS_CXX11
// specialization for std::function or lambdas as value container
template <>
class DirichletBC<_value_by_function> : public detail::DirichletBC
......
......@@ -686,7 +686,7 @@ inline void addSOT(Operator& op, double term, int I, int J)
}
#if HAS_CXX11
#if AMDIS_HAS_CXX11
template <class Term, class Result = void>
using ScalarTerm = typename boost::enable_if< boost::is_same<double, typename Term::value_type>, Result >::type;
......
......@@ -1412,7 +1412,7 @@ namespace AMDiS {
}
#if HAS_CXX11
#if AMDIS_HAS_CXX11
void ProblemStatSeq::addDirichletBC(BoundaryType type, int row, int col,
std::function<double(WorldVector<double>)> b)
{
......
......@@ -197,7 +197,7 @@ namespace AMDiS {
AbstractFunction<double, WorldVector<double> > *b);
#if HAS_CXX11
#if AMDIS_HAS_CXX11
/// Adds a Dirichlet boundary condition, where the rhs is given by an
/// lambda function or a std::function object
virtual void addDirichletBC(BoundaryType type, int row, int col,
......
......@@ -47,7 +47,7 @@ typedef size_t aligned_size_t __attribute__ ((aligned(CACHE_LINE)));
// C++11 features
// --------------
#if HAS_CXX11
#if AMDIS_HAS_CXX11
// __has_feature(cxx_rvalue_references)
#if CLANG_VERSION >= 20900 && !defined(HAS_VARIADIC_TEMPLATES)
......
......@@ -63,8 +63,8 @@ typedef size_t aligned_size_t;
// C++11 features
// --------------
#ifndef HAS_CXX11
#define HAS_CXX11 0
#ifndef AMDIS_HAS_CXX11
#define AMDIS_HAS_CXX11 0
#endif
#ifndef HAS_VARIADIC_TEMPLATES
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment