# Compilation Options !!! note "Work in Progress" This page is a work in progress. The raw option list below is an initial dump of all compile-time defines. It still needs to be sorted into categories, have details added for options like `PCBREV` (with all possible values), and be converted into tables. **TODO:** - [ ] Sort into categories — PCB/TX model, hardware-specific, handy default setting flags, etc. - [ ] Add details for options like `PCBREV` with all possible values - [ ] Convert to a set of tables - [x] Clear out system-specific / autogenerated flags Initial dump of all the compile time defines / options (`cmake -LAH` output) ``` // Support for AFHDS2 AFHDS2:BOOL=OFF // Support for AFHDS3 AFHDS3:BOOL=ON // Allow nightly builds download / update ALLOW_NIGHTLY_BUILDS:BOOL=OFF // Enable asterisk icon (test only firmware) ASTERISK:BOOL=OFF // Automatic source detection in menus AUTOSOURCE:BOOL=ON // Automatic switch detection in menus AUTOSWITCH:BOOL=ON // Support for bluetooth module BLUETOOTH:BOOL=OFF // Include Bootloader BOOTLOADER:BOOL=ON // Command Line Interface CLI:BOOL=OFF // Crossfire TX Module CROSSFIRE:BOOL=ON // Curves CURVES:BOOL=ON // Dangerous module functions (RangeCheck / Bind / Module OFF, etc.) available DANGEROUS_MODULE_FUNCTIONS:BOOL=OFF // Double Keys DBLKEYS:BOOL=ON // Debug mode DEBUG:BOOL=Y // Count interrupts DEBUG_INTERRUPTS:BOOL=OFF // Debug latency DEBUG_LATENCY:BOOL=OFF // Turn on debug output for storage import DEBUG_STORAGE_IMPORT:BOOL=OFF // Task switching statistics DEBUG_TASKS:BOOL=OFF // Time critical parts of the code DEBUG_TIMERS:BOOL=OFF // Debug Trace Screen DEBUG_TRACE_BUFFER:BOOL=OFF // Count individual USB interrupts DEBUG_USB_INTERRUPTS:BOOL=OFF // Turn on windows traces DEBUG_WINDOWS:BOOL=OFF // Default sticks mode DEFAULT_MODE:STRING= // DEFAULT_TEMPLATE_SETUP:STRING=21 // Disable building companion and simulators DISABLE_COMPANION:BOOL=OFF // Enable SD card disk cache DISK_CACHE:BOOL=ON // DSM2 TX Module DSM2:BOOL=ON // Competition mode (no telemetry) FAI:BOOL=OFF // Support of old FAS prototypes (different resistors) FAS_PROTOTYPE:BOOL=OFF // Configure Firmware target (can be turned off for compiling Companion only) FIRMWARE_TARGET:BOOL=ON // Flight Modes FLIGHT_MODES:BOOL=ON // Enable FlySky Hall Sticks FLYSKY_HALL_STICKS:BOOL=OFF // Used to build FrSky released firmware FRSKY_RELEASE:BOOL=OFF // Reverse sticks for FrSky sticks FRSKY_STICKS:BOOL=OFF // Ghost TX Module GHOST:BOOL=ON // GUI enabled GUI:BOOL=ON // Global variables GVARS:BOOL=ON // Support for R9M 2019 hardware mod HARDWARE_EXTERNAL_ACCESS_MOD:BOOL=OFF // Allow multi trainer HARDWARE_TRAINER_MULTI:BOOL=OFF // Heli menu HELI:BOOL=ON // Used to build IMRC released firmware IMRC_RELEASE:BOOL=OFF // Support for internal ublox GPS INTERNAL_GPS:BOOL=YES // Baud rate for internal GPS INTERNAL_GPS_BAUDRATE:STRING=9600 // Support for MULTI internal module INTERNAL_MODULE_MULTI:BOOL=ON // Enable ADC jitter measurement JITTER_MEASURE:BOOL=OFF // Bluetooth Logs on SD card LOG_BLUETOOTH:BOOL=OFF // Telemetry Logs on SD card LOG_TELEMETRY:BOOL=OFF // Enable LUA support LUA:BOOL=ON // Trace Lua memory (de)allocations to debug port (also needs DEBUG=YES NANO=NO) LUA_ALLOCATOR_TRACER:BOOL=OFF // Pre-compile and save Lua scripts LUA_COMPILER:BOOL=ON // Script loading mode and compilation flags [btTxcd] (see loadScript() API docs). Blank for default ('bt' on radio, 'T' on SIMU/DEBUG builds) LUA_SCRIPT_LOAD_MODE:STRING= // Add support for D8 modules MODULE_PROTOCOL_D8:BOOL=ON // Add support for FCC modules MODULE_PROTOCOL_FCC:BOOL=ON // Add support for non certified FLEX modules MODULE_PROTOCOL_FLEX:BOOL=OFF // Add support for EU/LBT modules MODULE_PROTOCOL_LBT:BOOL=ON // Standard size TX Module MODULE_SIZE_STD:BOOL=ON // DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module) MULTIMODULE:BOOL=ON // Use nano newlib and binalloc NANO:BOOL=OFF // OverrideChannel function available OVERRIDE_CHANNEL_FUNCTION:BOOL=ON // Radio type, one of: X9LITE;X9LITES;X7;XLITE;XLITES;X9D;X9D+;X9E;X10;X12S;SKY9X;9XRPRO;AR9X;NV14 PCB:STRING=X10 // PCB Revision PCBREV:STRING=TX16S // Popup level POPUP_LEVEL:STRING=2 // PPM TX Module PPM:BOOL=ON // PPM center adjustable PPM_CENTER_ADJUSTABLE:BOOL=ON // PPM limits symetrical PPM_LIMITS_SYMETRICAL:BOOL=OFF // PPM display unit (US/PERCENT_PREC1/PERCENT_PREC0) PPM_UNIT:STRING=PERCENT_PREC1 // Pwr button type (PRESS/SWITCH) PWR_BUTTON:STRING=PRESS // PXX1 protocol support PXX1:BOOL=ON // PXX2 protocol support PXX2:BOOL=OFF // RAS (SWR) enabled RAS:BOOL=ON // SBUS TX Module SBUS:BOOL=ON // Enable debugger semihosting SEMIHOSTING:BOOL=OFF // Alternative simulator library search path SIMULATOR_INSTALL_PREFIX:STRING= // Enable disk IO simulation in simulator. Simulator will use FatFs module and simulated IO layer that uses "./sdcard.image" file as image of SD card. This file must contain whole SD card from first to last sector SIMU_DISKIO:BOOL=OFF // Pre-compile and save Lua scripts in simulator. SIMU_LUA_COMPILER:BOOL=ON // Configure libsimulator/simu targets (can be turned off for compiling Companion only) SIMU_TARGET:BOOL=ON // Splash (DEFAULT/OFF/FRSKY) SPLASH:STRING=DEFAULT // Use QTableWidget for grid layouts TABLE_LAYOUT:BOOL=OFF // Used to build TBS released firmware TBS_RELEASE:BOOL=OFF // Model templates menu TEMPLATES:BOOL=OFF // Warn this is a test build TEST_BUILD_WARNING:BOOL=OFF // Timers count (2 or 3) TIMERS:STRING=3 // Traces audio enabled TRACE_AUDIO:BOOL=OFF // Traces FatFS enabled TRACE_FATFS:BOOL=OFF // Turn on traces for Lua internals TRACE_LUA_INTERNALS:BOOL=OFF // Traces SD enabled TRACE_SD_CARD:BOOL=OFF // Turn on traces in simpgmspace.cpp TRACE_SIMPGMSPACE:BOOL=ON // Radio language, one of: CZ;DE;EN;ES;FR;IT;PT;SK;SE;PL;HU;NL;CN;TW TRANSLATIONS:STRING=EN // Enable the Unexpected Shutdown screen UNEXPECTED_SHUTDOWN:BOOL=ON // Enable USB serial (CDC) USB_SERIAL:BOOL=ON // Show extra information while processing CMakeLists.txt files. VERBOSE_CMAKELISTS:BOOL=OFF // Treat any compiler warning as an error (adds -Werror flag). WARNINGS_AS_ERRORS:BOOL=OFF // Enable hardware Watchdog WATCHDOG:BOOL=ON // Draw bounding boxes around windows WINDOWS_INSPECT_BORDERS:BOOL=OFF // XJT TX Module XJT:BOOL=ON // Enable YAML storage YAML_STORAGE:BOOL=OFF ```