blob: b8642780d57e2a5183bdf60e685038ae24e02c37 [file] [log] [blame]
#!/bin/sh
usage() {
echo "$0 <OEINIT> <BUILDDIR>"
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 <<EOMsettings > "$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 <<EOMextensions > "$VSCODE_EXTENSIONS"
{
"recommendations": [
"yocto-project.yocto-bitbake"
]
}
EOMextensions
echo "You had no $VSCODEDIR configuration."
echo "These configuration files have therefore been created for you."