Skip to content

Controlling Optimization Levels

dougbinks edited this page Sep 8, 2014 · 1 revision

The CompileOptions.h header defines the following optimization enumberation:

enum RCppOptimizationLevel
{
	RCCPPOPTIMIZATIONLEVEL_DEFAULT = 0,		// RCCPPOPTIMIZATIONLEVEL_DEBUG in DEBUG, RCCPPOPTIMIZATIONLEVEL_PERF in release. This is the default state.
	RCCPPOPTIMIZATIONLEVEL_DEBUG,			// Low optimization, improve debug experiece. Default in DEBUG
	RCCPPOPTIMIZATIONLEVEL_PERF,			// Optimization for performance, debug experience may suffer. Default in RELEASE
	RCCPPOPTIMIZATIONLEVEL_NOT_SET,			// No optimization set in compile, so either underlying compiler default or set through SetAdditionalCompileOptions
};

These can be set via the IRuntimeObjectSystem::SetOptimizationLevel function for projects. The RCCPPOPTIMIZATIONLEVEL_DEFAULT is equivalent to RCCPPOPTIMIZATIONLEVEL_DEBUG in debug builds, and RCCPPOPTIMIZATIONLEVEL_PERF in release. Setting the level to RCCPPOPTIMIZATIONLEVEL_DEBUG in a release build can be useful to aid debugging once an issue has been found or a complex level loaded for example. The RCCPPOPTIMIZATIONLEVEL_NOT_SET is useful where the developer wants finer control of settings through Setting Additional Compile and Link Options.