|
@@ -0,0 +1,93 @@
|
|
|
+#!/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."
|