diff options
Diffstat (limited to 'meta/classes/ccache.bbclass')
-rw-r--r-- | meta/classes/ccache.bbclass | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass index b5457359ca..262db6672c 100644 --- a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@ -1,4 +1,10 @@ # +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +# # Usage: # - Enable ccache # Add the following line to a conffile such as conf/local.conf: @@ -22,6 +28,11 @@ # be shared between different builds. CCACHE_TOP_DIR ?= "${TMPDIR}/ccache" +# ccache-native and cmake-native have a circular dependency +# that affects other native recipes, but not all. +# Allows to use ccache in specified native recipes. +CCACHE_NATIVE_RECIPES_ALLOWED ?= "" + # ccahe removes CCACHE_BASEDIR from file path, so that hashes will be the same # in different builds. export CCACHE_BASEDIR ?= "${TMPDIR}" @@ -33,6 +44,10 @@ export CCACHE_CONFIGPATH ?= "${COREBASE}/meta/conf/ccache.conf" export CCACHE_DIR ?= "${CCACHE_TOP_DIR}/${MULTIMACH_TARGET_SYS}/${PN}" +# Fixed errors: +# ccache: error: Failed to create directory /run/user/0/ccache-tmp: Permission denied +export CCACHE_TEMPDIR ?= "${CCACHE_DIR}/tmp" + # We need to stop ccache considering the current directory or the # debug-prefix-map target directory to be significant when calculating # its hash. Without this the cache would be invalidated every time @@ -44,9 +59,9 @@ python() { Enable ccache for the recipe """ pn = d.getVar('PN') - # quilt-native doesn't need ccache since no c files - if not (pn in ('ccache-native', 'quilt-native') or - bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))): + if (pn in d.getVar('CCACHE_NATIVE_RECIPES_ALLOWED') or + not (bb.data.inherits_class("native", d) or + bb.utils.to_boolean(d.getVar('CCACHE_DISABLE')))): d.appendVar('DEPENDS', ' ccache-native') d.setVar('CCACHE', 'ccache ') } |