poky/scripts
Adrian Freihofer 3ccb4d8ab1 devtool: new ide-sdk plugin
The new devtool ide plugin provides the eSDK and configures an IDE to
work with the eSDK. In doing so, bitbake should be used to generate the
IDE configuration and update the SDK, but it should no longer play a
role when working on the source code. The work on the source code should
take place exclusively with the IDE, which, for example, calls cmake
directly to compile the code and execute the unit tests from the IDE.

The plugin works for recipes inheriting the cmake or the meson bbclass.
Support for more programming languages and build tools may be added in
the future.

There are various IDEs that can be used for the development of embedded
Linux applications. Therefore, devtool ide-sdk, like devtool itself,
supports plugins to support IDEs.
VSCode is the default IDE for this first implementation. Additionally,
some generic helper scripts can be generated with --ide none instead of
a specific IDE configuration. This can be used for any IDE that
supports calling some scripts.

There are two different modes supported:

- devtool modify mode (default):
  devtool ide-sdk configures the IDE to manage the build-tool used by the
  recipe (e.g. cmake or meson). The workflow looks like:
    $ devtool modify a-recipe
    $ devtool ide-sdk a-recipe a-image
    $ code "$BUILDDIR/workspace/sources/a-recipe"
    Work in VSCode, after installing the proposed plugins

  Deploying the artifacts to the target device and running a remote
  debugging session is supported as well.
  This first implementation still calls bitbake and devtool to copy the
  binary artifacts to the target device. In contrast to compiling,
  installation and copying must be performed with the file rights of the
  target device. The pseudo tool must be used for this. Therefore
  bitbake -c install a-recipe && devtool deploy-target a-recipe
  are called by the IDE for the deployment. This might be improved later
  on.

  Executing the unit tests out of the IDE is supported via Qemu user if
  the build tool supports that. CMake (if cmake-qemu.bbclass is
  inherited) and Meson support Qemu usermode.

- Shared sysroots mode: bootstraps the eSDK with shared sysroots for
  all the recipes passed to devtool ide-sdk. This is basically a wrapper
  for bitbake meta-ide-support && bitbake build-sysroots. The workflow
  looks like:
    $ devtool ide-sdk --share-sysroots a-recipe another-recipe
    vscode where/the/sources/are
  If the IDE and the build tool support it, the IDE gets configured to
  offer the cross tool-chain provided by the eSDK. In case of VSCode and
  cmake a cmake-kit is generated. This offers to use the cross
  tool-chain from the UI of the IDE.

Many thanks to Enguerrand de Ribaucourt for testing and bug fixing.

