diff --git a/packages/app-builder-lib/src/core.ts b/packages/app-builder-lib/src/core.ts index ec87be77b23..354c832dbfe 100644 --- a/packages/app-builder-lib/src/core.ts +++ b/packages/app-builder-lib/src/core.ts @@ -21,6 +21,7 @@ export interface TargetConfiguration { export class Platform { static MAC = new Platform("mac", "mac", "darwin") static LINUX = new Platform("linux", "linux", "linux") + static FREEBSD = new Platform("freebsd", "freebsd", "freebsd") static WINDOWS = new Platform("windows", "win", "win32") constructor( @@ -65,6 +66,9 @@ export class Platform { case Platform.LINUX.nodeName: return Platform.LINUX + case Platform.FREEBSD.nodeName: + return Platform.FREEBSD + default: throw new Error(`Unknown platform: ${name}`) } diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index d77cb37eca0..bf11526d2e7 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -248,6 +248,9 @@ export class Packager { if (options.linux != null) { processTargets(Platform.LINUX, options.linux) } + if (options.freebsd != null) { + processTargets(Platform.FREEBSD, options.freebsd) + } if (options.win != null) { processTargets(Platform.WINDOWS, options.win) } diff --git a/packages/app-builder-lib/src/packagerApi.ts b/packages/app-builder-lib/src/packagerApi.ts index 28a490c146a..97af90cef59 100644 --- a/packages/app-builder-lib/src/packagerApi.ts +++ b/packages/app-builder-lib/src/packagerApi.ts @@ -11,6 +11,7 @@ export interface PackagerOptions { mac?: Array linux?: Array + freebsd?: Array win?: Array projectDir?: string | null diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index 702501ebd41..80a1b93fb4c 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -86,6 +86,10 @@ export function normalizeOptions(args: CliOptions): BuildOptions { processTargets(Platform.LINUX, args.linux) } + if (args.freebsd != null) { + processTargets(Platform.FREEBSD, args.freebsd) + } + if (args.win != null) { processTargets(Platform.WINDOWS, args.win) } @@ -100,6 +104,7 @@ export function normalizeOptions(args: CliOptions): BuildOptions { delete result.dir delete result.mac delete result.linux + delete result.freebsd delete result.win const r = result @@ -231,6 +236,12 @@ export function configureBuildCommand(yargs: yargs.Argv): yargs.Argv { description: `Build for Linux, accepts target list (see ${chalk.underline("https://goo.gl/4vwQad")})`, type: "array", }) + .option("freebsd", { + group: buildGroup, + alias: "l", + description: `Build for FreeBSD, accepts target list (see ${chalk.underline("https://goo.gl/4vwQad")})`, + type: "array", + }) .option("win", { group: buildGroup, alias: ["w", "windows"], diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index 89deb1e89c7..2a0c317bbb8 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -21,7 +21,7 @@ export function configureInstallAppDepsCommand(yargs: yargs.Argv): yargs.Argv { "camel-case-expansion": false, }) .option("platform", { - choices: ["linux", "darwin", "win32"], + choices: ["linux", "darwin", "win32", "freebsd"], default: process.platform, description: "The target platform", })