Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
Nuke.Unreal.IUnrealBuild Interface Reference

Base interface for build components which require an UnrealBuild main class. More...

Inheritance diagram for Nuke.Unreal.IUnrealBuild:
Nuke.Unreal.IPackageTargets Nuke.Unreal.Platforms.Android.IAndroidBuildTargets Nuke.Unreal.Platforms.Android.IAndroidDeployTargets Nuke.Unreal.UnrealBuild Nuke.Unreal.UnrealBuild Nuke.Unreal.UnrealBuild Nuke.Unreal.UnrealBuild Nuke.Unreal.UnrealBuildTest Nuke.Unreal.UnrealBuildTest Nuke.Unreal.UnrealBuildTest Nuke.Unreal.UnrealBuildTest

Public Member Functions

AbsolutePath GetOutput ()
 Get an output folder where the targets should store their artifacts. Override this function in your main build class to enforce your own.
 
UbtConfig UbtGlobal (UbtConfig _)
 UBT arguments to be applied globally for all UBT invocations. Override this function in your main build class if your project needs extra intricacies for everything what UBT may do through Nuke.Unreal.
 
UatConfig UatGlobal (UatConfig _)
 UAT arguments to be applied globally for all UAT invocations. Override this function in your main build class if your project needs extra intricacies for everything what UAT may do through Nuke.Unreal.
 
EngineVersion GetEngineVersionFromProject ()
 Utility function to get the proper Engine version associated with current project. Rather use Unreal.Version static function, that looks nicer.
 
IEnumerable< string > GetArgumentBlock (string name="")
 Get optionally named argument block (section after -->) with contextual data substituted.

  • ~p Project file path
  • ~pdir Project folder
  • ~ue Unreal Engine folder

 
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.
 
UatConfig UatCook (UatConfig _)
 UAT arguments to be applied every time UAT is called for Cooking. Override this function in your main build class if your project needs extra intricacies for Cooking. For example specifying maps explicitly.
 
bool ForDistribution ()
 Enforce packaging for distribution when that is set from Game ini files. Override this function in your main build class if you want a different logic set for flagging packages for distribution.
 

Properties

UnrealPlatform Platform [get]
 
UnrealConfig[] Config [get]
 
UnrealConfig[] EditorConfig [get]
 
UnrealTargetType[] TargetType [get]
 
AndroidCookFlavor[] AndroidTextureMode [get]
 
AbsolutePath UnrealEnginePath [get]
 Path to the root of the associated Unreal Engine installation/source.
 
AbsolutePath ProjectPath [get]
 
AbsolutePath ProjectFolder [get]
 Path to folder containing the .project file.
 
AbsolutePath PluginsFolder [get]
 Path to the Unreal plugins folder of this project.
 
string ProjectName [get]
 Short name of the project.
 
ProjectDescriptor ProjectDescriptor [get]
 "Immutable" C# representation of the .uproject contents
 
AbsolutePath TemplatesPath [get]
 
string[] Name [get]
 
string[] Spec [get]
 
Target HelpNukeUnreal [get]
 
Target Info [get]
 
Target CleanDeployment [get]
 
Target CleanProject [get]
 
Target CleanPlugins [get]
 
Target Clean [get]
 
Target Switch [get]
 
Target Prepare [get]
 
Target Generate [get]
 
Target SetupPlatformSdk [get]
 
Target BuildEditor [get]
 
Target Build [get]
 
Target Cook [get]
 
Target EnsureBuildPluginSupport [get]
 
Target RunUat [get]
 
Target RunUbt [get]
 
Target RunShell [get]
 
Target Run [get]
 
Target RunEditorCmd [get]
 
Target NewModule [get]
 
Target AddCode [get]
 
Target NewPlugin [get]
 
Target NewActor [get]
 
Target NewInterface [get]
 
Target NewObject [get]
 
Target NewStruct [get]
 
Target NewSpec [get]
 
Target UseLibrary [get]
 
Target UseXRepo [get]
 
Target UseCMake [get]
 
Target UseHeaderOnly [get]
 

Detailed Description

Base interface for build components which require an UnrealBuild main class.

