# Commandline options # To build updater-related targets, you need to set this option AddOption( "--with-updater", dest="fullenv", action="store_true", help="Full firmware environment", ) AddOption( "--options", dest="optionfile", type="string", nargs=1, action="store", default="fbt_options.py", help="Environment option file", ) AddOption( "--extra-int-apps", action="store", dest="extra_int_apps", default="", help="List of applications to add to firmware's built-ins. Also see FIRMWARE_APP_SET and FIRMWARE_APPS", ) AddOption( "--extra-define", action="append", dest="extra_defines", default=[], help="Extra global define that will be passed to C/C++ compiler, can be specified multiple times", ) AddOption( "--extra-ext-apps", action="store", dest="extra_ext_apps", default="", help="List of applications to forcefully build as standalone .elf", ) AddOption( "--proxy-env", action="store", dest="proxy_env", default="", help="Comma-separated list of additional environment variables to pass to child SCons processes", ) # Construction environment variables vars = Variables(GetOption("optionfile"), ARGUMENTS) vars.AddVariables( BoolVariable( "VERBOSE", help="Print full commands", default=False, ), BoolVariable( "FORCE", help="Force target action (for supported targets)", default=False, ), BoolVariable( "DEBUG", help="Enable debug build", default=True, ), BoolVariable( "LIB_DEBUG", help="Enable debug build for libraries", default=False, ), BoolVariable( "COMPACT", help="Optimize for size", default=False, ), EnumVariable( "TARGET_HW", help="Hardware target", default="7", allowed_values=[ "7", "18", ], ), ( "DIST_SUFFIX", "Suffix for binaries in build output for dist targets", "local", ), ( "UPDATE_VERSION_STRING", "Version string for updater package", "${DIST_SUFFIX}", ), ( "CUSTOM_FLIPPER_NAME", "Replaces OTP flipper name with custom string of 8 chars", "", ), ( "FORCE_NO_DIRTY", "Force disable dirty status of the build", "", ), ( "COPRO_CUBE_VERSION", "Cube version", "", ), ( "COPRO_STACK_ADDR", "Core2 Firmware address", "0", ), ( "COPRO_STACK_BIN", "Core2 Firmware file name", "", ), ( "COPRO_DISCLAIMER", "Value to pass to bundling script to confirm dangerous operations", "", ), PathVariable( "COPRO_OB_DATA", help="Path to OB reference data", validator=PathVariable.PathIsFile, default="", ), PathVariable( "COPRO_STACK_BIN_DIR", help="Path to ST-provided stacks", validator=PathVariable.PathIsDir, default="", ), PathVariable( "COPRO_CUBE_DIR", help="Path to Cube root", validator=PathVariable.PathIsDir, default="", ), EnumVariable( "COPRO_STACK_TYPE", help="Core2 stack type", default="ble_light", allowed_values=[ "ble_full", "ble_light", "ble_basic", ], ), PathVariable( "SVD_FILE", help="Path to SVD file", validator=PathVariable.PathAccept, default="", ), PathVariable( "OTHER_ELF", help="Path to prebuilt ELF file to debug", validator=PathVariable.PathAccept, default="", ), ( "FBT_TOOLCHAIN_VERSIONS", "Whitelisted toolchain versions (leave empty for no check)", tuple(), ), ( "OPENOCD_OPTS", "Options to pass to OpenOCD", "", ), ( "BLACKMAGIC", "Blackmagic probe location", "auto", ), ( "OPENOCD_ADAPTER_SERIAL", "OpenOCD adapter serial number", "auto", ), ( "UPDATE_SPLASH", "Directory name with slideshow frames to render after installing update package", "update_default", ), ( "LOADER_AUTOSTART", "Application name to automatically run on Flipper boot", "", ), ( "FIRMWARE_APPS", "Map of (configuration_name->application_list)", { "default": ( # Svc "basic_services", # Apps "main_apps", "system_apps", # Settings "settings_apps", ), }, ), ( "FIRMWARE_APP_SET", "Application set to use from FIRMWARE_APPS", "default", ), ( "APPSRC", "Application source directory for app to build & upload", "", ), # List of tuples (directory, add_to_global_include_path) ( "APPDIRS", "Directories to search for firmware components & external apps", [ ("applications", False), ("applications/services", True), ("applications/main", True), ("applications/settings", False), ("applications/system", False), ("applications/debug", False), ("applications/external", False), ("applications/examples", False), ("applications_user", False), ], ), BoolVariable( "PVSNOBROWSER", help="Don't open browser after generating error repots", default=False, ), ) Return("vars")