-
Notifications
You must be signed in to change notification settings - Fork 85
CMake Flags
These flags can be specified on the command-line when invoking CMake to generate the project files, alongside CMake generators and toolsets to control what type of build files are generated.
For example, to generate Ninja build files, building with debug libraries, and enabling unit tests, you might run a command like this in the project root:
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DPLASMA_BUILD_TESTS=ON -S . -B build-ninja-debug
The resulting Ninja build files will be generated in a build-ninja-debug subfolder and can be built either by running ninja directly or by running CMake in the project root and specifying a specific target:
cmake --build build-ninja-debug --target plClient
To generate Visual Studio 2019 project files building a 32-bit Windows client, invoke CMake with the following generator and arch options: -G "Visual Studio 16 2019" -A Win32
-
USE_VCPKGWhether to use the vcpkg package manager to automatically build all dependencies. Default
ONfor Windows,OFFfor other platforms. -
CMAKE_BUILD_TYPEWhether to make a
DebugorReleasebuild (orRelWithDebInfoto make a release build with debugging info). Default is probablyDebug, but this is usually overridden by the build type as configured in the Visual Studio or Xcode IDEs. -
PLASMA_EXTERNAL_RELEASEWhether this is an External release build (with internal developer tools such as the console disabled). Default is
OFF(i.e., by default it will build an Internal client). -
PLASMA_BUILD_CLIENTWhether to build the plClient project. Default is
ON. -
PLASMA_BUILD_LAUNCHERWhether to build the plUruLauncher project. Default is
ON. -
PLASMA_BUILD_TESTSWhether to build the unit tests for the Plasma project. Default is
OFF. -
PLASMA_BUILD_TOOLSWhether to build the non-client Plasma developer tools. Default is
ON. -
PLASMA_BUILD_MAX_PLUGINWhether to build the 3D Studio Max plugin. Default is
OFFand cannot be turnedONif the 3DSMax SDK is not found. Can be set toREQUIREDto fail the build if the 3DSMax SDK is not found. -
PLASMA_STACK_WALKERWhether to build the Plasma crash handler program with stacktrace support. Default is
ON. -
PLASMA_BUILD_RESOURCE_DATWhether to build the resource.dat file resources at compile time. Default depends on whether Python, Pillow, and CairoSVG can be found (needed for generating PNG assets from the SVG source files before bundling into resource.dat).
-
PLASMA_UNITY_BUILDWhether to allow multiple source files to be combined at build time into "Unified Sources" to speed up compilation times. Default depends on CMake version and whether optimizations are enabled.
-
PLASMA_USE_PCHWhether to allow precompiled header files to be generated and used to speed up compilation times. Default depends on CMake version and whether optimizations are enabled.
-
PRODUCT_EMBED_BUILD_INFOWhether to embed information about the git commit and branch in the product version. Default is
ON. -
PRODUCT_EMBED_BUILD_TIMEWhether to embed information about the build time in the product version. Default is based on the value of
PRODUCT_EMBED_BUILD_INFO.
-
PLASMA_PIPELINE_DXWhether to build Plasma with the DirectX rendering pipeline. Default is
ONif the DirectX 9 SDK is found. -
PLASMA_PIPELINE_GLWhether to build Plasma with the (incomplete) OpenGL rendering pipeline. Default is
ONif the libepoxy library is found. -
PLASMA_PIPELINE_METALWhether to build Plasma with the Apple Metal rendering pipeline. Default is
ONif compiling on an Apple system (i.e., macOS). -
PLASMA_RESMGR_DEBUGGINGWhether to enable verbose plResManager debugging logs. Default is
OFF. -
USE_EFXWhether to use EFX for environmental audio effects. Default is
ONif the efx.h header file is found. -
USE_EGLWhether to use EGL as a backend option for the OpenGL rendering pipeline. Default is
ONif libEGL is found. -
USE_OPUSWhether to use Opus as a higher quality voice chat codec. Default is
ONif the Opus library is found. -
USE_SPEEXWhether to use Speex as a voice chat codec. Default is
ONif the Speex library is found. -
USE_VPXWhether to use the VPX library for supporting WebM-encoded video files. Default is
ONif libvpx is found. -
USE_WEBMWhether to use the libWebM library for supporting WebM-encoded video files. Default is
ONif libwebm is found. -
USE_CLANG_TIDYWhether to enable using the clang-tidy sanitizer. Default is
OFF.
You can't really change these without breaking compatibility with the MOULa server.
-
PRODUCT_BRANCH_IDThe branch ID of the product. Default is
1. -
PRODUCT_BUILD_IDThe build ID of the product. Default is
918. -
PRODUCT_BUILD_TYPEThe build type of the product. Default is
50. -
PRODUCT_CORE_NAMEThe product core name. Default is
UruLive. -
PRODUCT_SHORT_NAMEThe product short name. Default is
UruLive. -
PRODUCT_LONG_NAMEThe product's long name. Default is
Uru Live. -
PRODUCT_UUIDThe product's UUID. Default is
ea489821-6c35-4bd0-9dae-bb17c585e680.