(From OE-Core rev: 3f8af7a36589cd05fd07d16cbdd03d6b3dff1f82)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-18 07:34:42 +00:00
..
contrib scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
cross-intercept native/cross: Add ar wrapper for determinism 2021-11-26 17:01:08 +00:00
esdk-tools scripts/esdk-tools: use a dedicated, static directory for esdk tools 2023-11-05 08:44:06 +00:00
lib devtool: new ide-sdk plugin 2024-02-18 07:34:42 +00:00
native-intercept native/cross: Add ar wrapper for determinism 2021-11-26 17:01:08 +00:00
nativesdk-intercept nativesdk-intercept: Fix bad intercept chgrp/chown logic 2023-09-08 22:59:47 +01:00
postinst-intercepts update_gtk_icon_cache: Fix for GTK4-only builds 2023-12-08 16:58:34 +00:00
pybootchartgui pybootchartgui: also match do_compile and do_configure subtasks 2023-09-09 22:14:41 +01:00
tiny scripts/tiny/ksize: Fix for more recent kernels 2020-05-09 18:57:21 +01:00
autobuilder-worker-prereq-tests scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
bblock scripts/bblock: add a script to lock/unlock recipes 2023-10-09 15:58:47 +01:00
bitbake-prserv-tool scripts/bitbake-prserv-tool: Fix to work with memres bitbake 2023-01-29 19:24:22 +00:00
buildall-qemu buildall-qemu: automate build testing for qemu MACHINEs 2020-04-24 14:10:08 +01:00
buildhistory-collect-srcrevs buildhistory-collect-srcrevs: Adapt to the new variable override syntax 2021-08-26 22:09:44 +01:00
buildhistory-diff scripts/buildhistory-diff: drop use of distutils 2022-01-04 23:14:05 +00:00
buildstats-diff scripts: fix buildstats diff/summary hard bound to host python3 2023-05-05 11:07:26 +01:00
buildstats-summary scripts: fix buildstats diff/summary hard bound to host python3 2023-05-05 11:07:26 +01:00
combo-layer scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
combo-layer-hook-default.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
combo-layer.conf.example combo-layer: partial import for '--history init' 2015-03-20 11:21:24 +00:00
cp-noerror scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
create-pull-request scripts/create-pull-request: update URLs to git repositories 2023-08-14 12:51:21 +01:00
crosstap scripts: Various typo/grammar/punctuation fixes 2022-03-02 18:43:24 +00:00
devtool devtool: support plugins with plugins 2024-02-02 10:38:28 +00:00
gen-lockedsig-cache scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
gen-site-config meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
git scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
install-buildtools install-buildtools: support buildtools-make-tarball and update to 4.1 2022-10-25 13:42:02 +01:00
multilib_header_wrapper.h multilib_header_wrapper: Drop using __MHWORDSIZE 2020-05-18 06:33:36 +01:00
oe-build-perf-report oe-build-perf-report: Ensure correct data is shown for multiple branch options 2020-10-10 13:37:56 +01:00
oe-build-perf-test scripts/oe-build-perf-test: Use python3 from the environment 2019-12-15 09:10:46 +00:00
oe-buildenv-internal oe-buildenv-internal: update required Python version 2023-08-21 16:15:35 +01:00
oe-check-sstate scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
oe-debuginfod scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-depends-dot oe-depends-dot: improve '-w' behavior 2023-09-02 18:23:05 +01:00
oe-find-native-sysroot scripts/oe-find-native-sysroot: use bitbake-getvar 2023-09-07 07:53:51 +01:00
oe-git-archive meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
oe-git-proxy oe-git-proxy: fix dash "Bad substitution" 2019-09-16 23:02:44 +01:00
oe-gnome-terminal-phonehome scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-pkgdata-browser scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-pkgdata-browser.glade oe-pkgdata-browser: Make the window 1200x900 by default 2020-01-10 21:18:22 +00:00
oe-pkgdata-util scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
oe-publish-sdk scripts/oe-publish-sdk: Disable git gc to avoid build errors 2021-09-23 13:49:11 +01:00
oe-pylint scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-run-native scripts: oe-run-native, fix *-native directories 2021-01-15 13:39:25 +00:00
oe-selftest oe-selftest: Implement console 'keepalive' output 2019-09-06 08:15:45 +01:00
oe-setup-builddir scripts/oe-setup-builddir: copy conf-notes.txt to build dir 2023-07-10 11:36:34 +01:00
oe-setup-layers scripts/oe-setup-layers: Update how to determine if directory is git repo 2023-10-06 11:51:11 +01:00
oe-test meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
oe-time-dd-test.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oe-trim-schemas scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
oepydevshell-internal.py scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
opkg-query-helper.py scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
patchtest patchtest: Fix grammar in log output 2024-02-16 15:14:26 +00:00
patchtest-get-branch scripts: python 3.12 regex 2024-02-13 13:51:41 +00:00
patchtest-get-series patchtest: update SPDX identifiers 2023-10-17 22:53:30 +01:00
patchtest-send-results patchtest-send-results: add --debug option 2024-02-16 15:14:26 +00:00
patchtest-setup-sharedir patchtest: update SPDX identifiers 2023-10-17 22:53:30 +01:00
patchtest.README patchtest.README: update mailing list 2024-02-06 15:01:16 +00:00
pythondeps scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
README
recipetool meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
relocate_sdk.py relocate_sdk.py: ensure interpreter size error causes relocation to fail 2022-08-08 15:44:21 +01:00
resulttool meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
rootfs_rpm-extract-postinst.awk
rpm2cpio.sh rpm2cpio.sh: update to the last 4.x version 2023-06-21 18:38:25 +01:00
runqemu runqemu: match .rootfs. in addition to -image- for rootfs 2024-01-04 23:47:51 +00:00
runqemu-addptable2image image_types/runqemu-addptable2image: Fix a minor typo 2022-05-15 08:57:15 +01:00
runqemu-export-rootfs qemu-helper: depend on unfs3 and pseudo directly 2022-11-29 10:29:58 +00:00
runqemu-extract-sdk qemu-helper: depend on unfs3 and pseudo directly 2022-11-29 10:29:58 +00:00
runqemu-gen-tapdevs runqemu-gen-tapdevs: remove only our taps 2023-06-24 12:21:48 +01:00
runqemu-ifdown runqemu-ifdown: catch up with ifup 2023-06-28 07:56:34 +01:00
runqemu-ifup runqemu: Fix automated call to runqemu-ifup 2023-06-28 07:56:34 +01:00
runqemu.README scripts/runqemu.README: fix typos and trailing whitespaces 2022-08-31 12:25:44 +01:00
send-error-report meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
send-pull-request meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
sstate-cache-management.py sstate-cache-management: fix regex for 'sigdata' stamp files 2024-02-17 18:19:19 +00:00
sstate-diff-machines.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
sstate-sysroot-cruft.sh scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
sysroot-relativelinks.py scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
task-time scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
test-reexec meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
test-remote-image meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
verify-bashisms scripts: Add copyright statements to files without one 2022-08-12 11:58:01 +01:00
wic wic: fix WicError message 2022-06-22 22:40:28 +01:00
yocto_testresults_query.py scripts/yocto_testresults_query: add option to change display limit 2023-10-23 10:49:19 +01:00
yocto-check-layer yocto-check-layer: Allow OE-Core to be tested 2022-12-09 13:18:41 +00:00
yocto-check-layer-wrapper meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00

This directory contains Various useful scripts for working with OE builds