mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
icecc: Export ICECC_CC and friends via wrapper-script
By exporting ICECC_CC, ICECC_CXX, and ICECC_VERSION in a wrapper-script,
and putting this wrapper-script in the PATH, the Makefiles generated by CMake or
the autotools are able to function correctly outside of bitbake.
This provides a convenient developer workflow in which the
modify-compile-unittest cycle can happen directly in the ${B} directory.
The `rm -f $ICE_PATH/$compiler` line is transitional,
and can go at some later date (October 2020 or later, perhaps).
(From OE-Core rev: 0f47d4ef50d6b0732ac40f7ede31f554a757864c)
Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 40d74cb1d0ddce930267e49764cacb263b244091)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
26d04d5b11
commit
bfd2ab3d67
+20
-12
@@ -356,17 +356,6 @@ set_icecc_env() {
|
|||||||
return
|
return
|
||||||
fi
|
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_CC="${@icecc_get_and_check_tool(bb, d, "gcc")}"
|
||||||
ICECC_CXX="${@icecc_get_and_check_tool(bb, d, "g++")}"
|
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
|
# cannot use icecc_get_and_check_tool here because it assumes as without target_sys prefix
|
||||||
@@ -385,6 +374,26 @@ set_icecc_env() {
|
|||||||
return
|
return
|
||||||
fi
|
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`"
|
ICECC_AS="`${ICECC_CC} -print-prog-name=as`"
|
||||||
# for target recipes should return something like:
|
# 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
|
# /OE/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm920tt-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.8.2/as
|
||||||
@@ -417,7 +426,6 @@ set_icecc_env() {
|
|||||||
export CCACHE_PATH="$PATH"
|
export CCACHE_PATH="$PATH"
|
||||||
export CCACHE_DISABLE="1"
|
export CCACHE_DISABLE="1"
|
||||||
|
|
||||||
export ICECC_VERSION ICECC_CC ICECC_CXX
|
|
||||||
export PATH="$ICE_PATH:$PATH"
|
export PATH="$ICE_PATH:$PATH"
|
||||||
|
|
||||||
bbnote "Using icecc path: $ICE_PATH"
|
bbnote "Using icecc path: $ICE_PATH"
|
||||||
|
|||||||
Reference in New Issue
Block a user