#!/bin/sh usage() { echo "$0 " echo " OEINIT: path to directory where the .vscode folder is" echo " BUILDDIR: directory passed to the oe-init-setup-env script" } if [ "$#" -ne 2 ]; then usage exit 1 fi OEINIT=$(readlink -f "$1") BUILDDIR=$(readlink -f "$2") VSCODEDIR=$OEINIT/.vscode if [ ! -d "$OEINIT" ] || [ ! -d "$BUILDDIR" ]; then echo "$OEINIT and/or $BUILDDIR directories are not present." exit 1 fi VSCODE_SETTINGS=$VSCODEDIR/settings.json ws_builddir="$(echo "$BUILDDIR" | sed -e "s|$OEINIT|\${workspaceFolder}|g")" # If BUILDDIR is in scope of VSCode ensure VSCode does not try to index the build folder. # This would lead to a busy CPU and finally to an OOM exception. mkdir -p "$VSCODEDIR" cat < "$VSCODE_SETTINGS" { "bitbake.pathToBitbakeFolder": "\${workspaceFolder}/bitbake", "bitbake.pathToEnvScript": "\${workspaceFolder}/oe-init-build-env", "bitbake.pathToBuildFolder": "$ws_builddir", "bitbake.commandWrapper": "", "bitbake.workingDirectory": "\${workspaceFolder}", "files.exclude": { "**/.git/**": true, "**/_build/**": true, "**/buildhistory/**": true, "**/cache/**": true, "**/downloads/**": true, "**/node_modules/**": true, "**/oe-logs/**": true, "**/oe-workdir/**": true, "**/sstate-cache/**": true, "**/tmp*/**": true, "**/workspace/attic/**": true, "**/workspace/sources/**": true }, "files.watcherExclude": { "**/.git/**": true, "**/_build/**": true, "**/buildhistory/**": true, "**/cache/**": true, "**/downloads/**": true, "**/node_modules/**": true, "**/oe-logs/**": true, "**/oe-workdir/**": true, "**/sstate-cache/**": true, "**/tmp*/**": true, "**/workspace/attic/**": true, "**/workspace/sources/**": true }, "python.analysis.exclude": [ "**/_build/**", "**/.git/**", "**/buildhistory/**", "**/cache/**", "**/downloads/**", "**/node_modules/**", "**/oe-logs/**", "**/oe-workdir/**", "**/sstate-cache/**", "**/tmp*/**", "**/workspace/attic/**", "**/workspace/sources/**" ] } EOMsettings # Ask the user if the yocto-bitbake extension should be installed VSCODE_EXTENSIONS=$VSCODEDIR/extensions.json cat < "$VSCODE_EXTENSIONS" { "recommendations": [ "yocto-project.yocto-bitbake" ] } EOMextensions echo "You had no $VSCODEDIR configuration." echo "These configuration files have therefore been created for you."