diff options
Diffstat (limited to 'vcpkg/ports/skia/skparagraph-dllexport.patch')
| -rw-r--r-- | vcpkg/ports/skia/skparagraph-dllexport.patch | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/vcpkg/ports/skia/skparagraph-dllexport.patch b/vcpkg/ports/skia/skparagraph-dllexport.patch new file mode 100644 index 0000000..b41e60e --- /dev/null +++ b/vcpkg/ports/skia/skparagraph-dllexport.patch @@ -0,0 +1,231 @@ +diff --git a/modules/skparagraph/BUILD.gn b/modules/skparagraph/BUILD.gn +index 283eeacebd..742fe4552f 100644 +--- a/modules/skparagraph/BUILD.gn ++++ b/modules/skparagraph/BUILD.gn +@@ -20,6 +20,9 @@ if (skia_enable_skparagraph && skia_enable_skshaper && skia_enable_skunicode && + "include", + "utils", + ] ++ if (is_component_build) { ++ defines += [ "SKPARAGRAPH_DLL" ] ++ } + } + + skia_component("skparagraph") { +@@ -27,6 +30,7 @@ if (skia_enable_skparagraph && skia_enable_skshaper && skia_enable_skunicode && + public_configs = [ ":public_config" ] + public = skparagraph_core_public + sources = skparagraph_core_sources ++ defines = [ "SKPARAGRAPH_IMPLEMENTATION=1" ] + public_deps = [ + "../..:skia", + "../skunicode", +diff --git a/modules/skparagraph/include/FontCollection.h b/modules/skparagraph/include/FontCollection.h +index ae2f9922d0..5b77e997bc 100644 +--- a/modules/skparagraph/include/FontCollection.h ++++ b/modules/skparagraph/include/FontCollection.h +@@ -16,9 +16,29 @@ + namespace skia { + namespace textlayout { + ++#if !defined(SKPARAGRAPH_IMPLEMENTATION) ++ #define SKPARAGRAPH_IMPLEMENTATION 0 ++#endif ++ ++#if !defined(SKPARAGRAPH_API) ++ #if defined(SKPARAGRAPH_DLL) ++ #if defined(_MSC_VER) ++ #if SKPARAGRAPH_IMPLEMENTATION ++ #define SKPARAGRAPH_API __declspec(dllexport) ++ #else ++ #define SKPARAGRAPH_API __declspec(dllimport) ++ #endif ++ #else ++ #define SKPARAGRAPH_API __attribute__((visibility("default"))) ++ #endif ++ #else ++ #define SKPARAGRAPH_API ++ #endif ++#endif ++ + class TextStyle; + class Paragraph; +-class FontCollection : public SkRefCnt { ++class SKPARAGRAPH_API FontCollection : public SkRefCnt { + public: + FontCollection(); + +diff --git a/modules/skparagraph/include/ParagraphBuilder.h b/modules/skparagraph/include/ParagraphBuilder.h +index feac5622bb..72712e121d 100644 +--- a/modules/skparagraph/include/ParagraphBuilder.h ++++ b/modules/skparagraph/include/ParagraphBuilder.h +@@ -16,7 +16,27 @@ + namespace skia { + namespace textlayout { + +-class ParagraphBuilder { ++#if !defined(SKPARAGRAPH_IMPLEMENTATION) ++ #define SKPARAGRAPH_IMPLEMENTATION 0 ++#endif ++ ++#if !defined(SKPARAGRAPH_API) ++ #if defined(SKPARAGRAPH_DLL) ++ #if defined(_MSC_VER) ++ #if SKPARAGRAPH_IMPLEMENTATION ++ #define SKPARAGRAPH_API __declspec(dllexport) ++ #else ++ #define SKPARAGRAPH_API __declspec(dllimport) ++ #endif ++ #else ++ #define SKPARAGRAPH_API __attribute__((visibility("default"))) ++ #endif ++ #else ++ #define SKPARAGRAPH_API ++ #endif ++#endif ++ ++class SKPARAGRAPH_API ParagraphBuilder { + protected: + ParagraphBuilder() {} + +diff --git a/modules/skparagraph/include/ParagraphStyle.h b/modules/skparagraph/include/ParagraphStyle.h +index 98ec228ffb..63e973c7db 100644 +--- a/modules/skparagraph/include/ParagraphStyle.h ++++ b/modules/skparagraph/include/ParagraphStyle.h +@@ -18,6 +18,26 @@ + namespace skia { + namespace textlayout { + ++#if !defined(SKPARAGRAPH_IMPLEMENTATION) ++ #define SKPARAGRAPH_IMPLEMENTATION 0 ++#endif ++ ++#if !defined(SKPARAGRAPH_API) ++ #if defined(SKPARAGRAPH_DLL) ++ #if defined(_MSC_VER) ++ #if SKPARAGRAPH_IMPLEMENTATION ++ #define SKPARAGRAPH_API __declspec(dllexport) ++ #else ++ #define SKPARAGRAPH_API __declspec(dllimport) ++ #endif ++ #else ++ #define SKPARAGRAPH_API __attribute__((visibility("default"))) ++ #endif ++ #else ++ #define SKPARAGRAPH_API ++ #endif ++#endif ++ + struct StrutStyle { + StrutStyle(); + +@@ -75,7 +95,7 @@ private: + bool fHalfLeading; + }; + +-struct ParagraphStyle { ++struct SKPARAGRAPH_API ParagraphStyle { + ParagraphStyle(); + + bool operator==(const ParagraphStyle& rhs) const { +diff --git a/modules/skparagraph/include/TextStyle.h b/modules/skparagraph/include/TextStyle.h +index 4bc2fb9dbc..4bee210fb7 100644 +--- a/modules/skparagraph/include/TextStyle.h ++++ b/modules/skparagraph/include/TextStyle.h +@@ -21,6 +21,26 @@ + namespace skia { + namespace textlayout { + ++#if !defined(SKPARAGRAPH_IMPLEMENTATION) ++ #define SKPARAGRAPH_IMPLEMENTATION 0 ++#endif ++ ++#if !defined(SKPARAGRAPH_API) ++ #if defined(SKPARAGRAPH_DLL) ++ #if defined(_MSC_VER) ++ #if SKPARAGRAPH_IMPLEMENTATION ++ #define SKPARAGRAPH_API __declspec(dllexport) ++ #else ++ #define SKPARAGRAPH_API __declspec(dllimport) ++ #endif ++ #else ++ #define SKPARAGRAPH_API __attribute__((visibility("default"))) ++ #endif ++ #else ++ #define SKPARAGRAPH_API ++ #endif ++#endif ++ + static inline bool nearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZero) { + if (SkIsFinite(x)) { + return SkScalarNearlyZero(x, tolerance); +@@ -148,9 +168,9 @@ struct PlaceholderStyle { + SkScalar fBaselineOffset = 0; + }; + +-class TextStyle { ++class SKPARAGRAPH_API TextStyle { + public: +- TextStyle() = default; ++ TextStyle(); + TextStyle(const TextStyle& other) = default; + TextStyle& operator=(const TextStyle& other) = default; + +@@ -288,8 +308,6 @@ public: + void setPlaceholder() { fIsPlaceholder = true; } + + private: +- static const std::vector<SkString>* kDefaultFontFamilies; +- + Decoration fDecoration = { + TextDecoration::kNoDecoration, + // TODO: switch back to kGaps when (if) switching flutter to skparagraph +@@ -302,7 +320,7 @@ private: + + SkFontStyle fFontStyle; + +- std::vector<SkString> fFontFamilies = *kDefaultFontFamilies; ++ std::vector<SkString> fFontFamilies; + + SkScalar fFontSize = 14.0; + SkScalar fHeight = 1.0; +diff --git a/modules/skparagraph/src/TextStyle.cpp b/modules/skparagraph/src/TextStyle.cpp +index 492f94fe10..9889cc90aa 100644 +--- a/modules/skparagraph/src/TextStyle.cpp ++++ b/modules/skparagraph/src/TextStyle.cpp +@@ -6,9 +6,13 @@ + namespace skia { + namespace textlayout { + +-const std::vector<SkString>* TextStyle::kDefaultFontFamilies = ++static const std::vector<SkString>* kDefaultFontFamilies = + new std::vector<SkString>{SkString(DEFAULT_FONT_FAMILY)}; + ++TextStyle::TextStyle() : fFontFamilies(*kDefaultFontFamilies) ++{ ++} ++ + TextStyle TextStyle::cloneForPlaceholder() { + TextStyle result; + result.fColor = fColor; +diff --git a/modules/skparagraph/utils/TestFontCollection.cpp b/modules/skparagraph/utils/TestFontCollection.cpp +index b74a3b99cf..3fe2b129da 100644 +--- a/modules/skparagraph/utils/TestFontCollection.cpp ++++ b/modules/skparagraph/utils/TestFontCollection.cpp +@@ -57,6 +57,8 @@ bool TestFontCollection::addFontFromFile(const std::string& path, const std::str + if (!file) { + return false; + } ++ ++#if 0 + #if defined(SK_TYPEFACE_FACTORY_FREETYPE) + sk_sp<SkTypeface> face = + SkTypeface_FreeType::MakeFromStream(std::move(file), SkFontArguments()); +@@ -72,6 +74,7 @@ bool TestFontCollection::addFontFromFile(const std::string& path, const std::str + } else { + fFontProvider->registerTypeface(std::move(face), SkString(familyName.c_str())); + } ++#endif + + return true; + } |