diff --git a/cbuild.sh b/cbuild.sh index 320632e..94fced5 100644 --- a/cbuild.sh +++ b/cbuild.sh @@ -89,18 +89,30 @@ do else mkdir -p "$new_project_dir" fi - if ask_yn "create default cbuild project config?"; then - project_config_path="$new_project_dir/project.config" - cp "$CBUILD_INSTALL_DIR/default.config" "$project_config_path.temp" - myprint "Enter project name: " - read -r project_name - sed "s,\%PROJECT_NAME\%,$project_name,g" "$project_config_path.temp" > "$project_config_path" - rm "$project_config_path.temp" - myprint "${GREEN}created config at '$project_config_path'" - fi + + # create project config + project_config_path="$new_project_dir/project.config" + cp "$CBUILD_INSTALL_DIR/default.config" "$project_config_path.temp" + myprint "Enter project name: " + read -r project_name + sed "s,\%PROJECT_NAME\%,$project_name,g" \ + "$project_config_path.temp" > "$project_config_path" + rm "$project_config_path.temp" + myprint "${GREEN}created config at '$project_config_path'" + if ask_yn "Copy default .gitignore?"; then - cp "$CBUILD_INSTALL_DIR/.gitignore" "$new_project_dir/" + cp -v "$CBUILD_INSTALL_DIR/.gitignore" "$new_project_dir/" fi + + if ask_yn "Copy default .vscode launch tasks?"; then + new_project_vscode_dir="$new_project_dir/.vscode" + mkdir -p "$new_project_vscode_dir" + cp -vr "$CBUILD_INSTALL_DIR/default_vscode/"* "$new_project_vscode_dir/" + sed "s,\%PROJECT_NAME\%,$project_name,g" \ + "$new_project_vscode_dir/launch.json" > "$new_project_vscode_dir/launch.json.temp" + mv "$new_project_vscode_dir/launch.json.temp" "$new_project_vscode_dir/launch.json" + fi + exit 0 ;; *) diff --git a/default_vscode/.gitignore b/default_vscode/.gitignore new file mode 100644 index 0000000..e38da20 --- /dev/null +++ b/default_vscode/.gitignore @@ -0,0 +1 @@ +settings.json diff --git a/default_vscode/launch.json b/default_vscode/launch.json new file mode 100644 index 0000000..1c9bb89 --- /dev/null +++ b/default_vscode/launch.json @@ -0,0 +1,29 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "gdb_debug", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/bin/%PROJECT_NAME%", + "windows": { "program": "${workspaceFolder}/bin/%PROJECT_NAME%.exe" }, + "preLaunchTask": "build_exec_dbg", + "stopAtEntry": false, + "cwd": "${workspaceFolder}/bin", + "externalConsole": false, + "internalConsoleOptions": "neverOpen", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/default_vscode/tasks.json b/default_vscode/tasks.json new file mode 100644 index 0000000..17a453c --- /dev/null +++ b/default_vscode/tasks.json @@ -0,0 +1,31 @@ + +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build_exec_dbg", + "detail": "build project with debug symbols", + "type": "cppbuild", + "command": "bash", + "args": [ + "-c", + "cbuild build_exec_dbg" + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": ["$gcc"], + "group": { + "kind": "build" + }, + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true + } + } + ] + } \ No newline at end of file