Build: Change build commands to align with TF-M split build
TF-M build commands are changed by new feature "split build".
Update CI scripts to support this feature.
Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
Change-Id: If5a81ca7a1bd99ac8fb9f4850be89b48b76fcbe2
diff --git a/tfm_ci_pylib/tfm_build_manager.py b/tfm_ci_pylib/tfm_build_manager.py
index 53ef5c6..ed7cf3e 100644
--- a/tfm_ci_pylib/tfm_build_manager.py
+++ b/tfm_ci_pylib/tfm_build_manager.py
@@ -129,17 +129,17 @@
"""
config_details = self._tbm_build_cfg[config]
codebase_dir = os.path.join(os.getcwd(),"trusted-firmware-m")
- build_dir=os.path.join(os.getcwd(),"trusted-firmware-m/build")
build_config = self.get_build_config(config_details, config, \
silence=silence_stderr, \
- build_dir=build_dir, \
codebase_dir=codebase_dir, \
jobs=jobs)
build_commands = {
- 'set_compiler': build_config['set_compiler_path'],
- 'cmake_config': build_config['config_template'],
- 'cmake_build': build_config['cmake_build'],
- 'post_build': build_config['post_build']
+ 'set_compiler': build_config['set_compiler_path'],
+ 'spe_cmake_config': build_config['spe_config_template'],
+ 'nspe_cmake_config': build_config['nspe_config_template'],
+ 'spe_cmake_build': build_config['spe_cmake_build'],
+ 'nspe_cmake_build': build_config['nspe_cmake_build'],
+ 'post_build': build_config['post_build']
}
return build_commands
@@ -252,7 +252,6 @@
build_cfg = self.override_tbm_cfg_params(build_cfg,
["post_build",
- "required_artefacts",
"artifact_capture_rex"],
**over_dict)
@@ -337,12 +336,7 @@
print("Exported build report to file:", self._tbm_report)
save_json(self._tbm_report, full_rep)
- def get_build_config(self, i, name, silence=False, build_dir=None, codebase_dir=None, jobs=None):
- psa_build_dir = self._tbm_work_dir + "/" + name + "/BUILD"
- if not build_dir:
- build_dir = os.path.join(self._tbm_work_dir, name)
- else:
- psa_build_dir = os.path.join(build_dir, "../../psa-arch-tests/api-tests/build")
+ def get_build_config(self, i, name, silence=False, codebase_dir=None, jobs=None):
build_cfg = deepcopy(self.tbm_common_cfg)
if not codebase_dir:
codebase_dir = build_cfg["codebase_root_dir"]
@@ -374,14 +368,17 @@
jobs = os.cpu_count()
thread_no = " -j {} ".format(jobs)
- build_cfg["cmake_build"] += thread_no
+ build_cfg["spe_cmake_build"] += thread_no
+ build_cfg["nspe_cmake_build"] += thread_no
# Overwrite command lines to set compiler
build_cfg["set_compiler_path"] %= {"compiler": i.compiler}
build_cfg["set_compiler_path"] += " ;\n{} --version".format(self.get_compiler_name(i.compiler))
- # Overwrite command lines of cmake
- overwrite_params = {"codebase_root_dir": build_cfg["codebase_root_dir"],
+ # Overwrite parameters of build configs
+ overwrite_params = {"codebase_root_dir": build_cfg["codebase_root_dir"],
+ "tfm_tests_root_dir": build_cfg["codebase_root_dir"] + "/../tf-m-tests",
+ "ci_build_root_dir": build_cfg["codebase_root_dir"] + "/../ci_build",
"tfm_platform": i.tfm_platform,
"compiler": self.choose_toolchain(i.compiler),
"isolation_level": i.isolation_level,
@@ -400,8 +397,19 @@
overwrite_params["test_psa_api"] += " -DCC312_LEGACY_DRIVER_API_ENABLED=OFF"
if i.tfm_platform == "arm/musca_b1":
overwrite_params["test_psa_api"] += " -DOTP_NV_COUNTERS_RAM_EMULATION=ON"
- build_cfg["config_template"] %= overwrite_params
- build_cfg["post_build"] %= {"_tbm_build_dir_": build_dir}
+
+ # Test root dir
+ if i.test_psa_api != "OFF":
+ overwrite_params["test_root_dir"] = "tests_psa_arch"
+ else:
+ overwrite_params["test_root_dir"] = "tests_reg"
+
+ # Overwrite commands for building TF-M image
+ build_cfg["spe_config_template"] %= overwrite_params
+ build_cfg["nspe_config_template"] %= overwrite_params
+ build_cfg["spe_cmake_build"] %= overwrite_params
+ build_cfg["nspe_cmake_build"] %= overwrite_params
+ build_cfg["post_build"] %= overwrite_params
return build_cfg