Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
GUI
Double Precision Coordinates
API
Bounds-Related Classes
Containers
Controls-Related Classes
Core Library
Engine-Related Classes
GUI-Related Classes
Node-Related Classes
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes
Utility Classes

Semi-automatic Compilation with Build Script

A UNIGINE Build script is a one-touch solution to rebuild the engine and tools with different options.

To invoke the build script, run <UnigineSDK>/utils/build.py from a console (see examples below). Note that you need to properly set the development environment to get the script working.

Built files can be found in the target directory, in bin and lib folders.

Notice
Rebuilding the UNIGINE engine and tools is available only in the full source version of SDK.

Command Line Options

--help Display a help message and exit.
--type TYPE Type of the build (multiple options are accepted). The default is release.

all
release
debug
Both debug and release versions of components are built at the same time
Production version
Version with detailed debugging information
--bits BITS Bit count of the target platform. OS native bit count is detected and used as a default one.

all
32
64
Build two variants for both 32- and 64-bit platforms
32-bit build
64-bit build
--csharp Build the C# libraries and the application.
Notice
If the --sample parameter is set to all, both the C# and C++ samples will be built.
--component COMPONENT UNIGINE component to build. The default is engine.

all

engine
tools
samples
UNIGINE engine together with stand-alone tools, plugins and C++ samples. If the --csharp is passed, C# and samples will be built too.
UNIGINE engine (both the binary executable and the library)
Stand-alone tools
C++ samples. If the --csharp is passed, both the C++ and C# samples will be built.
--precision PRECISION Create a build with single or double precision coordinates support. The default is float.

float
double
Use single precision coordinates
Use double precision coordinates
--plugin PLUGIN Build C++ plugins individually or in groups. The default is no.

no
all
App3DSurround
App3DVision
AppBorder
AppGrabber
AppOculus
AppPanorama
AppProjection
AppSeparate
AppSurround
AppWall
CigiClient
Collada
GPUMonitor
Interface
OpenFlight
SSLSocket
Steam
Do not build plugins
Build all available plugins
NVIDIA 3D Vision Surround stereo plugin
NVIDIA 3D Vision stereo plugin
AppBorder plugin
AppGrabber plugin
Plugin for the Oculus Rift virtual display
AppPanorama plugin
AppProjection plugin
AppSeparate plugin
AppSurround plugin
Plugin for multi-monitor support
Plugin for CIGI standard
Import plugin for Collada
GPUMonitor plugin
Interface plugin
Import plugin for OpenFlight
SSLSocket plugin
Plugin for Steam integration

Plugins are specified in the following way:

Shell commands
--plugin PluginName1 PluginName2 PluginName3
--tool TOOL Build UNIGINE tools individually or in groups (--component parameter should be set to all or tools). The default is all.

all
Archiver
ImageDDS
ImageTTF
ImageView
Interpreter
MeshImport
Resource
ResourceEditor
Terrain
Build all available tools
Archiver tool
ImageDDS tool
ImageTTF tool
ImageView tool
Interpreter tool
MeshImport tool
Resource tool
Resource Editor
Terrain tool

Tools are specified in the following way:

Shell commands
--tool ToolName1 ToolName2 ToolName3
--log LOGFILE Create a log file that contains a record of the compilation. By default, no name is specified and the log file is not created.
--sample SAMPLE Build the C++/C# samples. Multiple options are allowed. The default is no.
Notice
  • If the --csharp parameter is set, the C# samples can also be built.
  • If the --csharp parameter is set and --sample is set to all, both the C++ and C# samples will be built.

no
all
GLAppQt
D3D11AppQt
RenderQt
D3D11SharpAppForm
D3D11SlimAppForm
GLTKAppForm
Do not build samples
Build all the samples including API samples
Build the GLAppQt C++ sample
Build the D3D11AppQt C++ sample
Build the RenderQt C++ sample
Build the D3D11SharpAppForm C# sample
Build the D3D11SlimAppForm C# sample
Build the GLTKAppForm C# sample

Samples are specified in the following way:

Shell commands
--sample SampleName1 SampleName2 SampleName3
--simd SIMD Perform parallel compilation using the SIMD operations. The default is sse2.

no
sse
sse2
avx
Do not use
Use SSE technology
Use SSE2 technology
Use AVX technology
--jobs JOBS Perform parallel compilation. An argument specifies the number of parallel building jobs to be run. The default is all.

all
1
2
3
4
6
8
Use all available CPU cores to run the building jobs
Use 1 thread
Use 2 threads
Use 3 threads
Use 4 threads
Use 6 threads
Use 8 threads
--clean_source Clean up the source directory before the compilation starts (i.e. remove pdb, ilk, exp files, etc.). When this option is set, the source/clean.py script is actually run. If you need to clean up after the compilation was performed, run this script manually (the target directory will remain untouched).
--clean_target Delete everything from the target directory before the compilation starts.
--terminal Enable the TELNET terminal.
--password Use the password. The <UnigineSDK>/source/engine/password.resource file should be created by using the Resource tool before rebuilding.
--skip_errors Skip build errors (if any). When this option is set, the build.py script is run for all of the specified tools and plugins, even if errors occur. The build errors are displayed at the end.
Notice
This option allows skipping build errors only for tools and plugins.
This option allows you to check which plugins and tools have not been built successfully and speeds up error fixing.
TARGET The last optional argument is a target directory to store builds, by default it's ../. Two additional directories in the target directory will be created: bin and lib to store the binary executable and libraries, respectively.

If no options are set, the script will be built with default values.

Usage Examples

To build the release version of the UNIGINE engine (both the binary executable and the UNIGINE library) for a 64-bit platform, just run the build script:

Shell commands
C:\Windows\system32>c:

C:\Windows\system32>cd c:\UNIGINESDK\utils\

C:\UNIGINESDK\utils>build.py

In the example below, the debug version of tools will be rebuilt for 32-bit Windows (the current platform):

Shell commands
C:\UNIGINESDK\utils>build.py --type=debug --bits=32 --component=tools

To create the debug version of the engine with double precision coordinates support, use the following:

Shell commands
C:\UNIGINESDK\utils>build.py --type=debug --precision=double

To build all the C++ and C# samples, type:

Shell commands
C:\UNIGINESDK\utils>build.py --csharp --sample=all

To build the release version of the GPUMonitor plugin for x64 platform, use the following command:

Shell commands
C:\UNIGINESDK\utils>build.py --plugin=GPUMonitor
Last update: 2017-07-03