diff options
| author | Dimitrij Mijoski | 2022-09-17 14:58:52 +0200 |
|---|---|---|
| committer | Martin Hořeňovský | 2022-09-24 15:15:50 +0200 |
| commit | c0e582e65955f84312548bcee36b962a013f262f (patch) | |
| tree | 3b645976db206e81fef51f490faf98c3cf63278c /src/catch2 | |
| parent | 0de60d8e7ead1ddd5ba8c46b901c122eac20bf94 (diff) | |
| download | catch3-c0e582e65955f84312548bcee36b962a013f262f.tar.gz | |
Fix building as shared library with MSVC.
Diffstat (limited to 'src/catch2')
| -rw-r--r-- | src/catch2/catch_tostring.hpp | 4 | ||||
| -rw-r--r-- | src/catch2/catch_user_config.hpp.in | 2 | ||||
| -rw-r--r-- | src/catch2/internal/catch_compiler_capabilities.hpp | 10 | ||||
| -rw-r--r-- | src/catch2/internal/catch_context.hpp | 4 |
4 files changed, 17 insertions, 3 deletions
diff --git a/src/catch2/catch_tostring.hpp b/src/catch2/catch_tostring.hpp index 964c8a66..235dec3b 100644 --- a/src/catch2/catch_tostring.hpp +++ b/src/catch2/catch_tostring.hpp @@ -296,13 +296,13 @@ namespace Catch { template<> struct StringMaker<float> { static std::string convert(float value); - static int precision; + CATCH_EXPORT static int precision; }; template<> struct StringMaker<double> { static std::string convert(double value); - static int precision; + CATCH_EXPORT static int precision; }; template <typename T> diff --git a/src/catch2/catch_user_config.hpp.in b/src/catch2/catch_user_config.hpp.in index 77c94291..f8e03735 100644 --- a/src/catch2/catch_user_config.hpp.in +++ b/src/catch2/catch_user_config.hpp.in @@ -181,6 +181,8 @@ #cmakedefine CATCH_CONFIG_PREFIX_ALL #cmakedefine CATCH_CONFIG_WINDOWS_CRTDBG +#cmakedefine CATCH_CONFIG_SHARED_LIBRARY + // ------ // "Variable" defines, these have actual values diff --git a/src/catch2/internal/catch_compiler_capabilities.hpp b/src/catch2/internal/catch_compiler_capabilities.hpp index 9ffae596..f2320e63 100644 --- a/src/catch2/internal/catch_compiler_capabilities.hpp +++ b/src/catch2/internal/catch_compiler_capabilities.hpp @@ -382,5 +382,15 @@ # define CATCH_CONFIG_COLOUR_WIN32 #endif +#if defined( CATCH_CONFIG_SHARED_LIBRARY ) && defined( _MSC_VER ) && \ + !defined( CATCH_CONFIG_STATIC ) +# ifdef Catch2_EXPORTS +# define CATCH_EXPORT //__declspec( dllexport ) // not needed +# else +# define CATCH_EXPORT __declspec( dllimport ) +# endif +#else +# define CATCH_EXPORT +#endif #endif // CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED diff --git a/src/catch2/internal/catch_context.hpp b/src/catch2/internal/catch_context.hpp index fe129705..53dc29a5 100644 --- a/src/catch2/internal/catch_context.hpp +++ b/src/catch2/internal/catch_context.hpp @@ -8,6 +8,8 @@ #ifndef CATCH_CONTEXT_HPP_INCLUDED #define CATCH_CONTEXT_HPP_INCLUDED +#include <catch2/internal/catch_compiler_capabilities.hpp> + namespace Catch { class IResultCapture; @@ -28,7 +30,7 @@ namespace Catch { virtual void setConfig( IConfig const* config ) = 0; private: - static IMutableContext *currentContext; + CATCH_EXPORT static IMutableContext* currentContext; friend IMutableContext& getCurrentMutableContext(); friend void cleanUpContext(); static void createContext(); |