docs/user-manual/build-system/settings.md
settings.ini: Build Settings ConfigurationIn many circumstances, it is useful to set default values for the build as well as configure external
locations for F´ to use external code. The settings.ini file allows users to set various settings
to control the build.
In this document:
[!WARNING] The changes to the
settings.inifile only take effect during thefprime-util generatestep, and thus builds must be regenerated after a change.
settings.ini SettingsThe settings.ini file is written in the INI format as interpreted by the default settings of the
Python configparser module. Should a user wish to reference another key, the %(other key)s syntax should be used. The full format description is available here:
https://docs.python.org/3/library/configparser.html#supported-ini-file-structure
This file is expected in the directory of an F´ deployment and affects only the deployment it is
defined in. This directory is the same directory that contains the project's base CMakeLists.txt
(has a project() call).
[!WARNING] The changes to the
settings.inifile only take effect during thefprime-util generatestep, and thus builds must be regenerated after a change.
fprime SectionThe [fprime] section defines settings for the F´ build.
These settings include:
project_root: path to the root of the fprime projectframework_path: Path to the F´ framework rootlibrary_locations: Paths to additional F´ libraries and components. Multiple paths can be
specified with the : separator. Ex: ../library1:../library2default_toolchain: Default platform to build against. Defaults to native, or the host
computer platform.default_ut_toolchain: Default platform to build unit tests against. Defaults to native, or the host
computer platform.environment_file: An ini file that can be used to set environmental variables during the build
process.config_directory: Path to configuration header directory.Some settings may be overridden for specific platforms using specific platform sections. These sections have the same name as the platform and may set the following settings:
config_directoryinstall_destinationenvironment_fileThese settings only apply when building for the specified platform.
settings.iniThis settings.ini file comes from the fprime-sphinx
deployment, which is a standard standalone deployment where the F´ framework and libraries are included
as git submodules at the top level.
[fprime]
project_root: ..
framework_path: ../fprime
library_locations: ../fprime-vxworks:../fprime-sphinx-drivers:../fprime-jplffs
default_toolchain: gr712-vxworks6
environment_file: ../fprime-vxworks/cmake/env/VxWorks-GR712.ini
config_directory: ./config
[gr712-vxworks6]
config_directory: Cfg_gr712
The format for the environment file option is similar to settings.ini
Each key in the file will be set as an environmental variable for the project build.
[environment]
WIND_BASE=/opt/WindRiver/vxworks-6.7
LINK_BIN_PRE=/opt/sparc-wrs-vxworks/bin/ccsparc
LINK_BIN_PRE_FLAGS=-r -nostdlib -Wl,-X
LINK_BIN_PRE_TO=-o