123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/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."
|