From e00115900a1b8cb1f8864bcd1a65566faffcb129 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Mon, 1 Jan 2024 16:24:49 +0100 Subject: [PATCH] =?UTF-8?q?Revert=20"=E2=AC=86=EF=B8=8F=20m121"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 2 +- docs/static/img/paragraph/boundingbox-ios.png | Bin 25781 -> 0 bytes externals/skia | 2 +- .../paragraph/paragraph-bounding-box-ios.png | Bin 24576 -> 27392 bytes package/src/__tests__/snapshots/svg/text.png | Bin 10182 -> 0 bytes .../src/renderer/__tests__/e2e/SVG.spec.tsx | 21 +------- scripts/build-libgrapheme-ios.ts | 48 ++++++++++++++++++ scripts/build-skia-ios.ts | 4 +- scripts/build-skia.ts | 14 ++--- scripts/skia-configuration.ts | 10 ++++ 10 files changed, 70 insertions(+), 31 deletions(-) delete mode 100644 docs/static/img/paragraph/boundingbox-ios.png delete mode 100644 package/src/__tests__/snapshots/svg/text.png create mode 100644 scripts/build-libgrapheme-ios.ts diff --git a/.gitmodules b/.gitmodules index 53aed4f760..7fd7bd83d8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "externals/skia"] path = externals/skia url = https://chromium.googlesource.com/skia/ - branch = chrome/m121 + branch = chrome/m119 [submodule "externals/depot_tools"] path = externals/depot_tools url = https://chromium.googlesource.com/chromium/tools/depot_tools.git diff --git a/docs/static/img/paragraph/boundingbox-ios.png b/docs/static/img/paragraph/boundingbox-ios.png deleted file mode 100644 index 9d970dc3f9e28bbbd0129f94ec772b99edd2b443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25781 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 hE%5)N1T?}`f2C`fn1 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ΞEFkG4$n`2>x~F~$ME<&r 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 EACMj{wg3PC diff --git a/package/src/__tests__/snapshots/svg/text.png b/package/src/__tests__/snapshots/svg/text.png deleted file mode 100644 index 70383cf077c47c8314c11a4b587f028dc5949b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10182 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 diff --git a/package/src/renderer/__tests__/e2e/SVG.spec.tsx b/package/src/renderer/__tests__/e2e/SVG.spec.tsx index 94f70c47fb..9fb174b5d9 100644 --- a/package/src/renderer/__tests__/e2e/SVG.spec.tsx +++ b/package/src/renderer/__tests__/e2e/SVG.spec.tsx @@ -55,15 +55,6 @@ const tiger = new SVGAsset( 800 ); -// const text = new SVGAsset( -// ` -// -// My Text -// `, -// 290, -// 500 -// ); - const svgWithoutSize = { __typename__: "SVG" as const, width() { @@ -75,7 +66,7 @@ const svgWithoutSize = { dispose() {}, source() { return ` - + `; }, }; @@ -204,14 +195,4 @@ describe("Displays SVGs", () => { ); checkImage(image, docPath("opacity-tiger.png")); }); - - // itRunsE2eOnly("can render text", async () => { - // const image = await surface.draw( - // <> - // - // - // - // ); - // checkImage(image, "snapshots/svg/text.png"); - // }); }); diff --git a/scripts/build-libgrapheme-ios.ts b/scripts/build-libgrapheme-ios.ts new file mode 100644 index 0000000000..7d21e64457 --- /dev/null +++ b/scripts/build-libgrapheme-ios.ts @@ -0,0 +1,48 @@ +import os from "os"; +import fs from "fs"; +import { executeCmdSync } from "./utils"; + +// Build instructions for building build-libgrapheme-ios +export const buildLibGraphemeiOS = async () => { + // Empty the generate_headers.py file + console.log("Patching the Skia buildscript 'generate_headers.py'..."); + const file = fs.openSync( + "./third_party/libgrapheme/generate_headers.py", + "w" + ); + fs.writeSync( + file, + "print('[generate_headers.py] This file has been patched by the RN Skia build script.')" + ); + fs.closeSync(file); + console.log("Finished patching generate_headers.py."); + + console.log("Building libgrapheme for iOS..."); + + // Change to the third_party/libgrapheme directory + const currentDir = process.cwd(); + try { + process.chdir("./third_party/externals/libgrapheme"); + // Check if the output has been created - if so skip the build + if (!fs.existsSync("./gen/case.o")) { + // Run configure + console.log("Configuring libgrapheme..."); + executeCmdSync("./configure"); + // Up the file handle limit on mac: + if (os.platform() === "darwin") { + console.log( + "Extending file handle count on Mac to avoid `Too many open files` error..." + ); + executeCmdSync("ulimit -n 4096"); + } + // Run make + console.log("Building libgrapheme..."); + executeCmdSync("make"); + console.log("libgrapheme successfully built."); + } else { + console.log("Skipping configuring libgrapheme as it is already built."); + } + } finally { + process.chdir(currentDir); + } +}; diff --git a/scripts/build-skia-ios.ts b/scripts/build-skia-ios.ts index 8d12620676..20bab85771 100644 --- a/scripts/build-skia-ios.ts +++ b/scripts/build-skia-ios.ts @@ -1,8 +1,9 @@ import { configurations } from "./skia-configuration"; -import { executeCmd, executeCmdSync } from "./utils"; +import { executeCmd } from "./utils"; const configuration = configurations.ios; +console.log("Building skia for iOS..."); let command = ""; Object.keys(configuration.targets).forEach((targetKey) => { @@ -11,7 +12,6 @@ Object.keys(configuration.targets).forEach((targetKey) => { `yarn ts-node ./scripts/build-skia.ts ios ${targetKey}`; }); -console.log("Building skia for iOS..."); executeCmd(command, "iOS", () => { console.log(`Done building skia for iOS.`); }); diff --git a/scripts/build-skia.ts b/scripts/build-skia.ts index 5074a14af7..c5a3a72216 100644 --- a/scripts/build-skia.ts +++ b/scripts/build-skia.ts @@ -1,7 +1,6 @@ import { executeCmd, executeCmdSync } from "./utils"; import { exit } from "process"; import { commonArgs, configurations, PlatformName } from "./skia-configuration"; - const fs = require("fs"); const typedKeys = (obj: T) => Object.keys(obj) as (keyof T)[]; @@ -190,12 +189,13 @@ try { executeCmdSync("PATH=../depot_tools/:$PATH python3 tools/git-sync-deps"); console.log("gclient sync done"); - - // Generate libgrapheme headers - if (SelectedPlatform === "ios") { - console.log("Generating libgrapheme headers..."); - const libgraphemeDir = `./third_party/externals/libgrapheme`; - executeCmdSync(`cd ${libgraphemeDir} && ./configure && make clean && make`); + // lets check for any dependencies + if (platform.dependencies) { + console.log(`Found dependencies for platform ${SelectedPlatform}`); + platform.dependencies.forEach((dep) => { + console.log(`Running dependency ${dep.name}`); + dep.executable(); + }); } try { diff --git a/scripts/skia-configuration.ts b/scripts/skia-configuration.ts index 8cd2d9acfa..f00e7bd5c5 100644 --- a/scripts/skia-configuration.ts +++ b/scripts/skia-configuration.ts @@ -1,3 +1,6 @@ +import { buildLibGraphemeiOS } from "./build-libgrapheme-ios"; +import { executeCmdSync } from "./utils"; + const NdkDir: string = process.env.ANDROID_NDK ?? ""; export const BUILD_WITH_PARAGRAPH = true; @@ -70,6 +73,7 @@ export type Platform = { outputRoot: string; outputNames: string[]; options?: Arg[]; + dependencies?: { name: string; executable: () => void }[]; }; export const configurations: Configuration = { @@ -160,5 +164,11 @@ export const configurations: Configuration = { "libsksg.a", ...ParagraphOutputs, ], + dependencies: [ + { + name: "libgrapheme", + executable: buildLibGraphemeiOS, + }, + ], }, };