Manual Compilation via SCons
Using SCons you can re-build the Unigine engine and its components (Network plugin, standalone tools, plugins for 3D editors) as well as binary executable of a custom application. It reads the default compilation settings stored in SConstruct and SConscript files which are provided in the Unigine SDK.
How to Build with SCons
To build the development version of Unigine engine or tools (the same bitness as the native platform) via SCons, perform the following steps:
- Open the console.
- Go to the target directory which contains a SConscript file (depending on what you are going to compile).
- Type scons and press ENTER to start building.
By default cross-compilation is disabled and the compiled application and tools have the native bitness. If necessary, you can set your custom compilation options.
Using Scons Under Windows
Under Windows you can use not only scons, but also scons with the cross=x64 option to create a 64-bit build.
For example, if you want to build the release version of Unigine engine for a native platform (here, Windows), type the following:
C:\Windows\system32>c:
C:\Windows\system32>cd c:\UnigineSDK\source\app\main
C:\UnigineSDK\source\app\main>scons debug=0
C:\UnigineSDK\source\app\main>scons cross=x64 double=1
Using Scons Under Linux
To compile a different bit version for Linux, use cross option.
For example, if you want to build the 32-bit release version of Unigine engine for a native platform (here, Linux), type the following.
username@pc-name$ cd /home/username/UnigineSDK/source/app/main/
username@pc-name$ scons debug=0 cross=x86
Using Scons Under Mac OS X
To compile a 32-bit release version of Unigine engine for Mac OS X, type the following.
mac-name:~ username$ cd ~/home/username/UnigineSDK/source/app/main/
mac-name:main username$ scons debug=0 cross=x86
Engine Compilation Options
When rebuilding the Unigine engine, the available options are the following:
- platform PLATFORM - platform to build for. Possible values are:
- default - the native platform that SCons is currently run on (for Linux). To create 64-bit Windows application, scons with the cross=x64 option should be run. For Mac OS X the default is always 64-bit architecture. This is a default option.
- ps3 - PlayStation 3
- android - Android
- ios - iOS
- webgl - WebGL (still in the pipeline, so can cause building-up problems; available only for source versions)
- cross BITS - bitness of the target platform. Possible values are:
- default - version with the same bitness as the platform that SCons is currently run on. This is a default option.
- x86 - 32-bit version
- x64 - 64-bit version
- arm - ARM-based version
- debug - generate detailed debugging information or not. Possible values are: 1 (by default), 0.
- double DOUBLE - build with double precision coordinates (for large coordinates support). Possible values are: 1, 0 (by default).
- compiler COMPILER - compiler to be used. It is not recommended to override the default setting. Possible values are:
- default - the native compiler for the chosen platform. This is the default option.
- gcc - GCC (the GNU Compiler Collection)
- msvs - MS Visual Studio compiler
- ps3ppusnc - PlayStation 3 compiler
- clang - Clang compiler
- jobs JOBS - the number of parallel building jobs to be run. Possible values are: 0, 1, 2, 3, 4, 6, 8, 16. The default is 0.
- batch - enable batch build mode for MS Visual Studio to skip all prompts for user input. Possible values are: 1 (by default), 0.
- simd SIMD - perform parallel compilation using the SIMD operations. Possible values are:
- default - use ARM NEON technology. This is the default value.
- none - do not use SIMD
- sse - use Streaming SIMD Extensions technology
- sse2 - use Streaming SIMD Extensions 2 technology (Intel SIMD)
- avx - use AVX
- altivec - use AltiVec instructions
- neon - use ARM NEON technology
- emulation EMULATION - emulate the selected platform. When this option is used the build system creates PC/Mac based binary which emulates the platfom. Also it can be used as a script cache generator. Possible values are:
- none - do not emulate. This is the default value.
- ps3 - PlayStation 3
- android - Android
- ios - iOS
- webgl - WebGL
Renderer Options
If your application is not targeting different platforms at once, it is possible to exclude all information about non-used renderers from Unigine library and thus decrease its size.
- opengl - include OpenGL renderer. The default is 1.
- opengles - include OpenGL ES renderer for mobile platforms. The default is 0.
- direct3d9 - include DirectX 9 renderer. The default is 1.
- direct3d10 - include DirectX 10 renderer. The default is 1.
- direct3d11 - include DirectX 11 renderer. The default is 1.
- direct3d119 - include DirectX 11 renderer of DirectX 9 level (Direct3D119). The default is 0.
Sound Options
- openal - include OpenAL sound support. The default is 1.
- xaudio2 - include XAudio2 support. The default is 1.
Computing Options
- cuda - include CUDA support. The default is 0.
- opencl - include OpenCL support. The default is 0.
Other Options
- editor - include Unigine editor functionality. The default is 1.
- flash - enable Flash support. The default is 0.
- atomic - enable single library creation for mobile platforms (Android, iOS, WebGL) without additional engine libraries creation. The default is 0 (single library creation is disabled).
- terminal - enable TELNET terminal. The default is 1.
- nocompiler - disable the usage of shader compiler. The default is 0.
Protection Options
- password - encrypt the build. Specify the same password as used for a package with your project data.
- watermark - create the Unigine watermark in the application viewport or not. Possible values are:
- no - no watermark (by default)
- default - default "Unigine" watermark
- evaluation - "Evaluation kit" watermark
- confidential - "For internal use only" watermark
- revision - Unigine engine revision number.
Network Plugin Compilation Options
For compiling the Network plugin the following options can be set:
- platform PLATFORM - platform to build for. Possible values are:
- default - the native platform that SCons is currently run on (Windows, Linux or Mac OS X). This is a default option.
- ps3 - PlayStation 3
- compiler COMPILER - compiler to be used. It is not recommended to override the default setting. Possible values are:
- default - the native compiler for the chosen platform. This is a default option.
- gcc - GCC (the GNU Compiler Collection)
- msvs - MS Visual Studio compiler
- ps3ppusnc - PlayStation 3 compiler
- cross BITS - bitness of the target platform. Possible values are:
- default - version with the same bitness as the platform that SCons is currently run on
- x86 - 32-bit version
- x64 - 64-bit version
- debug - generate detailed debugging information or not. Possible values are: 1, 0 (by default).
- double DOUBLE - build with double precision coordinates (for large coordinates support). Possible values are: 1, 0 (by default).
- check_memory - this option is for 32-bit Windows debug builds only. It allows to check memory leaks in the system. Possible values are: 1, 0 (by default).
- prof - generate profiling information or not. This option creates a release build version that, however, also contains some required debugging information. The default value is 0.
- jobs JOBS - the number of parallel building jobs to be run. Possible values are: 0, 1, 2, 4, 8, 16. The default is 0.