summaryrefslogtreecommitdiff
path: root/zephyr/zmake/zmake/zmake.py
diff options
context:
space:
mode:
authorJack Rosenthal <jrosenth@chromium.org>2021-08-18 14:10:56 -0600
committerCommit Bot <commit-bot@chromium.org>2021-08-19 21:04:09 +0000
commit10809eb023d475681b45863e68d906fae4667eda (patch)
tree1e2b780bc7b4da301bb2ac3b50ffdf34916f9c7f /zephyr/zmake/zmake/zmake.py
parentd03b7701386d9a48f445d1b3540a71e3d58695ba (diff)
downloadchrome-ec-10809eb023d475681b45863e68d906fae4667eda.tar.gz
zephyr: pull in the version string from zmake
Zmake computes a version string and stores it in FRID/FWID, but this was never plumbed all the way out into the version functionality in the OS, which was reporting the version generated by util/getversion.sh. Add a mechanism to generate the version header from zmake and replace the getversion.sh generation with that. BUG=b:184832251 BRANCH=none TEST=provided unit tests TEST=get this version string on posix-ec: posix-ec_v2.6.73347-cmsis:c3bd20,ec:c814a9,hal_stm32:f8ff8d,os:efe095 2021-08-18 14:10:18 jrosenth@germania Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: Idec1c5f8b5f014126706e4fdc1f3d158edf40a63 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3104625 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'zephyr/zmake/zmake/zmake.py')
-rw-r--r--zephyr/zmake/zmake/zmake.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/zephyr/zmake/zmake/zmake.py b/zephyr/zmake/zmake/zmake.py
index 45e23fd904..0d3dbb6450 100644
--- a/zephyr/zmake/zmake/zmake.py
+++ b/zephyr/zmake/zmake/zmake.py
@@ -235,6 +235,7 @@ class Zmake:
self.logger.info("Clearing old build directory %s", build_dir)
shutil.rmtree(build_dir)
+ generated_include_dir = build_dir / "include"
base_config = zmake.build_config.BuildConfig(
environ_defs={"ZEPHYR_BASE": str(zephyr_base), "PATH": "/usr/bin"},
cmake_defs={
@@ -242,6 +243,7 @@ class Zmake:
"SYSCALL_INCLUDE_DIRS": str(
self.module_paths["ec"] / "zephyr" / "include" / "drivers"
),
+ "ZMAKE_INCLUDE_DIR": str(generated_include_dir),
},
)
@@ -274,6 +276,8 @@ class Zmake:
if not build_dir.exists():
build_dir = build_dir.mkdir()
+ if not generated_include_dir.exists():
+ generated_include_dir.mkdir()
processes = []
self.logger.info("Building %s in %s.", project_dir, build_dir)
for build_name, build_config in project.iter_builds():
@@ -375,6 +379,14 @@ class Zmake:
zmake.modules.locate_from_directory(build_dir / "modules"),
)
+ # The version header needs to generated during the build phase
+ # instead of configure, as the tree may have changed since
+ # configure was run.
+ zmake.version.write_version_header(
+ version_string,
+ build_dir / "include" / "ec_version.h",
+ )
+
for build_name, build_config in project.iter_builds():
with self.jobserver.get_job():
dirs[build_name] = build_dir / "build-{}".format(build_name)