public
Last active

  • Download Gist
cml1-config.bbclass
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
# Consistent handling of the defconfig -> .config, with merge of config
# fragments using the same mechanism as busybox and linux-yocto.
#
# The functionality is split into a number of small functions to easier
# facilitate recipe alteration of the process, or filtering of the fragments
# to be merged. To filter the fragments in use, append to the pipeline (after
# the inherit of this class):
#
# merge_fragment_pipeline .= "| my_filter"
#
# Note: due to bitbake's use of set -e, the filter must return success (0).
 
 
DEFCONFIG ?= "${WORKDIR}/defconfig"
merge_fragment_pipeline = "cat"
 
do_prepare_config () {
if [ ! -e "${DEFCONFIG}" ]; then
bbfatal "Configuration file '${DEFCONFIG}' does not exist"
fi
 
install_config
merge_fragments ${B}/.config
}
 
do_prepare_config[dirs] = "${S}"
do_prepare_config[depends] += "kern-tools-native:do_populate_sysroot"
 
addtask prepare_config before do_configure after do_patch
 
install_config () {
cp -f ${DEFCONFIG} ${B}/.config
}
 
merge_fragments () {
list_fragments | ${merge_fragment_pipeline} >"${B}/fragments"
merge_config.sh -m "$1" $(cat "${B}/fragments")
}
 
list_fragments () {
cat <<END
${@"\n".join(src_config_fragments(d))}
END
}
 
def src_config_fragments(d):
sources = src_patches(d, True)
return [s for s in sources if s.endswith('.cfg')]

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.