Skip to content

Commit 9226246

Browse files
committed
feat: implemented --gradle option to pass gradle parameters
# Conflicts: # lib/commands/plugin/build-plugin.ts # lib/data/build-data.ts # lib/declarations.d.ts # lib/definitions/android-plugin-migrator.d.ts # lib/definitions/build.d.ts # lib/options.ts # lib/services/android-plugin-build-service.ts # lib/services/android-project-service.ts
1 parent 42d1487 commit 9226246

9 files changed

+27
-1
lines changed

lib/commands/plugin/build-plugin.ts

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export class BuildPluginCommand implements ICommand {
5252
);
5353

5454
const options: IPluginBuildOptions = {
55+
gradleArgs: this.$options.gradle,
5556
aarOutputDir: platformsAndroidPath,
5657
platformsAndroidDirPath: platformsAndroidPath,
5758
pluginName: pluginName,

lib/data/build-data.ts

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export class AndroidBuildData extends BuildData {
4747
public keyStoreAliasPassword: string;
4848
public keyStorePassword: string;
4949
public androidBundle: boolean;
50+
public gradleArgs: string;
5051

5152
constructor(projectDir: string, platform: string, data: any) {
5253
super(projectDir, platform, data);
@@ -56,5 +57,6 @@ export class AndroidBuildData extends BuildData {
5657
this.keyStoreAliasPassword = data.keyStoreAliasPassword;
5758
this.keyStorePassword = data.keyStorePassword;
5859
this.androidBundle = data.androidBundle || data.aab;
60+
this.gradleArgs = data.gradle;
5961
}
6062
}

lib/declarations.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,10 @@ interface IAndroidBundleOptions {
579579
aab: boolean;
580580
}
581581

582+
interface IAndroidOptions {
583+
gradle: string;
584+
}
585+
582586
interface ITypingsOptions {
583587
jar: string;
584588
aar: string;
@@ -598,6 +602,7 @@ interface IOptions
598602
IClean,
599603
IProvision,
600604
ITeamIdentifier,
605+
IAndroidOptions,
601606
IAndroidReleaseOptions,
602607
IAndroidBundleOptions,
603608
INpmInstallConfigurationOptions,

lib/definitions/android-plugin-migrator.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ interface IAndroidBuildOptions {
1010
pluginName: string;
1111
aarOutputDir: string;
1212
tempPluginDirPath: string;
13+
gradleArgs?: string;
1314
}
1415

1516
interface IAndroidPluginBuildService {
@@ -37,4 +38,10 @@ interface IBuildAndroidPluginData extends Partial<IProjectDir> {
3738
* Information about tools that will be used to build the plugin, for example compile SDK version, build tools version, etc.
3839
*/
3940
androidToolsInfo?: IAndroidToolsInfoData;
41+
42+
/**
43+
* Optional custom Gradle arguments.
44+
*/
45+
gradleArgs?: string,
46+
4047
}

lib/definitions/build.d.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ interface IiOSBuildData extends IBuildData {
2929
interface IAndroidBuildData
3030
extends IBuildData,
3131
IAndroidSigningData,
32-
IHasAndroidBundle {}
32+
IHasAndroidBundle {
33+
gradleArgs?: string;
34+
}
3335

3436
interface IAndroidSigningData {
3537
keyStoreAlias: string;

lib/options.ts

+1
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ export class Options {
215215
default: false,
216216
hasSensitiveValue: false,
217217
},
218+
gradle: { type: OptionType.String, hasSensitiveValue: false },
218219
aab: { type: OptionType.Boolean, hasSensitiveValue: false },
219220
performance: { type: OptionType.Object, hasSensitiveValue: true },
220221
appleApplicationSpecificPassword: {

lib/services/android-plugin-build-service.ts

+4
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
260260
options.projectDir
261261
);
262262
await this.buildPlugin({
263+
gradleArgs: options.gradleArgs,
263264
pluginDir: pluginTempDir,
264265
pluginName: options.pluginName,
265266
projectDir: options.projectDir,
@@ -724,6 +725,9 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
724725
`-PcompileSdk=android-${pluginBuildSettings.androidToolsInfo.compileSdkVersion}`,
725726
`-PbuildToolsVersion=${pluginBuildSettings.androidToolsInfo.buildToolsVersion}`,
726727
];
728+
if (pluginBuildSettings.gradleArgs) {
729+
localArgs.push(pluginBuildSettings.gradleArgs)
730+
}
727731

728732
if (this.$logger.getLevel() === "INFO") {
729733
localArgs.push("--quiet");

lib/services/android-project-service.ts

+1
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
603603
);
604604
if (this.$fs.exists(pluginPlatformsFolderPath)) {
605605
const options: IPluginBuildOptions = {
606+
gradleArgs: this.$options.gradle,
606607
projectDir: projectData.projectDir,
607608
pluginName: pluginData.name,
608609
platformsAndroidDirPath: pluginPlatformsFolderPath,

lib/services/android/gradle-build-args-service.ts

+3
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ export class GradleBuildArgsService implements IGradleBuildArgsService {
6464
`-PappPath=${this.$projectData.getAppDirectoryPath()}`,
6565
`-PappResourcesPath=${this.$projectData.getAppResourcesDirectoryPath()}`
6666
);
67+
if (buildData.gradleArgs) {
68+
args.push(buildData.gradleArgs);
69+
}
6770

6871
if (buildData.release) {
6972
args.push(

0 commit comments

Comments
 (0)