Anton Komlev | 2cd9153 | 2022-11-17 13:36:55 +0000 | [diff] [blame] | 1 | .. _tfm_cmake_configuration: |
| 2 | |
| 3 | ################### |
| 4 | Build configuration |
| 5 | ################### |
| 6 | |
| 7 | All configuration options are provided by cmake variables, and their default |
| 8 | values, with docstrings, can be found in ``config/config_base.cmake``. |
| 9 | |
| 10 | Configuration is provided in multiple stages. Each stage will not override any |
| 11 | config that has already been set at any of the prior stages. |
| 12 | |
| 13 | 1. Command-line variable settings are applied. |
| 14 | 2. If the ``TFM_EXTRA_CONFIG_PATH`` variable has been set, that file is |
| 15 | loaded. |
| 16 | 3. If TEST_PSA_TEST is set, then PSA API test related config is applied from |
| 17 | ``config/tests/config_test_psa_api.cmake``. |
| 18 | 4. If it exists, CMAKE_BUILD_TYPE specific config is applied from |
| 19 | ``config/build_type/<build_type>.cmake``. |
| 20 | 5. Target specific config from ``platform/ext/target/<target_platform>/config.cmake`` |
| 21 | is applied. |
| 22 | 6. If CRYPTO_HW_ACCELERATOR is set, then a config specific to the |
| 23 | accelerator type is applied if it exists. |
| 24 | 7. If it exists, TFM Profile specific config is applied from |
| 25 | ``config/profile/<tfm_profile>.cmake``. |
| 26 | 8. ``config/config_default.cmake`` is loaded. |
| 27 | 9. If ``TEST_S`` or ``TEST_NS`` or other single test suite config like |
| 28 | ``TEST_NS_ATTESTATION`` (see :ref:`test_configuration`) is set, then |
| 29 | config from ``${TFM_TEST_REPO_PATH}/test/config/set_config.cmake`` and |
| 30 | ``${TFM_TEST_REPO_PATH}/test/config/default_ns_test_config.cmake`` or |
| 31 | ``${TFM_TEST_REPO_PATH}/test/config/default_s_test_config.cmake`` or |
| 32 | ``${TFM_TEST_REPO_PATH}/test/config/default_test_config.cmake`` is |
| 33 | applied. |
| 34 | |
| 35 | .. Warning:: |
| 36 | This means that command-line settings are not applied when they conflict |
| 37 | with required platform settings. If it is required to override platform |
| 38 | settings (this is not usually a good idea) then TFM_EXTRA_CONFIG_PATH should be |
| 39 | used. |