diff --git a/libs/utils/include/utils/CString.h b/libs/utils/include/utils/CString.h index 77de95f61a..018b18f6bf 100644 --- a/libs/utils/include/utils/CString.h +++ b/libs/utils/include/utils/CString.h @@ -19,6 +19,8 @@ // NOTE: this header should not include STL headers +#include + #include #include #include @@ -68,7 +70,7 @@ template using StringLiteral = const char[N]; //! \publicsection -class StaticString { +class UTILS_PUBLIC StaticString { public: using value_type = char; using size_type = uint32_t; @@ -186,7 +188,7 @@ private: // ------------------------------------------------------------------------------------------------ -class CString { +class UTILS_PUBLIC CString { public: using value_type = char; using size_type = uint32_t; diff --git a/libs/utils/include/utils/JobSystem.h b/libs/utils/include/utils/JobSystem.h index e1b00c9bc8..079bdf16fb 100644 --- a/libs/utils/include/utils/JobSystem.h +++ b/libs/utils/include/utils/JobSystem.h @@ -26,6 +26,7 @@ #include #include +#include #include #include #include diff --git a/libs/utils/include/utils/Log.h b/libs/utils/include/utils/Log.h index 3e4e7e263f..8ddfc7571e 100644 --- a/libs/utils/include/utils/Log.h +++ b/libs/utils/include/utils/Log.h @@ -28,7 +28,7 @@ namespace utils { namespace io { -class LogStream : public ostream { +class UTILS_PUBLIC LogStream : public ostream { public: enum Priority { @@ -45,7 +45,7 @@ private: } // namespace io -struct Loggers { +struct UTILS_PUBLIC Loggers { // DEBUG level logging stream io::LogStream& d; @@ -59,7 +59,7 @@ struct Loggers { io::LogStream& i; }; -extern Loggers slog; +extern UTILS_PUBLIC Loggers slog; } // namespace utils diff --git a/libs/utils/include/utils/NameComponentManager.h b/libs/utils/include/utils/NameComponentManager.h index 16540e1a8f..bc27e63222 100644 --- a/libs/utils/include/utils/NameComponentManager.h +++ b/libs/utils/include/utils/NameComponentManager.h @@ -67,7 +67,7 @@ private: * printf("%s\n", names->getName(names->getInstance(myEntity)); * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -class NameComponentManager : public SingleInstanceComponentManager { +class UTILS_PUBLIC NameComponentManager : public SingleInstanceComponentManager { public: using Instance = EntityInstance; diff --git a/libs/utils/include/utils/Panic.h b/libs/utils/include/utils/Panic.h index 76cf0e378a..1b53b34aa4 100644 --- a/libs/utils/include/utils/Panic.h +++ b/libs/utils/include/utils/Panic.h @@ -248,7 +248,7 @@ namespace utils { * The Panic class provides the std::exception protocol, it is the base exception object * used for all thrown exceptions. */ -class Panic { +class UTILS_PUBLIC Panic { public: virtual ~Panic() noexcept; @@ -299,7 +299,7 @@ public: * interface common to all exceptions thrown by the framework. */ template -class TPanic : public Panic { +class UTILS_PUBLIC TPanic : public Panic { public: // std::exception protocol const char* what() const noexcept override; @@ -386,7 +386,7 @@ void logAndPanic( * ASSERT_PRECONDITION uses this Panic to report a precondition failure. * @see ASSERT_PRECONDITION */ -class PreconditionPanic : public TPanic { +class UTILS_PUBLIC PreconditionPanic : public TPanic { // Programming error, can be avoided // e.g.: invalid arguments using TPanic::TPanic; @@ -399,7 +399,7 @@ class PreconditionPanic : public TPanic { * ASSERT_POSTCONDITION uses this Panic to report a postcondition failure. * @see ASSERT_POSTCONDITION */ -class PostconditionPanic : public TPanic { +class UTILS_PUBLIC PostconditionPanic : public TPanic { // Usually only detectable at runtime // e.g.: dead-lock would occur, arithmetic errors using TPanic::TPanic; @@ -412,7 +412,7 @@ class PostconditionPanic : public TPanic { * ASSERT_ARITHMETIC uses this Panic to report an arithmetic (postcondition) failure. * @see ASSERT_ARITHMETIC */ -class ArithmeticPanic : public TPanic { +class UTILS_PUBLIC ArithmeticPanic : public TPanic { // A common case of post-condition error // e.g.: underflow, overflow, internal computations errors using TPanic::TPanic; diff --git a/libs/utils/include/utils/Path.h b/libs/utils/include/utils/Path.h index d5317b129f..d66ef6838a 100644 --- a/libs/utils/include/utils/Path.h +++ b/libs/utils/include/utils/Path.h @@ -17,6 +17,8 @@ #ifndef UTILS_PATH_H_ #define UTILS_PATH_H_ +#include + #include #include #include @@ -26,7 +28,7 @@ namespace utils { /** * An abstract representation of file and directory paths. */ -class Path { +class UTILS_PUBLIC Path { public: /** * Creates a new empty path. diff --git a/libs/utils/include/utils/SingleInstanceComponentManager.h b/libs/utils/include/utils/SingleInstanceComponentManager.h index d2b1df9c9e..142869b5d5 100644 --- a/libs/utils/include/utils/SingleInstanceComponentManager.h +++ b/libs/utils/include/utils/SingleInstanceComponentManager.h @@ -44,7 +44,7 @@ class EntityManager; * */ template -class SingleInstanceComponentManager { +class UTILS_PUBLIC SingleInstanceComponentManager { private: // this is just to avoid using std::default_random_engine, since we're in a public header. diff --git a/libs/utils/include/utils/bitset.h b/libs/utils/include/utils/bitset.h index d4e35c2bfd..221f7a8cd7 100644 --- a/libs/utils/include/utils/bitset.h +++ b/libs/utils/include/utils/bitset.h @@ -18,6 +18,7 @@ #define TNT_UTILS_BITSET_H #include +#include #include #include @@ -44,7 +45,7 @@ namespace utils { template::value && std::is_unsigned::value>::type> -class bitset { +class UTILS_PUBLIC bitset { T storage[N]; public: diff --git a/libs/utils/include/utils/ostream.h b/libs/utils/include/utils/ostream.h index 173a87656c..b59dd05eed 100644 --- a/libs/utils/include/utils/ostream.h +++ b/libs/utils/include/utils/ostream.h @@ -25,7 +25,7 @@ namespace utils { namespace io { -class ostream { +class UTILS_PUBLIC ostream { public: virtual ~ostream();