Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
AndroidBuildCommon.cs
1using System.Linq;
2using Nuke.Common;
3using Nuke.Common.IO;
4using Nuke.Common.Utilities.Collections;
5
7
8public static class AndroidBuildCommon
9{
10 public static string GetAppNameFromConfig(this IUnrealBuild build)
11 {
12 var packageNameCommands = build.ReadIniHierarchy("Engine")
13 ?["/Script/AndroidRuntimeSettings.AndroidRuntimeSettings"]
14 ?["PackageName"];
15
16 return packageNameCommands?.IsEmpty() ?? true
17 ? $"com.acme.{build.ProjectName}"
18 : packageNameCommands.First().Value;
19 }
20
21 public static bool IsAndroidPlatform(this IUnrealBuild build)
22 => build.Platform == UnrealPlatform.Android;
23
24 public static string GetApkName(this IUnrealBuild build)
25 {
26 var androidBuild = (IAndroidBuildTargets) build;
27 return build.Config[0] == UnrealConfig.Development
28 ? $"{build.ProjectName}-{androidBuild.Cpu.ToString().ToLower()}"
29 : $"{build.ProjectName}-Android-{build.Config[0]}-{androidBuild.Cpu.ToString().ToLower()}";
30 }
31
32 public static string GetAppName(this IUnrealBuild build)
33 {
34 var androidBuild = (IAndroidBuildTargets) build;
35 return androidBuild.AppName;
36 }
37
38 public static AbsolutePath GetApkFile(this IUnrealBuild build)
39 {
40 return build.ProjectFolder / "Binaries" / "Android" / (build.GetApkName() + ".apk");
41 }
42
43 public static AndroidSdk GetAndroidSdk(this IUnrealBuild build)
44 {
45 var sdk = build.Platform.GetSdk() as AndroidSdk;
46 Assert.True(sdk?.IsValid(build) ?? false, "Android SDK management was unavailable.");
47 return sdk!;
48 }
49}
Base class for managing Android SDK on any host platform.
Definition AndroidSdk.cs:35
High level representation of common platforms supported by Unreal Engine (NDA ones excluded) and extr...
Base interface for build components which require an UnrealBuild main class.
UnrealPlatform Platform
ConfigIni ReadIniHierarchy(string shortName, IniHierarchyLevel lowestLevel=IniHierarchyLevel.Base, IniHierarchyLevel highestLevel=IniHierarchyLevel.Saved, bool considerPlugins=true, IEnumerable< string >? extraConfigSubfolder=null)
Read INI configuration emulating the same hierarchy of importance as Unreal Engine also does.
Build component for common tasks related to building an Android app.