Skip to content

Commit

Permalink
Android Build Types - Added new settings via khafile.js file
Browse files Browse the repository at this point in the history
Added settings for file build.gradle:
- compileSdkVersion;
- minSdkVersion;
- targetSdkVersion;
- abiFilters.
  • Loading branch information
e1e5en-gd committed Oct 15, 2020
1 parent a18ad26 commit d5c5a9a
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 34 deletions.
6 changes: 3 additions & 3 deletions Data/android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 29
compileSdkVersion {compileSdkVersion}
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "{package}"
minSdkVersion 14
targetSdkVersion 29
minSdkVersion {minSdkVersion}
targetSdkVersion {targetSdkVersion}
versionCode {versionCode}
versionName "{versionName}"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Expand Down
64 changes: 43 additions & 21 deletions out/Exporters/AndroidExporter.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 35 additions & 10 deletions src/Exporters/AndroidExporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ interface TargetOptions {
installLocation: string;
versionCode: number;
versionName: string;
compileSdkVersion: number;
minSdkVersion: number;
targetSdkVersion: number;
screenOrientation: string;
permissions: string[];
disableStickyImmersiveMode: boolean;
Expand All @@ -21,6 +24,7 @@ interface TargetOptions {
buildGradlePath: string;
globalBuildGradlePath: string;
proguardRulesPath: string;
abiFilters: string[];
}

export class AndroidExporter extends Exporter {
Expand All @@ -40,14 +44,18 @@ export class AndroidExporter extends Exporter {
installLocation: 'internalOnly',
versionCode: 1,
versionName: '1.0',
compileSdkVersion: 29,
minSdkVersion: 14,
targetSdkVersion: 29,
screenOrientation: 'sensor',
permissions: new Array<string>(),
disableStickyImmersiveMode: false,
metadata: new Array<string>(),
customFilesPath: null,
buildGradlePath: path.join(indir, 'app', 'build.gradle'),
globalBuildGradlePath: path.join(indir, 'build.gradle'),
proguardRulesPath: path.join(indir, 'app', 'proguard-rules.pro')
proguardRulesPath: path.join(indir, 'app', 'proguard-rules.pro'),
abiFilters: new Array<string>()
};

if (project.targetOptions != null && project.targetOptions.android != null) {
Expand Down Expand Up @@ -128,17 +136,34 @@ export class AndroidExporter extends Exporter {
gradle = gradle.replace(/{package}/g, targetOptions.package);
gradle = gradle.replace(/{versionCode}/g, targetOptions.versionCode.toString());
gradle = gradle.replace(/{versionName}/g, targetOptions.versionName);
gradle = gradle.replace(/{compileSdkVersion}/g, targetOptions.compileSdkVersion.toString());
gradle = gradle.replace(/{minSdkVersion}/g, targetOptions.minSdkVersion.toString());
gradle = gradle.replace(/{targetSdkVersion}/g, targetOptions.targetSdkVersion.toString());
let arch = '';
switch (Options.architecture) {
case Architecture.Default: arch = ''; break;
case Architecture.Arm7: arch = 'armeabi-v7a'; break;
case Architecture.Arm8: arch = 'arm64-v8a'; break;
case Architecture.X86: arch = 'x86'; break;
case Architecture.X86_64: arch = 'x86_64'; break;
default: throw 'Unknown architecture ' + Options.architecture;
if (targetOptions.abiFilters.length > 0) {
arch = '';
for (let item of targetOptions.abiFilters) {
if (arch.length == 0) {
arch = '"'+ item +'"';
}
else {
arch = arch +', "'+ item +'"';
}
}
arch = `ndk { abiFilters ${arch} }`;
}
if (Options.architecture !== Architecture.Default) {
arch = `ndk {abiFilters '${arch}'}`;
else {
switch (Options.architecture) {
case Architecture.Default: arch = ''; break;
case Architecture.Arm7: arch = 'armeabi-v7a'; break;
case Architecture.Arm8: arch = 'arm64-v8a'; break;
case Architecture.X86: arch = 'x86'; break;
case Architecture.X86_64: arch = 'x86_64'; break;
default: throw 'Unknown architecture ' + Options.architecture;
}
if (Options.architecture !== Architecture.Default) {
arch = `ndk {abiFilters '${arch}'}`;
}
}
gradle = gradle.replace(/{architecture}/g, arch);
gradle = gradle.replace(/{cflags}/g, cflags);
Expand Down

0 comments on commit d5c5a9a

Please sign in to comment.