From 12fdac097a4a40bf6f100eafdb5437b784c4a2e3 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Thu, 11 Dec 2025 06:09:45 +0100 Subject: [PATCH] =?UTF-8?q?fix(=F0=9F=90=9B):=20set=20-fexceptions=20and?= =?UTF-8?q?=20-frtti=20flag=20in=20the=20Skia=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 2 +- externals/depot_tools | 2 +- externals/skia | 2 +- packages/skia/scripts/build-skia.ts | 6 --- packages/skia/scripts/skia-configuration.ts | 56 +++++++++++++++++---- 5 files changed, 48 insertions(+), 20 deletions(-) diff --git a/.gitmodules b/.gitmodules index 18919146c6..0a6e3b780b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "externals/skia"] path = externals/skia url = https://chromium.googlesource.com/skia/ - branch = chrome/m142 + branch = chrome/m144 [submodule "externals/depot_tools"] path = externals/depot_tools url = https://chromium.googlesource.com/chromium/tools/depot_tools.git diff --git a/externals/depot_tools b/externals/depot_tools index 8a1ec6a021..a6671ce6c7 160000 --- a/externals/depot_tools +++ b/externals/depot_tools @@ -1 +1 @@ -Subproject commit 8a1ec6a0213ae033f6749f261e1c528488349991 +Subproject commit a6671ce6c7086f856322fb3afa9ff41c99d76de5 diff --git a/externals/skia b/externals/skia index f4ed99d244..ee20d565ac 160000 --- a/externals/skia +++ b/externals/skia @@ -1 +1 @@ -Subproject commit f4ed99d2443962782cf5f8b4dd27179f131e7cbe +Subproject commit ee20d565acb08dece4a32e3f209cdd41119015ca diff --git a/packages/skia/scripts/build-skia.ts b/packages/skia/scripts/build-skia.ts index bacab8f648..8730203737 100644 --- a/packages/skia/scripts/build-skia.ts +++ b/packages/skia/scripts/build-skia.ts @@ -294,12 +294,6 @@ const buildXCFrameworks = () => { `sed -i '' 's/uint32(bindingInfo\\.binding)/uint32_t(bindingInfo.binding)/g' ${shaderModuleFile}` ); - // Remove partition_alloc line from dawn.gni - const dawnGniFile = `${SkiaSrc}/build_overrides/dawn.gni`; - $( - `sed -i '' '/dawn_partition_alloc_dir = "\\/\\/third_party\\/externals\\/partition_alloc"/d' ${dawnGniFile}` - ); - console.log("Patches applied successfully"); } $(`rm -rf ${PackageRoot}/libs`); diff --git a/packages/skia/scripts/skia-configuration.ts b/packages/skia/scripts/skia-configuration.ts index 6c719e8522..e0786ef0c4 100644 --- a/packages/skia/scripts/skia-configuration.ts +++ b/packages/skia/scripts/skia-configuration.ts @@ -7,6 +7,13 @@ const DEBUG = false; export const GRAPHITE = !!process.env.SK_GRAPHITE; export const MACCATALYST = !GRAPHITE; const BUILD_WITH_PARAGRAPH = true; +// Re-enable mutable SkPath methods (addPath, moveTo, lineTo, etc.) +// Skia is transitioning to immutable SkPath with SkPathBuilder +// Set to false once we migrate to SkPathBuilder +const ENABLE_SKPATH_EDIT_METHODS = true; +const PATH_EDIT_FLAG = ENABLE_SKPATH_EDIT_METHODS + ? "-USK_HIDE_PATH_EDIT_METHODS" + : ""; export const SkiaSrc = path.join(__dirname, "../../../externals/skia"); export const ProjectRoot = path.join(__dirname, "../../.."); @@ -85,7 +92,6 @@ export const commonArgs = [ //["skia_enable_ganesh", !GRAPHITE], ["skia_enable_graphite", GRAPHITE], ["skia_use_dawn", GRAPHITE], - ["skia_use_cpp20", GRAPHITE], ]; export type PlatformName = "apple" | "android"; @@ -120,7 +126,7 @@ const tvosTargets: { [key: string]: Target } = GRAPHITE args: [ [ "extra_cflags", - `["-target", "arm64-apple-tvos", "-mappletvos-version-min=${appleMinTarget}"]`, + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}, "-target", "arm64-apple-tvos", "-mappletvos-version-min=${appleMinTarget}"]`, ], [ "extra_asmflags", @@ -139,7 +145,7 @@ const tvosTargets: { [key: string]: Target } = GRAPHITE ["ios_use_simulator", true], [ "extra_cflags", - `["-target", "arm64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}, "-target", "arm64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, ], [ "extra_asmflags", @@ -158,15 +164,15 @@ const tvosTargets: { [key: string]: Target } = GRAPHITE ["ios_use_simulator", true], [ "extra_cflags", - `["-target", "arm64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}, "-target", "x86_64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, ], [ "extra_asmflags", - `["-target", "arm64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, + `["-target", "x86_64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, ], [ "extra_ldflags", - `["-target", "arm64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, + `["-target", "x86_64-apple-tvos-simulator", "-mappletvsimulator-version-min=${appleSimulatorMinTarget}"]`, ], ], }, @@ -184,7 +190,7 @@ const maccatalystTargets: { [key: string]: Target } = MACCATALYST ["target_cpu", `"arm64"`], [ "extra_cflags", - `["-target","arm64-apple-ios14.0-macabi",` + + `["-fexceptions","-frtti"${PATH_EDIT_FLAG ? `,"${PATH_EDIT_FLAG}"` : ""},"-target","arm64-apple-ios14.0-macabi",` + `"-isysroot","${appleSdkRoot}",` + `"-isystem","${appleSdkRoot}/System/iOSSupport/usr/include",` + `"-iframework","${appleSdkRoot}/System/iOSSupport/System/Library/Frameworks"]`, @@ -206,7 +212,7 @@ const maccatalystTargets: { [key: string]: Target } = MACCATALYST ["target_cpu", `"x64"`], [ "extra_cflags", - `["-target","x86_64-apple-ios14.0-macabi",` + + `["-fexceptions","-frtti"${PATH_EDIT_FLAG ? `,"${PATH_EDIT_FLAG}"` : ""},"-target","x86_64-apple-ios14.0-macabi",` + `"-isysroot","${appleSdkRoot}",` + `"-isystem","${appleSdkRoot}/System/iOSSupport/usr/include",` + `"-iframework","${appleSdkRoot}/System/iOSSupport/System/Library/Frameworks"]`, @@ -256,7 +262,7 @@ export const configurations = { ["cxx", '"clang++"'], [ "extra_cflags", - '["-DSKIA_C_DLL", "-DHAVE_SYSCALL_GETRANDOM", "-DXML_DEV_URANDOM"]', + `["-DSKIA_C_DLL", "-DHAVE_SYSCALL_GETRANDOM", "-DXML_DEV_URANDOM"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, ], ...ParagraphArgsAndroid, ], @@ -276,7 +282,13 @@ export const configurations = { "arm64-iphoneos": { cpu: "arm64", platform: "ios", - args: [["ios_min_target", `"${appleMinTarget}"`]], + args: [ + ["ios_min_target", `"${appleMinTarget}"`], + [ + "extra_cflags", + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, + ], + ], }, "arm64-iphonesimulator": { cpu: "arm64", @@ -284,12 +296,22 @@ export const configurations = { args: [ ["ios_min_target", `"${appleSimulatorMinTarget}"`], ["ios_use_simulator", true], + [ + "extra_cflags", + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, + ], ], }, "x64-iphonesimulator": { cpu: "x64", platform: "ios", - args: [["ios_min_target", `"${appleSimulatorMinTarget}"`]], + args: [ + ["ios_min_target", `"${appleSimulatorMinTarget}"`], + [ + "extra_cflags", + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, + ], + ], }, ...tvosTargets, ...maccatalystTargets, @@ -297,11 +319,23 @@ export const configurations = { platformGroup: "macosx", cpu: "arm64", platform: "mac", + args: [ + [ + "extra_cflags", + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, + ], + ], }, "x64-macosx": { platformGroup: "macosx", cpu: "x64", platform: "mac", + args: [ + [ + "extra_cflags", + `["-fexceptions", "-frtti"${PATH_EDIT_FLAG ? `, "${PATH_EDIT_FLAG}"` : ""}]`, + ], + ], }, }, args: [