156 lines
5.6 KiB
JavaScript
156 lines
5.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.LibUiFramework = void 0;
|
|
|
|
function _fsExtra() {
|
|
const data = require("fs-extra");
|
|
|
|
_fsExtra = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
var path = _interopRequireWildcard(require("path"));
|
|
|
|
function _builderUtil() {
|
|
const data = require("builder-util");
|
|
|
|
_builderUtil = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _core() {
|
|
const data = require("../core");
|
|
|
|
_core = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _appBuilder() {
|
|
const data = require("../util/appBuilder");
|
|
|
|
_appBuilder = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
|
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
|
|
class LibUiFramework {
|
|
constructor(version, distMacOsAppName, isUseLaunchUi) {
|
|
this.version = version;
|
|
this.distMacOsAppName = distMacOsAppName;
|
|
this.isUseLaunchUi = isUseLaunchUi;
|
|
this.name = "libui"; // noinspection JSUnusedGlobalSymbols
|
|
|
|
this.macOsDefaultTargets = ["dmg"];
|
|
this.defaultAppIdPrefix = "com.libui."; // noinspection JSUnusedGlobalSymbols
|
|
|
|
this.isCopyElevateHelper = false; // noinspection JSUnusedGlobalSymbols
|
|
|
|
this.isNpmRebuildRequired = false;
|
|
}
|
|
|
|
async prepareApplicationStageDirectory(options) {
|
|
await (0, _fsExtra().emptyDir)(options.appOutDir);
|
|
const packager = options.packager;
|
|
const platform = packager.platform;
|
|
|
|
if (this.isUseLaunchUiForPlatform(platform)) {
|
|
const appOutDir = options.appOutDir;
|
|
await (0, _builderUtil().executeAppBuilder)(["proton-native", "--node-version", this.version, "--use-launch-ui", "--platform", platform.nodeName, "--arch", options.arch, "--stage", appOutDir, "--executable", `${packager.appInfo.productFilename}${platform === _core().Platform.WINDOWS ? ".exe" : ""}`]);
|
|
return;
|
|
}
|
|
|
|
if (platform === _core().Platform.MAC) {
|
|
await this.prepareMacosApplicationStageDirectory(packager, options);
|
|
} else if (platform === _core().Platform.LINUX) {
|
|
await this.prepareLinuxApplicationStageDirectory(options);
|
|
}
|
|
}
|
|
|
|
async prepareMacosApplicationStageDirectory(packager, options) {
|
|
const appContentsDir = path.join(options.appOutDir, this.distMacOsAppName, "Contents");
|
|
await (0, _fsExtra().ensureDir)(path.join(appContentsDir, "Resources"));
|
|
await (0, _fsExtra().ensureDir)(path.join(appContentsDir, "MacOS"));
|
|
await (0, _builderUtil().executeAppBuilder)(["proton-native", "--node-version", this.version, "--platform", "darwin", "--stage", path.join(appContentsDir, "MacOS")]);
|
|
const appPlist = {
|
|
// https://github.com/albe-rosado/create-proton-app/issues/13
|
|
NSHighResolutionCapable: true
|
|
};
|
|
await packager.applyCommonInfo(appPlist, appContentsDir);
|
|
await Promise.all([(0, _appBuilder().executeAppBuilderAndWriteJson)(["encode-plist"], {
|
|
[path.join(appContentsDir, "Info.plist")]: appPlist
|
|
}), writeExecutableMain(path.join(appContentsDir, "MacOS", appPlist.CFBundleExecutable), `#!/bin/sh
|
|
DIR=$(dirname "$0")
|
|
"$DIR/node" "$DIR/../Resources/app/${options.packager.info.metadata.main || "index.js"}"
|
|
`)]);
|
|
}
|
|
|
|
async prepareLinuxApplicationStageDirectory(options) {
|
|
const appOutDir = options.appOutDir;
|
|
await (0, _builderUtil().executeAppBuilder)(["proton-native", "--node-version", this.version, "--platform", "linux", "--arch", options.arch, "--stage", appOutDir]);
|
|
const mainPath = path.join(appOutDir, options.packager.executableName);
|
|
await writeExecutableMain(mainPath, `#!/bin/sh
|
|
DIR=$(dirname "$0")
|
|
"$DIR/node" "$DIR/app/${options.packager.info.metadata.main || "index.js"}"
|
|
`);
|
|
}
|
|
|
|
async afterPack(context) {
|
|
const packager = context.packager;
|
|
|
|
if (!this.isUseLaunchUiForPlatform(packager.platform)) {
|
|
return;
|
|
} // LaunchUI requires main.js, rename if need
|
|
|
|
|
|
const userMain = packager.info.metadata.main || "index.js";
|
|
|
|
if (userMain === "main.js") {
|
|
return;
|
|
}
|
|
|
|
await (0, _fsExtra().rename)(path.join(context.appOutDir, "app", userMain), path.join(context.appOutDir, "app", "main.js"));
|
|
}
|
|
|
|
getMainFile(platform) {
|
|
return this.isUseLaunchUiForPlatform(platform) ? "main.js" : null;
|
|
}
|
|
|
|
isUseLaunchUiForPlatform(platform) {
|
|
return platform === _core().Platform.WINDOWS || this.isUseLaunchUi && platform === _core().Platform.LINUX;
|
|
}
|
|
|
|
getExcludedDependencies(platform) {
|
|
// part of launchui
|
|
return this.isUseLaunchUiForPlatform(platform) ? ["libui-node"] : null;
|
|
}
|
|
|
|
}
|
|
|
|
exports.LibUiFramework = LibUiFramework;
|
|
|
|
async function writeExecutableMain(file, content) {
|
|
await (0, _fsExtra().writeFile)(file, content, {
|
|
mode: 0o755
|
|
});
|
|
await (0, _fsExtra().chmod)(file, 0o755);
|
|
}
|
|
// __ts-babel@6.0.4
|
|
//# sourceMappingURL=LibUiFramework.js.map
|