mirror of
https://github.com/NGSolve/netgen.git
synced 2024-11-11 16:49:16 +05:00
[ngcore] DLL exports
This commit is contained in:
parent
69769fc628
commit
0dc04b661c
@ -1,7 +1,7 @@
|
|||||||
add_definitions(-DNGINTERFACE_EXPORTS)
|
|
||||||
add_library(ngcore basearchive.cpp)
|
add_library(ngcore basearchive.cpp)
|
||||||
|
|
||||||
set_target_properties(ngcore PROPERTIES POSITION_INDEPENDENT_CODE ON )
|
set_target_properties(ngcore PROPERTIES POSITION_INDEPENDENT_CODE ON )
|
||||||
|
target_compile_definitions(ngcore PRIVATE -DNGCORE_EXPORTS)
|
||||||
|
|
||||||
install(TARGETS ngcore DESTINATION ${NG_INSTALL_DIR} COMPONENT netgen)
|
install(TARGETS ngcore DESTINATION ${NG_INSTALL_DIR} COMPONENT netgen)
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
namespace ngcore
|
namespace ngcore
|
||||||
{
|
{
|
||||||
// BinaryOutArchive ======================================================================
|
// BinaryOutArchive ======================================================================
|
||||||
class DLL_HEADER BinaryOutArchive : public Archive
|
class NGCORE_API BinaryOutArchive : public Archive
|
||||||
{
|
{
|
||||||
size_t ptr = 0;
|
size_t ptr = 0;
|
||||||
enum { BUFFERSIZE = 1024 };
|
enum { BUFFERSIZE = 1024 };
|
||||||
@ -82,7 +82,7 @@ namespace ngcore
|
|||||||
};
|
};
|
||||||
|
|
||||||
// BinaryInArchive ======================================================================
|
// BinaryInArchive ======================================================================
|
||||||
class DLL_HEADER BinaryInArchive : public Archive
|
class NGCORE_API BinaryInArchive : public Archive
|
||||||
{
|
{
|
||||||
std::map<std::string, VersionInfo> vinfo;
|
std::map<std::string, VersionInfo> vinfo;
|
||||||
std::shared_ptr<std::istream> fin;
|
std::shared_ptr<std::istream> fin;
|
||||||
@ -150,7 +150,7 @@ namespace ngcore
|
|||||||
};
|
};
|
||||||
|
|
||||||
// TextOutArchive ======================================================================
|
// TextOutArchive ======================================================================
|
||||||
class DLL_HEADER TextOutArchive : public Archive
|
class NGCORE_API TextOutArchive : public Archive
|
||||||
{
|
{
|
||||||
std::shared_ptr<std::ostream> fout;
|
std::shared_ptr<std::ostream> fout;
|
||||||
public:
|
public:
|
||||||
@ -204,7 +204,7 @@ namespace ngcore
|
|||||||
};
|
};
|
||||||
|
|
||||||
// TextInArchive ======================================================================
|
// TextInArchive ======================================================================
|
||||||
class DLL_HEADER TextInArchive : public Archive
|
class NGCORE_API TextInArchive : public Archive
|
||||||
{
|
{
|
||||||
std::map<std::string, VersionInfo> vinfo;
|
std::map<std::string, VersionInfo> vinfo;
|
||||||
std::shared_ptr<std::istream> fin;
|
std::shared_ptr<std::istream> fin;
|
||||||
|
@ -9,7 +9,7 @@ namespace ngcore
|
|||||||
void SetLibraryVersion(const std::string& library, VersionInfo version);
|
void SetLibraryVersion(const std::string& library, VersionInfo version);
|
||||||
|
|
||||||
class Archive;
|
class Archive;
|
||||||
DLL_HEADER std::string demangle(const char* typeinfo);
|
NGCORE_API std::string demangle(const char* typeinfo);
|
||||||
|
|
||||||
// create new pointer of type T if it is default constructible, else throw
|
// create new pointer of type T if it is default constructible, else throw
|
||||||
template<typename T>
|
template<typename T>
|
||||||
@ -34,7 +34,7 @@ namespace ngcore
|
|||||||
static constexpr std::false_type check(...);
|
static constexpr std::false_type check(...);
|
||||||
typedef decltype(check<T>(0)) type;
|
typedef decltype(check<T>(0)) type;
|
||||||
public:
|
public:
|
||||||
DLL_HEADER static constexpr bool value = type::value;
|
NGCORE_API static constexpr bool value = type::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check if class is archivable
|
// Check if class is archivable
|
||||||
@ -49,7 +49,7 @@ namespace ngcore
|
|||||||
static constexpr std::false_type check(...);
|
static constexpr std::false_type check(...);
|
||||||
typedef decltype(check<T>(nullptr)) type;
|
typedef decltype(check<T>(nullptr)) type;
|
||||||
public:
|
public:
|
||||||
DLL_HEADER static constexpr bool value = type::value;
|
NGCORE_API static constexpr bool value = type::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ClassArchiveInfo
|
struct ClassArchiveInfo
|
||||||
@ -66,7 +66,7 @@ namespace ngcore
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Base Archive class
|
// Base Archive class
|
||||||
class DLL_HEADER Archive
|
class NGCORE_API Archive
|
||||||
{
|
{
|
||||||
bool is_output;
|
bool is_output;
|
||||||
// how many different shared_ptr/pointer have been (un)archived
|
// how many different shared_ptr/pointer have been (un)archived
|
||||||
@ -454,7 +454,7 @@ namespace ngcore
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<typename T, typename ... Bases>
|
template<typename T, typename ... Bases>
|
||||||
class DLL_HEADER RegisterClassForArchive
|
class NGCORE_API RegisterClassForArchive
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RegisterClassForArchive()
|
RegisterClassForArchive()
|
||||||
|
@ -15,6 +15,20 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <complex>
|
#include <complex>
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#define NGCORE_API_EXPORT __declspec(dllexport)
|
||||||
|
#define NGCORE_API_IMPORT __declspec(dllimport)
|
||||||
|
#else
|
||||||
|
#define NGCORE_API_EXPORT
|
||||||
|
#define NGCORE_API_IMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NGCORE_EXPORTS
|
||||||
|
#define NGCORE_API NGCORE_API_EXPORT
|
||||||
|
#else
|
||||||
|
#define NGCORE_API NGCORE_API_IMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace ngcore
|
namespace ngcore
|
||||||
{
|
{
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
|
Loading…
Reference in New Issue
Block a user