Files
loongoffice/external/skia/make-api-visible.patch.1
Stephan Bergmann fb3f5fe936 UBSan needs sk_app::WindowContext RTTI in Library_vcl
...as seen during CppunitTest_basic_scanner:

> DynamicLibraryManagerException: "Failed to load dynamic library: workdir/LinkTarget/CppunitTest/libtest_basic_scanner.so
> instdir/program/libvcllo.so: undefined symbol: _ZTIN6sk_app13WindowContextE"

Change-Id: I7c39d19fda3cdfe51b5ccf117ffe5c6c89863258
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101410
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-26 18:53:38 +02:00

72 lines
2.8 KiB
Groff

--- a/tools/sk_app/WindowContext.h
+++ b/tools/sk_app/WindowContext.h
@@ -17,7 +17,11 @@
namespace sk_app {
-class WindowContext {
+class
+#if defined __clang__ && !defined _MSC_VER
+__attribute__((type_visibility("default")))
+#endif
+WindowContext {
public:
WindowContext(const DisplayParams&);
diff --git a/tools/sk_app/unix/WindowContextFactory_unix.h b/tools/sk_app/unix/WindowContextFactory_unix.h
index 11bd2d2ac2..09c92dc417 100644
--- a/tools/sk_app/unix/WindowContextFactory_unix.h
+++ b/tools/sk_app/unix/WindowContextFactory_unix.h
@@ -36,15 +36,15 @@ struct XlibWindowInfo {
int fHeight;
};
-std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
-std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&);
#ifdef SK_DAWN
-std::unique_ptr<WindowContext> MakeDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&);
#endif
-std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&);
} // namespace window_context_factory
diff --git a/tools/sk_app/win/WindowContextFactory_win.h b/tools/sk_app/win/WindowContextFactory_win.h
index c05a4f0acf..fc27cd2afb 100644
--- a/tools/sk_app/win/WindowContextFactory_win.h
+++ b/tools/sk_app/win/WindowContextFactory_win.h
@@ -20,21 +20,21 @@ struct DisplayParams;
namespace window_context_factory {
-std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&);
-std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&);
-std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&);
#ifdef SK_DIRECT3D
-std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&);
#endif
#ifdef SK_DAWN
-std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const DisplayParams&);
#endif
-std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&);
+SK_API std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&);
} // namespace window_context_factory