Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/3 Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team> Co-authored-by: Aleksandr Vodyanov <aleksandr.vodyanov@avroid.team> Co-committed-by: Aleksandr Vodyanov <aleksandr.vodyanov@avroid.team>
78 lines
2.3 KiB
Diff
78 lines
2.3 KiB
Diff
--- a/CMake/CatchConfigOptions.cmake
|
|
+++ b/CMake/CatchConfigOptions.cmake
|
|
@@ -45,6 +45,7 @@ set(_OverridableOptions
|
|
foreach(OptionName ${_OverridableOptions})
|
|
AddOverridableConfigOption(${OptionName})
|
|
endforeach()
|
|
+set(CATCH_CONFIG_SHARED_LIBRARY ${BUILD_SHARED_LIBS})
|
|
|
|
set(_OtherConfigOptions
|
|
"DISABLE_EXCEPTIONS"
|
|
--- 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>
|
|
--- 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
|
|
--- a/src/catch2/internal/catch_compiler_capabilities.hpp
|
|
+++ b/src/catch2/internal/catch_compiler_capabilities.hpp
|
|
@@ -364,5 +364,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
|
|
--- 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();
|