From 5e5ee2e2de4320459b093061a346625f2a49dfee Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Wed, 31 Jul 2024 21:55:10 +0200 Subject: [PATCH] Add support for using system skia --- setup.py | 55 ++++++++++++++++++++++++++++++++++------------- src/skia/Font.cpp | 6 +++--- src/skia/main.cpp | 4 ++-- 3 files changed, 45 insertions(+), 20 deletions(-) diff --git a/setup.py b/setup.py index 9bcd57978..ba665d6bd 100644 --- a/setup.py +++ b/setup.py @@ -15,9 +15,8 @@ __version__ = '128.0b9' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') -SKIA_OUT_PATH = os.getenv( - 'SKIA_OUT_PATH', os.path.join(SKIA_PATH, 'out', 'Release') -) +SKIA_OUT_PATH = os.getenv('SKIA_OUT_PATH', os.path.join(SKIA_PATH, 'out', 'Release')) +USE_SYSTEM_LIBS = os.getenv('USE_SYSTEM_LIBS', '0') == '1' if sys.platform == 'win32': DEFINE_MACROS = [] # doesn't work for cl.exe @@ -31,10 +30,19 @@ 'Gdi32', 'Advapi32', ] - EXTRA_OBJECTS = list( - ) + [os.path.join(SKIA_OUT_PATH, 'svg.lib'), os.path.join(SKIA_OUT_PATH, 'skresources.lib'), os.path.join(SKIA_OUT_PATH, 'skia.lib'), - os.path.join(SKIA_OUT_PATH, 'skshaper.lib'), - os.path.join(SKIA_OUT_PATH, 'skunicode_icu.lib'), os.path.join(SKIA_OUT_PATH, 'skunicode_core.lib')] + EXTRA_OBJECTS = [ + 'svg', + 'skresources', + 'skia', + 'skshaper', + 'skunicode_icu', + 'skunicode_core', + ] + if USE_SYSTEM_LIBS: + LIBRARIES.extend(EXTRA_OBJECTS) + EXTRA_OBJECTS = [] + else: + EXTRA_OBJECTS = [os.path.join(SKIA_OUT_PATH, f'{lib}.lib') for lib in EXTRA_OBJECTS] EXTRA_COMPILE_ARGS = [ '/std:c++17', # c++20 fails. '/DVERSION_INFO=%s' % __version__, @@ -64,10 +72,18 @@ LIBRARIES = [ 'dl', ] - EXTRA_OBJECTS = list( - ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), - os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] + EXTRA_OBJECTS = [ + 'svg', + 'skia', + 'skshaper', + 'skunicode_icu', + 'skunicode_core', + ] + if USE_SYSTEM_LIBS: + LIBRARIES.extend(EXTRA_OBJECTS) + EXTRA_OBJECTS = [] + else: + EXTRA_OBJECTS = [os.path.join(SKIA_OUT_PATH, f'lib{lib}.a') for lib in EXTRA_OBJECTS] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-stdlib=libc++', @@ -98,10 +114,19 @@ 'GL', 'expat', ] - EXTRA_OBJECTS = list( - ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskresources.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), - os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] + EXTRA_OBJECTS = [ + 'svg', + 'skresources', + 'skia', + 'skshaper', + 'skunicode_icu', + 'skunicode_core', + ] + if USE_SYSTEM_LIBS: + LIBRARIES.extend(EXTRA_OBJECTS) + EXTRA_OBJECTS = [] + else: + EXTRA_OBJECTS = [os.path.join(SKIA_OUT_PATH, f'lib{lib}.a') for lib in EXTRA_OBJECTS] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-fvisibility=hidden', diff --git a/src/skia/Font.cpp b/src/skia/Font.cpp index dcbb9a507..13b48dd22 100644 --- a/src/skia/Font.cpp +++ b/src/skia/Font.cpp @@ -11,15 +11,15 @@ #endif #ifdef __APPLE__ -#include "include/ports/SkFontMgr_mac_ct.h" +#include #endif #ifdef __linux__ -#include "include/ports/SkFontMgr_fontconfig.h" +#include #endif #ifdef _WIN32 -#include "include/ports/SkTypeface_win.h" +#include #endif #include diff --git a/src/skia/main.cpp b/src/skia/main.cpp index e3cef209b..c72f0f234 100644 --- a/src/skia/main.cpp +++ b/src/skia/main.cpp @@ -1,6 +1,6 @@ #include "common.h" -#include "include/core/SkGraphics.h" -#include "modules/svg/include/SkSVGOpenTypeSVGDecoder.h" +#include +#include #define XSTRING(s) STRING(s) #define STRING(s) #s