diff options
Diffstat (limited to 'meta/classes/icecc.bbclass')
-rw-r--r-- | meta/classes/icecc.bbclass | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass index 9dbb4b1559..794e9930ad 100644 --- a/meta/classes/icecc.bbclass +++ b/meta/classes/icecc.bbclass @@ -47,7 +47,7 @@ HOSTTOOLS_NONFATAL += "icecc patchelf" # # A useful thing to do for testing Icecream changes locally is to add a # subversion in local.conf: -# ICECC_ENV_VERSION_append = "-my-ver-1" +# ICECC_ENV_VERSION:append = "-my-ver-1" ICECC_ENV_VERSION = "2" # Default to disabling the caret workaround, If set to "1" in local.conf, icecc @@ -97,7 +97,7 @@ ICECC_SYSTEM_CLASS_BL += "\ image \ " -def icecc_dep_prepend(d): +def get_icecc_dep(d): # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not # we need that built is the responsibility of the patch function / class, not # the application. @@ -105,7 +105,7 @@ def icecc_dep_prepend(d): return "icecc-create-env-native" return "" -DEPENDS_prepend += "${@icecc_dep_prepend(d)} " +DEPENDS:prepend = "${@get_icecc_dep(d)} " get_cross_kernel_cc[vardepsexclude] += "KERNEL_CC" def get_cross_kernel_cc(bb,d): @@ -352,24 +352,13 @@ set_icecc_env() { return fi - # Create symlinks to icecc in the recipe-sysroot directory - mkdir -p ${ICE_PATH} - if [ -n "${KERNEL_CC}" ]; then - compilers="${@get_cross_kernel_cc(bb,d)}" - else - compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++" - fi - for compiler in $compilers; do - ln -sf ${ICECC_BIN} ${ICE_PATH}/$compiler - done - ICECC_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}" ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}" # cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix ICECC_WHICH_AS="${@bb.utils.which(os.getenv('PATH'), 'as')}" if [ ! -x "${ICECC_CC}" -o ! -x "${ICECC_CXX}" ] then - bbwarn "Cannot use icecc: could not get ICECC_CC or ICECC_CXX" + bbnote "Cannot use icecc: could not get ICECC_CC or ICECC_CXX" return fi @@ -381,6 +370,26 @@ set_icecc_env() { return fi + # Create symlinks to icecc and wrapper-scripts in the recipe-sysroot directory + mkdir -p $ICE_PATH/symlinks + if [ -n "${KERNEL_CC}" ]; then + compilers="${@get_cross_kernel_cc(bb,d)}" + else + compilers="${HOST_PREFIX}gcc ${HOST_PREFIX}g++" + fi + for compiler in $compilers; do + ln -sf $ICECC_BIN $ICE_PATH/symlinks/$compiler + rm -f $ICE_PATH/$compiler + cat <<-__EOF__ > $ICE_PATH/$compiler + #!/bin/sh -e + export ICECC_VERSION=$ICECC_VERSION + export ICECC_CC=$ICECC_CC + export ICECC_CXX=$ICECC_CXX + $ICE_PATH/symlinks/$compiler "\$@" + __EOF__ + chmod 775 $ICE_PATH/$compiler + done + ICECC_AS="`${ICECC_CC} -print-prog-name=as`" # for target recipes should return something like: # /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as @@ -413,35 +422,34 @@ set_icecc_env() { export CCACHE_PATH="$PATH" export CCACHE_DISABLE="1" - export ICECC_VERSION ICECC_CC ICECC_CXX export PATH="$ICE_PATH:$PATH" bbnote "Using icecc path: $ICE_PATH" bbnote "Using icecc tarball: $ICECC_VERSION" } -do_configure_prepend() { +do_configure:prepend() { set_icecc_env } -do_compile_prepend() { +do_compile:prepend() { set_icecc_env } -do_compile_kernelmodules_prepend() { +do_compile_kernelmodules:prepend() { set_icecc_env } -do_install_prepend() { +do_install:prepend() { set_icecc_env } # IceCream is not (currently) supported in the extensible SDK ICECC_SDK_HOST_TASK = "nativesdk-icecc-toolchain" -ICECC_SDK_HOST_TASK_task-populate-sdk-ext = "" +ICECC_SDK_HOST_TASK:task-populate-sdk-ext = "" # Don't include IceCream in uninative tarball -ICECC_SDK_HOST_TASK_pn-uninative-tarball = "" +ICECC_SDK_HOST_TASK:pn-uninative-tarball = "" # Add the toolchain scripts to the SDK -TOOLCHAIN_HOST_TASK_append = " ${ICECC_SDK_HOST_TASK}" +TOOLCHAIN_HOST_TASK:append = " ${ICECC_SDK_HOST_TASK}" |