|
4 | 4 | const path = require("path"); |
5 | 5 | const fs = require("fs"); |
6 | 6 |
|
7 | | -const useGraphite = |
8 | | - process.env.SK_GRAPHITE === "1" || |
9 | | - (process.env.SK_GRAPHITE || "").toLowerCase() === "true"; |
10 | | -const prefix = useGraphite ? "react-native-skia-graphite" : "react-native-skia"; |
| 7 | +const useGraphite = true; |
| 8 | +const prefix = "react-native-skia-graphite"; |
11 | 9 | const libsDir = path.join(__dirname, "..", "libs"); |
| 10 | +const packageRoot = path.join(__dirname, ".."); |
12 | 11 |
|
13 | 12 | function copySync(src, dest, options) { |
14 | 13 | if (!src.includes("*")) { |
@@ -131,3 +130,44 @@ fs.rmSync(androidDest, { recursive: true, force: true }); |
131 | 130 | copySync(androidSrcLibs, androidDest, { recursive: true }); |
132 | 131 |
|
133 | 132 | console.log("-- Copied Android libs to libs/android/"); |
| 133 | + |
| 134 | +// --- Graphite: headers and marker file --- |
| 135 | + |
| 136 | +if (useGraphite) { |
| 137 | + // Copy Dawn/WebGPU headers from the headers package |
| 138 | + let headersPackage; |
| 139 | + try { |
| 140 | + headersPackage = path.dirname( |
| 141 | + require.resolve("react-native-skia-graphite-headers/package.json") |
| 142 | + ); |
| 143 | + } catch (e) { |
| 144 | + console.error("ERROR: Could not find react-native-skia-graphite-headers"); |
| 145 | + console.error("Make sure you have run yarn install or npm install"); |
| 146 | + process.exit(1); |
| 147 | + } |
| 148 | + |
| 149 | + console.log("-- Skia Graphite headers package: " + headersPackage); |
| 150 | + |
| 151 | + const headersSrcBase = path.join(headersPackage, "libs/skia/cpp"); |
| 152 | + |
| 153 | + // Copy Dawn/WebGPU headers |
| 154 | + const dawnSrc = path.join(headersSrcBase, "dawn"); |
| 155 | + const dawnDest = path.join(packageRoot, "cpp/dawn"); |
| 156 | + fs.rmSync(dawnDest, { recursive: true, force: true }); |
| 157 | + fs.cpSync(dawnSrc, dawnDest, { recursive: true }); |
| 158 | + console.log("-- Copied Dawn/WebGPU headers to cpp/dawn/"); |
| 159 | + |
| 160 | + // Copy Graphite source headers |
| 161 | + const graphiteSrc = path.join(headersSrcBase, "skia/src/gpu/graphite"); |
| 162 | + const graphiteDest = path.join(packageRoot, "cpp/skia/src/gpu/graphite"); |
| 163 | + fs.rmSync(graphiteDest, { recursive: true, force: true }); |
| 164 | + fs.mkdirSync(graphiteDest, { recursive: true }); |
| 165 | + fs.cpSync(graphiteSrc, graphiteDest, { recursive: true }); |
| 166 | + console.log("-- Copied Graphite source headers to cpp/skia/src/gpu/graphite/"); |
| 167 | + |
| 168 | + // Write .graphite marker file |
| 169 | + const markerFile = path.join(libsDir, ".graphite"); |
| 170 | + const version = "m147a"; |
| 171 | + fs.writeFileSync(markerFile, version, "utf-8"); |
| 172 | + console.log("-- Wrote Graphite marker file: " + markerFile); |
| 173 | +} |
0 commit comments