From d3d314b6d727e87c3a8c8dba91514c237dc68dd0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 24 May 2023 10:29:02 +0400 Subject: [PATCH] Add relevant ccache env when building package --- scale_build/packages/build.py | 4 +++- scale_build/packages/ccache.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scale_build/packages/build.py b/scale_build/packages/build.py index 8b9f707..8122b05 100644 --- a/scale_build/packages/build.py +++ b/scale_build/packages/build.py @@ -53,11 +53,13 @@ class BuildPackageMixin: self._build_impl() def _get_build_env(self): - return { + env = { **os.environ, **APT_ENV, **self.env, } + env.update(self.ccache_env(env)) + return env def _build_impl(self): shutil.copytree(self.source_path, self.source_in_chroot, dirs_exist_ok=True, symlinks=True) diff --git a/scale_build/packages/ccache.py b/scale_build/packages/ccache.py index 204e226..7835e97 100644 --- a/scale_build/packages/ccache.py +++ b/scale_build/packages/ccache.py @@ -18,3 +18,13 @@ class CCacheMixin: @property def ccache_in_chroot(self) -> str: return '/root/.ccache' + + def ccache_env(self, existing_env: dict) -> dict: + if not self.ccache_enabled: + return {} + + env = {'CCACHE_DIR': self.ccache_in_chroot} + if self.CCACHE_PATH not in existing_env['PATH'].split(':'): + env['PATH'] = f'{self.CCACHE_PATH}:{existing_env["PATH"]}' + + return env