Definition at line 13 of file IUnrealBuild.cs.

Member Function Documentation

◆ ForDistribution()

bool Nuke.Unreal.IUnrealBuild.ForDistribution ( )

Enforce packaging for distribution when that is set from Game ini files. Override this function in your main build class if you want a different logic set for flagging packages for distribution.

Implemented in Nuke.Unreal.UnrealBuild.

◆ GetArgumentBlock()

IEnumerable< string > Nuke.Unreal.IUnrealBuild.GetArgumentBlock ( string name = "")

Get optionally named argument block (section after -->) with contextual data substituted.

  • ~p Project file path
  • ~pdir Project folder
  • ~ue Unreal Engine folder

Implemented in Nuke.Unreal.UnrealBuild.

◆ GetEngineVersionFromProject()

EngineVersion Nuke.Unreal.IUnrealBuild.GetEngineVersionFromProject ( )

Utility function to get the proper Engine version associated with current project. Rather use Unreal.Version static function, that looks nicer.

Implemented in Nuke.Unreal.UnrealBuild.

◆ GetOutput()

AbsolutePath Nuke.Unreal.IUnrealBuild.GetOutput ( )

Get an output folder where the targets should store their artifacts. Override this function in your main build class to enforce your own.

Implemented in Nuke.Unreal.UnrealBuild.

◆ ReadIniHierarchy()

ConfigIni Nuke.Unreal.IUnrealBuild.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.

Parameters
shortNameThe name of the configuration like Game or Engine
lowestLevelThe least important level of hierarchy for reading this config. Default is Base
highestLevelThe maximum important level of hierarchy for reading this config Default is Saved
considerPluginsIf true also consider config files found in plugins. Default if true.
extraConfigSubfolderManually add extra configuration subfolders which may be outside of the normal sources of config files.
Returns
The parsed contents of the indicated config name

Implemented in Nuke.Unreal.UnrealBuild.

◆ UatCook()

UatConfig Nuke.Unreal.IUnrealBuild.UatCook ( UatConfig _)

UAT arguments to be applied every time UAT is called for Cooking. Override this function in your main build class if your project needs extra intricacies for Cooking. For example specifying maps explicitly.

Implemented in Nuke.Unreal.UnrealBuild.

◆ UatGlobal()

UatConfig Nuke.Unreal.IUnrealBuild.UatGlobal ( UatConfig _)

UAT arguments to be applied globally for all UAT invocations. Override this function in your main build class if your project needs extra intricacies for everything what UAT may do through Nuke.Unreal.

Implemented in Nuke.Unreal.UnrealBuild.

◆ UbtGlobal()

UbtConfig Nuke.Unreal.IUnrealBuild.UbtGlobal ( UbtConfig _)

UBT arguments to be applied globally for all UBT invocations. Override this function in your main build class if your project needs extra intricacies for everything what UBT may do through Nuke.Unreal.

These arguments are also propagated to all UAT invocations through its -UbtArgs

Implemented in Nuke.Unreal.UnrealBuild.

Property Documentation

◆ AddCode

Target Nuke.Unreal.IUnrealBuild.AddCode
get

NUKE TARGET

Add C++ code to a project which doesn't have one yet.

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 497 of file IUnrealBuild.cs.

◆ AndroidTextureMode

AndroidCookFlavor [] Nuke.Unreal.IUnrealBuild.AndroidTextureMode
get

NUKE PARAMETER

Select texture compression mode for Android

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 61 of file IUnrealBuild.cs.

◆ Build

Target Nuke.Unreal.IUnrealBuild.Build
get

NUKE TARGET

Build this project for execution

-->ubt (args.)
UnrealPlatform Platform
TargetType
The type of target.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 345 of file IUnrealBuild.cs.

◆ BuildEditor

Target Nuke.Unreal.IUnrealBuild.BuildEditor
get

NUKE TARGET

Build the editor binaries so this project can be opened properly in the Unreal editor

-->ubt (args.)
UnrealConfig[] EditorConfig

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 331 of file IUnrealBuild.cs.

◆ Clean

Target Nuke.Unreal.IUnrealBuild.Clean
get

NUKE TARGET

