In 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.
Note: settings.ini only adjusts the build when running through fprime-util
. These settings can
be supplied directly to CMake using -D flags as described here: CMake
Settings, but it is not recommended to use CMake directly.
In this document:
WARNING: The changes to the settings.ini
file only take effect during the fprim-util generate
step, and thus builds must be regenerated after a change.
The settings.ini
file is written in the INI format as interpreted by the default settings of the
Python configparser
module. Should a user with to reference another key, use the %(other key)s
syntax. 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 the 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.ini
file only take effect during the fprim-util generate
step, and thus builds must be regenerated after a change.
The [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:../library2
default_toolchain
: Default platform to build against. Defaults tonative
, or the host computer platform.default_ut_toolchain
: Default platform to build unit tests against. Defaults tonative
, or the host computer platform.environment_file
: An ini file that can be used to set environmental variables during the build process.ac_constants
: Path to autocode constants ini file.config_directory
: Path to configuration header directory.
This 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
ac_constants: ./Cfg/AcConstants.ini
config_directory: Cfg
The format for the environment file option is similar to settings.ini
Each key in the file will be set as 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