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

added windows compatibility

parent f8cc0645
......@@ -47,7 +47,7 @@ typedef size_t aligned_size_t __attribute__ ((aligned(CACHE_LINE)));
// C++11 features
// --------------
#if HAS_CXX11
#if AMDIS_HAS_CXX11
#if GCC_VERSION >= 40300 && !defined(HAS_VARIADIC_TEMPLATES)
#define HAS_VARIADIC_TEMPLATES 1
......
......@@ -51,7 +51,7 @@ typedef __declspec(align(CACHE_LINE)) size_t aligned_size_t;
// C++11 features
// --------------
#if HAS_CXX11
#if AMDIS_HAS_CXX11
#if INTEL_VERSION >= 1201 && !defined(HAS_VARIADIC_TEMPLATES)
#define HAS_VARIADIC_TEMPLATES 1
......
......@@ -52,6 +52,11 @@ typedef __declspec(align(CACHE_LINE)) size_t aligned_size_t;
#define ALWAYS_INLINE __forceinline
#define OPENMODE std::ios::open_mode
#ifdef max
#undef max
#undef min
#endif
#if MSC_VERSION >= 1800 && !defined(HAS_VARIADIC_TEMPLATES)
#define HAS_VARIADIC_TEMPLATES 1
#endif
......
......@@ -233,7 +233,7 @@ namespace AMDiS
if (writeParaViewVectorFormat) {
io::VtkVectorWriter::Aux<T> vtkVectorWriter(&dataCollectors, writeAs3dVector);
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
vtkVectorWriter.setCompression(compression);
#endif
vtkVectorWriter.writeFile(fn + paraviewFileExt);
......
......@@ -10,7 +10,7 @@
#include <boost/filesystem.hpp>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#endif
......@@ -242,12 +242,12 @@ namespace AMDiS { namespace io {
if(minor >= 1)
file.read(const_cast<char*>(cps.data()), 4);
#ifdef HAVE_COMPRESSION
#if HAMDIS_HAS_COMPRESSION
TEST_EXIT(cps == "null" || cps == "zlib")
("Cannot read Arh2 file. Currently only support zlib compression.\n");
#else
TEST_EXIT(cps == "null")
("HAVE_COMPRESSION OFF. Cannot read compressed Arh2 file.\n");
("AMDIS_HAS_COMPRESSION==OFF. Cannot read compressed Arh2 file.\n");
#endif
TEST_EXIT(dow == (unsigned)mesh->getGeo(WORLD))
......@@ -371,7 +371,7 @@ namespace AMDiS { namespace io {
file.read(buffer, size);
dataStream.write(buffer, size);
delete[] buffer;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
if(cps == "zlib") {
stringstream tmp(ios::out | ios::in);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
......@@ -554,12 +554,12 @@ namespace AMDiS { namespace io {
if(minor > 0)
file.read(const_cast<char*>(cps.data()), 4);
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
TEST_EXIT(cps == "null" || cps == "zlib")
("Cannot read Arh2 file. Currently only support zlib compression.\n");
#else
TEST_EXIT(cps == "null")
("HAVE_COMPRESSION OFF. Cannot read compressed Arh2 file.\n");
("AMDIS_HAS_COMPRESSION OFF. Cannot read compressed Arh2 file.\n");
#endif
vector<int> macroElIndex(nMacroElements);
......@@ -600,7 +600,7 @@ namespace AMDiS { namespace io {
dataStream.write(buffer, size);
delete[] buffer;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
if(cps == "zlib") {
stringstream tmp(ios::out | ios::in);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
......
......@@ -11,7 +11,7 @@
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#endif
......@@ -151,7 +151,7 @@ namespace AMDiS { namespace io {
namesLen + //value vector table
nValueVectors * 8; //also value vector table
string typeId = "arh2", cps("null");
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
cps = "zlib";
#endif
uint8_t *major = const_cast<uint8_t*>(&(AMDiS::io::Arh2Writer::MAJOR));
......@@ -426,7 +426,7 @@ namespace AMDiS { namespace io {
}
stringstream tmp(ios::out | ios::in | ios::binary);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
in.push(boost::iostreams::zlib_compressor());
#endif
in.push(dataStream);
......
......@@ -14,7 +14,7 @@
#include <boost/filesystem.hpp>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#include <boost/iostreams/filter/bzip2.hpp>
#endif
......@@ -251,14 +251,14 @@ namespace AMDiS { namespace io {
file.read(reinterpret_cast<char*>(&cpsflag), 4);
cps = static_cast<Cpsformat::Value>(cpsflag);
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
TEST_EXIT(cps == Cpsformat::ZLIB ||
cps == Cpsformat::BZIP2 ||
cps == Cpsformat::NONE)
("Cannot read Arh3 file. Currently only support zlib and bzip2 compression.\n");
#else
TEST_EXIT(cps == Cpsformat::NONE)
("HAVE_COMPRESSION OFF. Cannot read compressed Arh3 file.\n");
("AMDIS_HAS_COMPRESSION OFF. Cannot read compressed Arh3 file.\n");
#endif
TEST_EXIT(dow == (unsigned)mesh->getGeo(WORLD))
......@@ -421,7 +421,7 @@ namespace AMDiS { namespace io {
file.read(buffer, size);
dataStream.write(buffer, size);
delete[] buffer;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
stringstream tmp(ios::out | ios::in);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
switch(cps)
......@@ -649,14 +649,14 @@ namespace AMDiS { namespace io {
file.read(reinterpret_cast<char*>(&cpsflag), 4);
cps = static_cast<Cpsformat::Value>(cpsflag);
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
TEST_EXIT(cps == Cpsformat::ZLIB ||
cps == Cpsformat::BZIP2 ||
cps == Cpsformat::NONE)
("Cannot read Arh3 file. Currently only support zlib and bzip2 compression.\n");
#else
TEST_EXIT(cps == Cpsformat::NONE)
("HAVE_COMPRESSION OFF. Cannot read compressed Arh3 file.\n");
("AMDIS_HAS_COMPRESSION OFF. Cannot read compressed Arh3 file.\n");
#endif
vector<int> macroElIndex(nMacroElements);
......@@ -715,7 +715,7 @@ namespace AMDiS { namespace io {
dataStream.write(buffer, size);
delete[] buffer;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
stringstream tmp(ios::out | ios::in);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
switch(cps)
......
......@@ -15,7 +15,7 @@
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#include <boost/iostreams/filter/bzip2.hpp>
#endif
......@@ -371,7 +371,7 @@ namespace AMDiS { namespace io {
4 + //macroFile_nl
macroFile_nl; //macroFile
string typeId = "sarh";
#ifndef HAVE_COMPRESSION
#if !AMDIS_HAS_COMPRESSION
cps = Cpsformat::NONE;
#endif
uint8_t *major = const_cast<uint8_t*>(&(AMDiS::io::Arh3Reader::MAJOR));
......@@ -716,7 +716,7 @@ namespace AMDiS { namespace io {
}
stringstream tmp(ios::out | ios::in | ios::binary);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
switch(cps)
{
case Cpsformat::ZLIB:
......
......@@ -32,7 +32,7 @@
#include <boost/archive/iterators/transform_width.hpp>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#endif
#include "DOFVector.h"
......@@ -95,7 +95,7 @@ namespace AMDiS
return result;
}
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
inline std::string decompress(std::string text)
{
std::stringstream tmp1, tmp2;
......@@ -120,7 +120,7 @@ namespace AMDiS
string header = "", body = "", data = "";
if(zlib) {
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
string s = input.substr(0, 8);
if (base64)
s = detail::base64ToStr(s);
......@@ -151,7 +151,7 @@ namespace AMDiS
offset += *ptr;
}
#else
ERROR_EXIT("HAVE_COMPRESSION OFF. VtkReader cannot read APPENDED_COMPRESSED vtu files.\n");
ERROR_EXIT("AMDIS_HAS_COMPRESSION OFF. VtkReader cannot read APPENDED_COMPRESSED vtu files.\n");
#endif
} else {
header = (base64) ? detail::base64ToStr(input) : input;
......
......@@ -28,7 +28,7 @@
#include "io/DataCollector.h"
#include "SystemVector.h"
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include "io/FileCompression.h"
#endif
......@@ -43,7 +43,7 @@ namespace AMDiS
struct Aux {
Aux(std::vector<DataCollector<S>*> *dc, bool writeAs3dVector_=false)
: dataCollector(dc)
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
, compress(NONE)
#endif
, writeAs3dVector(writeAs3dVector_)
......@@ -61,7 +61,7 @@ namespace AMDiS
std::string fnPrefix, std::string fnPostfix);
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
/// Set a compressing method for file output.
void setCompression(FileCompression c)
{
......@@ -154,7 +154,7 @@ namespace AMDiS
/// List of DataCollectors, for each component of the problem one.
std::vector<DataCollector<S>*> *dataCollector;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
/** \brief
* Defines if the file has to be compressed for ouput, and with which
* kind of compress method.
......
......@@ -42,7 +42,7 @@
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/lexical_cast.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
// #include <boost/iostreams/filter/gzip.hpp>
// #include <boost/iostreams/filter/bzip2.hpp>
#endif
......@@ -67,7 +67,7 @@ namespace AMDiS
FUNCNAME("Aux<S>::writeFile()");
boost::iostreams::filtering_ostream file;
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
// switch (compress) {
// case GZIP:
// file.push(boost::iostreams::gzip_compressor());
......
......@@ -33,7 +33,7 @@
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/device/file_descriptor.hpp>
#include <boost/iostreams/copy.hpp>
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
#include <boost/iostreams/filter/zlib.hpp>
#endif
#include "AdaptInfo.h"
......@@ -86,7 +86,7 @@ namespace AMDiS { namespace io {
break;
}
case APPENDED_COMPRESSED: {
#ifdef HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
BinaryStream hstream;
int nBlocks = bstream.getSize() / AMDIS_ZLIB_BLOCK_SIZE + 1;
int finalsize = bstream.getSize() % AMDIS_ZLIB_BLOCK_SIZE;
......@@ -232,7 +232,7 @@ namespace AMDiS { namespace io {
FUNCNAME("writeParallelFile()");
using boost::lexical_cast;
#ifndef HAVE_COMPRESSION
#ifndef AMDIS_HAS_COMPRESSION
if(format == APPENDED_COMPRESSED)
format = APPENDED;
#endif
......
......@@ -119,11 +119,11 @@ namespace AMDiS { namespace io {
bstream(hp),
writeAsVector(writeAsVector_)
{
#ifndef HAVE_COMPRESSION
#ifndef AMDIS_HAS_COMPRESSION
FUNCNAME("VtkWriter::Aux::Aux()");
if(f == APPENDED_COMPRESSED) {
f = APPENDED;
WARNING("HAVE_COMPRESSION OFF. So vtuformat is automatically changed from APPENDED_COMPRESSED to APPENDED.\n");
WARNING("AMDIS_HAS_COMPRESSION OFF. So vtuformat is automatically changed from APPENDED_COMPRESSED to APPENDED.\n");
}
#endif
degree = (*dataCollector)[0]->getFeSpace()->getBasisFcts()->getDegree();
......
......@@ -35,7 +35,7 @@
#include <boost/utility/enable_if.hpp>
#endif
#if HAS_CXX11
#if AMDIS_HAS_CXX11
#include <type_traits>
#endif
......@@ -45,7 +45,7 @@ namespace AMDiS
// introduce some shortcuts for boost::mpl
// ---------------------------------------
#if HAS_CXX11
#if AMDIS_HAS_CXX11
template <bool B>
using bool_ = std::integral_constant<bool, B>;
......
......@@ -61,7 +61,7 @@ endif (AMDIS_HAS_PARALLEL_DOMAIN)
# tests if AMDiS-Extensions
if (AMDIS_NEED_EXTENSIONS)
if (AMDIS_NEED_EXTENSIONS AND NOT AMDIS_HAS_PARALLEL_DOMAIN)
add_executable(test_bg_mesh src/Test_BackgroundMesh2.cc)
target_link_libraries(test_bg_mesh ${AMDIS_LIBRARIES})
add_test(NAME RunTestBgMesh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND test_bg_mesh init/test_bg_mesh.dat)
......@@ -75,7 +75,7 @@ if (AMDIS_NEED_EXTENSIONS)
add_executable(test_vtk src/Test_Vtk.cc)
target_link_libraries(test_vtk ${AMDIS_LIBRARIES})
list(APPEND TEST_DEPENDENCIES test_vtk)
endif (AMDIS_NEED_EXTENSIONS)
endif (AMDIS_NEED_EXTENSIONS AND NOT AMDIS_HAS_PARALLEL_DOMAIN)
add_dependencies(check ${TEST_DEPENDENCIES})
......@@ -5,7 +5,7 @@
* Copyright (C) 2013 Dresden University of Technology. All Rights Reserved.
* Web: https://fusionforge.zih.tu-dresden.de/projects/amdis
*
* Authors:
* Authors:
* Simon Vey, Thomas Witkowski, Andreas Naumann, Simon Praetorius, et al.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
......@@ -15,7 +15,7 @@
* This file is part of AMDiS
*
* See also license.opensource.txt in the distribution.
*
*
******************************************************************************/
......@@ -44,19 +44,19 @@ namespace amdis_tests
{
private:
ProblemStat* ellipt;
public:
Test_Arh3(int argc, char** argv)
{
ellipt = new ProblemStat("ellipt");
ellipt = new ProblemStat("ellipt");
ellipt->initialize(INIT_ALL);
}
~Test_Arh3()
{
delete ellipt;
}
// _________________________________________________________________________
......@@ -64,32 +64,32 @@ namespace amdis_tests
void test()
{
using namespace Arh3Writer;
DataVec former, later;
#if HAVE_PARALLEL_DOMAIN_AMDIS
Parallel::MeshDistributor::globalMeshDistributor->initParallelization();
#endif
Arh3Reader::readByName("./macro/arh3.1.arh", ellipt->getSolution());
Arh3Reader::readFile("./macro/arh3.1.arh", ellipt->getSolution());
Arh3Reader::readFile("./macro/arh3.1.arh", ellipt->getSolution(), true, 2);
BOOST_CHECK_THROW(Arh3Reader::readFile("./macro/arh3.1.arh", ellipt->getSolution(), true, 3), std::runtime_error );
BOOST_CHECK_MESSAGE(!Arh2Reader::isReadable("./macro/arh3.1.arh", ellipt->getSolution()), "arh2 reader can read arh3 file...\n");
BOOST_CHECK_MESSAGE(Arh3Reader::isReadable("./macro/arh3.1.arh", ellipt->getSolution()), "arh3 reader doesn't recognize the file.\n");
writeFile(ellipt->getSolution(), "./output/NoCompression.arh",
true, Cpsformat::NONE);
#if HAVE_COMPRESSION
#ifdef AMDIS_HAS_COMPRESSION
writeFile(ellipt->getSolution(), "./output/Zlib.arh",
true, Cpsformat::ZLIB);
writeFile(ellipt->getSolution(), "./output/Zlib_ui08.arh",
true, Cpsformat::ZLIB, "UI08");
writeFile(ellipt->getSolution(), "./output/Bzip2.arh",
true, Cpsformat::BZIP2);
writeFile(ellipt->getSolution(), "./output/Bzip2_sf32.arh",
true, Cpsformat::BZIP2, "SF32");
#ifndef HAVE_PARALLEL_DOMAIN_AMDIS
......@@ -97,44 +97,44 @@ namespace amdis_tests
true, Cpsformat::NONE, "UF32"), std::runtime_error);
#endif
setData(former, ellipt->getSolution());
resetDataVector(ellipt->getSolution());
Arh3Reader::readFile("./output/Bzip2.arh", ellipt->getSolution());
setData(later, ellipt->getSolution());
BOOST_CHECK_MESSAGE(compareDataVector(former, later), "read and write do NOT match.");
// int <-> double wrong
//================================//
resetDataVector(ellipt->getSolution());
resetDataVector(ellipt->getSolution());
Arh3Reader::readFile("./output/Bzip2_sf32.arh", ellipt->getSolution());
setData(later, ellipt->getSolution());
BOOST_CHECK_MESSAGE(!compareDataVector(former, later), "read and write should NOT match.");
// float <-> double wrong
//================================//
resetDataVector(ellipt->getSolution());
resetDataVector(ellipt->getSolution());
Arh3Reader::readFile("./output/Zlib_ui08.arh", ellipt->getSolution());
setData(later, ellipt->getSolution());
BOOST_CHECK_MESSAGE(!compareDataVector(former, later), "read and write should NOT match.");
#endif
#endif
}
void endTest()
{
finalize();
}
protected:
int argc;
char** argv;
protected:
protected:
// some helper functions
// -------------------------------------------------------------------------
......@@ -177,7 +177,7 @@ namespace amdis_tests
{
FUNCNAME("compareDataVector");
bool same = true;
if(&vec1 == &vec2)
{
cout<<"RESULT: parameter1 and 2 are identical!\n";
......@@ -190,7 +190,7 @@ namespace amdis_tests
{
if(vec1[i] != vec2[i])
{
MSG("RESULT: vec number %i is not equal.\n", (i + 1));
MSG("RESULT: vec number %i is not equal.\n", (i + 1));
/* std::vector<double>::const_iterator it;
for (it = vec2[i].begin(); it < vec2[i].end(); it++)
std::cout << ' ' << *it;
......@@ -201,7 +201,7 @@ namespace amdis_tests
}
for(int i = minsize; i < maxsize; i++)
{
MSG("RESULT: vec number %i not exist.\n", (i + 1));
MSG("RESULT: vec number %i not exist.\n", (i + 1));
same = false;
}
if(same)
......
......@@ -11,7 +11,7 @@ if [ $# -gt 0 ]; then
while [[ $1 = -* ]]; do
case "$1" in
--stage)
STAGE="$2" # [build|demo|test]
STAGE="$2" # [build|demo|test|all]
shift 2 ;;
--config)
CONFIG="$2" # [Debug|Release]
......@@ -47,7 +47,7 @@ else
fi
if [ "${STAGE}" == "build" ]; then
if [[ "${STAGE}" == "build" || "${STAGE}" == "all" ]]; then
# at first build AMDiS
cmake -E make_directory ${ROOT}/build_${POSTFIX}
cmake -E chdir ${ROOT}/build_${POSTFIX} cmake \
......@@ -57,10 +57,10 @@ if [ "${STAGE}" == "build" ]; then
-DENABLE_EXTENSIONS:BOOL=ON \
${FLAGS} \
${ROOT}/AMDiS
cmake --build ${ROOT}/build_${POSTFIX} --target install
cmake --build ${ROOT}/build_${POSTFIX} --target install -- -j2
fi
if [ "${STAGE}" == "demo" ]; then
if [[ "${STAGE}" == "demo" || "${STAGE}" == "all" ]]; then
# now build the demos
BASEDIR=${ROOT}/demo
cmake -E make_directory ${BASEDIR}/build_${POSTFIX}
......@@ -72,7 +72,7 @@ if [ "${STAGE}" == "demo" ]; then
cmake --build ${BASEDIR}/build_${POSTFIX}
fi
if [ "${STAGE}" == "test" ]; then
if [[ "${STAGE}" == "test" || "${STAGE}" == "all" ]]; then
# now build and run the test_suite
BASEDIR=${ROOT}/test
cmake -E make_directory ${BASEDIR}/build_${POSTFIX}
......
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