diff --git a/appends/oe-core/gcc-cross%.bbappend b/appends/oe-core/gcc-cross%.bbappend new file mode 100644 index 0000000..713df52 --- /dev/null +++ b/appends/oe-core/gcc-cross%.bbappend @@ -0,0 +1 @@ +inherit instant-native-sysroot diff --git a/appends/oe-core/gdb-cross%.bbappend b/appends/oe-core/gdb-cross%.bbappend new file mode 100644 index 0000000..713df52 --- /dev/null +++ b/appends/oe-core/gdb-cross%.bbappend @@ -0,0 +1 @@ +inherit instant-native-sysroot diff --git a/classes/instant-native-sysroot.bbclass b/classes/instant-native-sysroot.bbclass new file mode 100644 index 0000000..52da64b --- /dev/null +++ b/classes/instant-native-sysroot.bbclass @@ -0,0 +1,32 @@ +#------------------------------------------------------------------------------ +# class for instant native sysroot +#------------------------------------------------------------------------------ + +inherit utils + +# This is where instant sysroot is installed into +INSTANT_SYSROOT_PATH ??= "${TMPDIR}/sysroot-instant-native" + +do_prepare_recipe_sysroot[postfuncs] += "${INSTANTSYSROOTFUNC}" +INSTANTSYSROOTFUNC = "" +INSTANTSYSROOTFUNC_class-native = "instant_sysroot_copy" +INSTANTSYSROOTFUNC_class-cross = "instant_sysroot_copy" + +instant_sysroot_copy () { + mkdir -p ${INSTANT_SYSROOT_PATH} + hardlinkdir ${RECIPE_SYSROOT_NATIVE} ${INSTANT_SYSROOT_PATH} +} + +do_populate_sysroot[postfuncs] += "${INSTANTPOPULATE}" +INSTANTPOPULATE = "" +INSTANTPOPULATE_class-native = "instant_populate_sysroot" +INSTANTPOPULATE_class-cross = "instant_populate_sysroot" + +instant_populate_sysroot () { + for executable in `find ${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE} -type f`; do + alignedpath=`echo ${executable} | sed 's:${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}::'` + targetdir=`dirname ${INSTANT_SYSROOT_PATH}/${alignedpath}` + mkdir -p "$targetdir" + cp -fl "${executable}" "${targetdir}" + done +} diff --git a/classes/instant-remote-debug.bbclass b/classes/instant-remote-debug.bbclass index fcfb306..989d808 100644 --- a/classes/instant-remote-debug.bbclass +++ b/classes/instant-remote-debug.bbclass @@ -35,10 +35,10 @@ # 3. Set sysroot (see INSTANT_REMOTE_PATH below) e.g: # /sysroot-instant-remote # 4. Select compilers (it is not necessary for debug but without QTCreator won't enable Kit) for C and C++ e.g: -# C: '/sysroots-components/x86_64/gcc-cross-arm/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gcc' -# C++: '/sysroots-components/x86_64/gcc-cross-arm/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-g++' +# C: '/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gcc' +# C++: '/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-g++' # 5. Select debugger e.g: -# GDB: '/sysroots-components/x86_64/gdb-cross-arm/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gdb' +# GDB: '/sysroot-instant-native/usr/bin/arm-mortsgna-linux-gnueabi/arm-mortsgna-linux-gnueabi-gdb' # 6. Select 'OK' in Options dialog -> 'Start Debugger' should be back on top # * Make sure 'OE' Kit is selected # * Browse for executable e.g '/sysroot-instant-remote/usr/bin/thunar'