94 lines
2.6 KiB
Plaintext
94 lines
2.6 KiB
Plaintext
|
|
#!/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."
|