Removes auto generated folders of Unreal Engine

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 281 of file IUnrealBuild.cs.

◆ CleanDeployment

Target Nuke.Unreal.IUnrealBuild.CleanDeployment
get

NUKE TARGET

Removes previous deployment folder

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 257 of file IUnrealBuild.cs.

◆ CleanPlugins

Target Nuke.Unreal.IUnrealBuild.CleanPlugins
get

NUKE TARGET

Removes auto generated folders of Unreal Engine from the plugins

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 273 of file IUnrealBuild.cs.

◆ CleanProject

Target Nuke.Unreal.IUnrealBuild.CleanProject
get

NUKE TARGET

Removes auto generated folders of Unreal Engine from the project

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 265 of file IUnrealBuild.cs.

◆ Config

UnrealConfig [] Nuke.Unreal.IUnrealBuild.Config
get

NUKE PARAMETER

The target configuration for building or packaging the project

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 37 of file IUnrealBuild.cs.

◆ Cook

Target Nuke.Unreal.IUnrealBuild.Cook
get

NUKE TARGET

Cook Unreal assets for standalone game execution

-->ubt (args.)
-->uat (args.)
AndroidCookFlavor[] AndroidTextureMode

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 360 of file IUnrealBuild.cs.

◆ EditorConfig

UnrealConfig [] Nuke.Unreal.IUnrealBuild.EditorConfig
get

NUKE PARAMETER

The editor configuration to be used while building or packaging the project

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 45 of file IUnrealBuild.cs.

◆ EnsureBuildPluginSupport

Target Nuke.Unreal.IUnrealBuild.EnsureBuildPluginSupport
get

NUKE TARGET

Ensure support for plain C# build plugins without the need for CSX or dotnet projects. This only needs to be done once, you can check the results into source control.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 369 of file IUnrealBuild.cs.

◆ Generate

Target Nuke.Unreal.IUnrealBuild.Generate
get

NUKE TARGET

Generate project files for the default IDE of the current platform. You can specify further details with -->ubt argument block. It is equivalent to right clicking the uproject and selecting "Generate _IDE_ project files".

