trtc-electron-sdk
Version:
trtc electron sdk
83 lines (76 loc) • 2.87 kB
JavaScript
const path = require("path");
const fs = require("fs");
const { removeSync, copySync } = require("fs-extra");
const signale = require('signale');
// npm run copy:sdk
const SDK_ROOT = path.resolve(__dirname, "../../");
const SDK_CPP_PATH = path.join(SDK_ROOT, "trtc-electron-cpp");
const SDK_JS_PATH = path.join(SDK_ROOT, "trtc-electron-sdk");
const sourceNodeFilePath = path.resolve(SDK_CPP_PATH, "build/Release/trtc_electron_sdk.node");
const targetNodeFilePath = path.resolve(SDK_JS_PATH, "build/Release/trtc_electron_sdk.node");
try {
fs.accessSync(sourceNodeFilePath)
} catch(err) {
signale.warn("No trtc_electron_sdk.node file, don't need to copy.");
return;
}
removeSync(path.join(SDK_JS_PATH, "build"));
copySync(sourceNodeFilePath, targetNodeFilePath);
if (process.platform === "win32") {
let dllPrefix = "";
if (process.arch === "x64") {
dllPrefix = "Win64";
} else {
dllPrefix = "Win32";
}
copySync(
path.resolve(SDK_CPP_PATH, `src/remote-liteav/sdk/win/${dllPrefix}/lib/`),
path.resolve(SDK_JS_PATH, "build/Release/")
);
copySync(
path.resolve(SDK_CPP_PATH, `src/remote-liteav/sdk/remote_liteav/${dllPrefix}/`),
path.resolve(SDK_JS_PATH, "build/Release/")
);
copySync(
path.resolve(SDK_CPP_PATH, "build/Release/trtc_electron_sdk.pdb"),
path.resolve(SDK_JS_PATH, "build/Release/trtc_electron_sdk.pdb")
);
} else if (process.platform === 'darwin') {
copySync(
path.resolve(SDK_CPP_PATH, "build/Release/trtc_electron_sdk.node"),
path.resolve(SDK_JS_PATH, `build/Release/${process.arch}/trtc_electron_sdk.node`)
);
copySync(
path.resolve(SDK_CPP_PATH, "build/Release/trtc_electron_sdk.node.dSYM"),
path.resolve(SDK_JS_PATH, "build/Release/trtc_electron_sdk.node.dSYM")
);
copySync(
path.resolve(SDK_CPP_PATH, `src/remote-liteav/sdk/mac/Frameworks/${process.arch}/TXFFmpeg.framework`),
path.resolve(SDK_JS_PATH, `build/mac-framework/${process.arch}/TXFFmpeg.framework`)
);
copySync(
path.resolve(SDK_CPP_PATH, `src/remote-liteav/sdk/mac/Frameworks/${process.arch}/TXSoundTouch.framework`),
path.resolve(SDK_JS_PATH, `build/mac-framework/${process.arch}/TXSoundTouch.framework`)
);
} else {
// linux
let soPrefix = ""
if (process.arch === 'x64') {
soPrefix = "x86_64";
} else {
soPrefix = "arm64";
}
copySync(
path.resolve(SDK_CPP_PATH, 'build/Release/trtc_electron_sdk.node'),
path.resolve(SDK_JS_PATH, `build/Release/${process.arch}/trtc_electron_sdk.node`)
);
copySync(
path.resolve(SDK_CPP_PATH, `src/linux/libs/${soPrefix}/`),
path.resolve(SDK_JS_PATH, 'build/Release/')
);
copySync(
path.resolve(SDK_CPP_PATH, `src/linux/libs/${soPrefix}/`),
path.resolve(SDK_JS_PATH, `build/Release/${process.arch}/`)
);
}
signale.log("CopySDKManual.doCopy: 复制结束");