123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LibUiFramework = void 0;
- const fs_extra_1 = require("fs-extra");
- const promises_1 = require("fs/promises");
- const path = require("path");
- const builder_util_1 = require("builder-util");
- const core_1 = require("../core");
- const appBuilder_1 = require("../util/appBuilder");
- 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, fs_extra_1.emptyDir)(options.appOutDir);
- const packager = options.packager;
- const platform = packager.platform;
- if (this.isUseLaunchUiForPlatform(platform)) {
- const appOutDir = options.appOutDir;
- await (0, builder_util_1.executeAppBuilder)([
- "proton-native",
- "--node-version",
- this.version,
- "--use-launch-ui",
- "--platform",
- platform.nodeName,
- "--arch",
- options.arch,
- "--stage",
- appOutDir,
- "--executable",
- `${packager.appInfo.productFilename}${platform === core_1.Platform.WINDOWS ? ".exe" : ""}`,
- ]);
- return;
- }
- if (platform === core_1.Platform.MAC) {
- await this.prepareMacosApplicationStageDirectory(packager, options);
- }
- else if (platform === core_1.Platform.LINUX) {
- await this.prepareLinuxApplicationStageDirectory(options);
- }
- }
- async prepareMacosApplicationStageDirectory(packager, options) {
- const appContentsDir = path.join(options.appOutDir, this.distMacOsAppName, "Contents");
- await (0, promises_1.mkdir)(path.join(appContentsDir, "Resources"), { recursive: true });
- await (0, promises_1.mkdir)(path.join(appContentsDir, "MacOS"), { recursive: true });
- await (0, builder_util_1.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_1.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, builder_util_1.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, promises_1.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_1.Platform.WINDOWS || (this.isUseLaunchUi && platform === core_1.Platform.LINUX);
- }
- getExcludedDependencies(platform) {
- // part of launchui
- return this.isUseLaunchUiForPlatform(platform) ? ["libui-node"] : null;
- }
- }
- exports.LibUiFramework = LibUiFramework;
- async function writeExecutableMain(file, content) {
- await (0, promises_1.writeFile)(file, content, { mode: 0o755 });
- await (0, promises_1.chmod)(file, 0o755);
- }
- //# sourceMappingURL=LibUiFramework.js.map
|