-->ubt (args.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 317 of file IUnrealBuild.cs.

◆ HelpNukeUnreal

Target Nuke.Unreal.IUnrealBuild.HelpNukeUnreal
get

NUKE TARGET

Opens the Nuke.Unreal online documentation

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 241 of file IUnrealBuild.cs.

◆ Info

Target Nuke.Unreal.IUnrealBuild.Info
get

NUKE TARGET

Prints curated information about project

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 249 of file IUnrealBuild.cs.

◆ Name

string [] Nuke.Unreal.IUnrealBuild.Name
get

NUKE PARAMETER

Name parameter for boilerplate generators.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 195 of file IUnrealBuild.cs.

◆ NewActor

Target Nuke.Unreal.IUnrealBuild.NewActor
get

NUKE TARGET

Create new Unreal Actor in current directory

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 521 of file IUnrealBuild.cs.

◆ NewInterface

Target Nuke.Unreal.IUnrealBuild.NewInterface
get

NUKE TARGET

Create new Unreal Interface in current directory

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 533 of file IUnrealBuild.cs.

◆ NewModule

Target Nuke.Unreal.IUnrealBuild.NewModule
get

NUKE TARGET

Create new module in the owning project or plugin (depending on working directory)

--Name (req,)
--AddToTarget
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 485 of file IUnrealBuild.cs.

◆ NewObject

Target Nuke.Unreal.IUnrealBuild.NewObject
get

NUKE TARGET

Create new Unreal Object in current directory

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 545 of file IUnrealBuild.cs.

◆ NewPlugin

Target Nuke.Unreal.IUnrealBuild.NewPlugin
get

NUKE TARGET

Create a new project plugin.

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 509 of file IUnrealBuild.cs.

◆ NewSpec

Target Nuke.Unreal.IUnrealBuild.NewSpec
get

NUKE TARGET

Create new Unreal Automation Spec in current directory

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 569 of file IUnrealBuild.cs.

◆ NewStruct

Target Nuke.Unreal.IUnrealBuild.NewStruct
get

NUKE TARGET

Create new Unreal Struct in current directory

--Name (req,)
--TemplatesPath (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 557 of file IUnrealBuild.cs.

◆ Platform

UnrealPlatform Nuke.Unreal.IUnrealBuild.Platform
get

NUKE PARAMETER

Set platform for running targets

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 29 of file IUnrealBuild.cs.

◆ PluginsFolder

AbsolutePath Nuke.Unreal.IUnrealBuild.PluginsFolder
get

Path to the Unreal plugins folder of this project.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 152 of file IUnrealBuild.cs.

◆ Prepare

Target Nuke.Unreal.IUnrealBuild.Prepare
get

NUKE TARGET

Run necessary preparations which needs to be done before Unreal tools can handle the project. By default it is empty and the main build project may override it or other Targets can depend on it / hook into it.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 304 of file IUnrealBuild.cs.

◆ ProjectDescriptor

ProjectDescriptor Nuke.Unreal.IUnrealBuild.ProjectDescriptor
get

"Immutable" C# representation of the .uproject contents

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 162 of file IUnrealBuild.cs.

◆ ProjectFolder

AbsolutePath Nuke.Unreal.IUnrealBuild.ProjectFolder
get

Path to folder containing the .project file.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 147 of file IUnrealBuild.cs.

◆ ProjectName

string Nuke.Unreal.IUnrealBuild.ProjectName
get

Short name of the project.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 157 of file IUnrealBuild.cs.

◆ ProjectPath

AbsolutePath Nuke.Unreal.IUnrealBuild.ProjectPath
get

Optionally specify a path to a .uproject file.

If not overridden Nuke.Unreal will traverse upwards on the directory tree, then sift through all subdirectories recursively (ignoring some known folders)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 142 of file IUnrealBuild.cs.

◆ Run

Target Nuke.Unreal.IUnrealBuild.Run
get

NUKE TARGET

Run an Unreal tool from the engine binaries folder. You can omit the Unreal prefix and the extension. For example:

nuke run --tool pak --> ./Path/To/MyProject.pak -Extract "D:/temp"
nuke run --tool editor-cmd --> ~p -run=MyCommandlet

Working directory is the project folder, regardless of actual working directory.

The following symbols are replaced by Nuke.Unreal:

~p : Project file path
~pdir : Project folder
~ue : Unreal Engine folder
A collection of utilities around basic functions regarding the environment of the Engine we're workin...
Definition Unreal.cs:24
--Tool (req.)
--> (args.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 450 of file IUnrealBuild.cs.

◆ RunEditorCmd

Target Nuke.Unreal.IUnrealBuild.RunEditorCmd
get

NUKE TARGET

Run an editor commandlet with arguments passed in after -->

The following symbols are replaced by Nuke.Unreal:

~p : Project file path
~pdir : Project folder
~ue : Unreal Engine folder
--Cmd (req.)
--> (args.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 470 of file IUnrealBuild.cs.

◆ RunShell

Target Nuke.Unreal.IUnrealBuild.RunShell
get

NUKE TARGET

Start a UShell session. This opens a new console window, and nuke will exit immadiately. Working directory is the project folder, regardless of actual working directory.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 420 of file IUnrealBuild.cs.

◆ RunUat

Target Nuke.Unreal.IUnrealBuild.RunUat
get

NUKE TARGET

Simply run UAT with arguments passed after -->

--> (args.)
--IgnoreGlobalArgs (adv.)

The following symbols are replaced by Nuke.Unreal:

~p : Project file path
~pdir : Project folder
~ue : Unreal Engine folder

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 391 of file IUnrealBuild.cs.

◆ RunUbt

Target Nuke.Unreal.IUnrealBuild.RunUbt
get

NUKE TARGET

Simply run UBT with arguments passed after -->

--> (args.)
--IgnoreGlobalArgs (adv.)

The following symbols are replaced by Nuke.Unreal:

~p : Project file path
~pdir : Project folder
~ue : Unreal Engine folder

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 411 of file IUnrealBuild.cs.

◆ SetupPlatformSdk

Target Nuke.Unreal.IUnrealBuild.SetupPlatformSdk
get

Definition at line 319 of file IUnrealBuild.cs.

◆ Spec

string [] Nuke.Unreal.IUnrealBuild.Spec
get

NUKE PARAMETER

Specification(s) of the imported library(ies). This is used slightly differently based on which library type is being used:

Header / CMake: It's only the name of the library (like \--Spec spdlog)

XRepo: specify the xrepo package reference and its config separated by space. For example:

--Spec "zlib"
--Spec "zlib 1.2.x"
--Spec "boost regex=true,thread=true"
--Spec "imgui 1.91.1 freetype=true"

Or multiple libraries at once

--Spec "zlib 1.2.x" "boost regex=true,thread=true" "imgui 1.91.1 freetype=true"

More about xrepo: https://xrepo.xmake.io

Since Unreal uses MD runtime linkage ‘runtimes='MD’` config is always appended by Nuke.Unreal, and the user must not specify it.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 231 of file IUnrealBuild.cs.

◆ Switch

Target Nuke.Unreal.IUnrealBuild.Switch
get

NUKE TARGET

Switch to an explicit Engine version

--unreal (req.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 292 of file IUnrealBuild.cs.

◆ TargetType

UnrealTargetType [] Nuke.Unreal.IUnrealBuild.TargetType
get

NUKE PARAMETER

The Unreal target type for building the project

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 53 of file IUnrealBuild.cs.

◆ TemplatesPath

AbsolutePath Nuke.Unreal.IUnrealBuild.TemplatesPath
get

NUKE PARAMETER

Specify a folder containing generator specific folders for Scriban scaffolding and templates. If left empty the templates coming with Nuke.Unreal will be used.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 187 of file IUnrealBuild.cs.

◆ UnrealEnginePath

AbsolutePath Nuke.Unreal.IUnrealBuild.UnrealEnginePath
get

Path to the root of the associated Unreal Engine installation/source.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 88 of file IUnrealBuild.cs.

◆ UseCMake

Target Nuke.Unreal.IUnrealBuild.UseCMake
get

NUKE TARGET

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 642 of file IUnrealBuild.cs.

◆ UseHeaderOnly

Target Nuke.Unreal.IUnrealBuild.UseHeaderOnly
get

NUKE TARGET

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 649 of file IUnrealBuild.cs.

◆ UseLibrary

Target Nuke.Unreal.IUnrealBuild.UseLibrary
get

NUKE TARGET

Create boilerplate module for third-party C++ libraries. Specify the kind of library with \--LibraryType Header|CMake|XRepo The latter two will generate extra nuke targets preparing the library to be consumed by Unreal. Fetching/storing the library is up to the developer (except of course with XRepo).

Use type specific targets for more comfortable CLI experience, for example
nuke use-xrepo \--Spec tracy
instead of
nuke UseLibrary --LibraryType xrepo --Spec tracy

This only needs to be done once, you can check the results into source control.

--Spec (req,)
--LibraryType
--Suffix (adv.)

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 597 of file IUnrealBuild.cs.

◆ UseXRepo

Target Nuke.Unreal.IUnrealBuild.UseXRepo
get

NUKE TARGET

Use libraries from the xrepo package manager. This target only configures another target which will eventually fetch the input libraries. To make them available to Unreal run Prepare or Generate targets.

Specify the xrepo package reference and its config separated by space. For example:

nuke UseXRepo --Spec "zlib"
nuke UseXRepo --Spec "zlib 1.2.x"
nuke UseXRepo --Spec "boost regex=true,thread=true"
nuke UseXRepo --Spec "imgui 1.91.1 freetype=true"

Or multiple libraries at once

nuke UseXRepo --Spec "zlib 1.2.x" "boost regex=true,thread=true" "imgui 1.91.1 freetype=true"

More about xrepo: https://xrepo.xmake.io

--Spec (req,)
--Suffix (adv.)

Since Unreal uses MD runtime linkage ‘runtimes='MD’` config is always appended by Nuke.Unreal, and the user must not specify it.

Implemented in Nuke.Unreal.UnrealBuild.

Definition at line 635 of file IUnrealBuild.cs.


The documentation for this interface was generated from the following file: