aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-07-14 11:20:32 +0000
committerFelix Morgner <felix.morgner@ost.ch>2025-07-14 11:20:32 +0000
commit116f9332a206767c45095950f09f7c7447b561cf (patch)
treec0d124784ba2bb4f83c9aa87868d0dfdde894c22
parentc67b4843f6defe676831d023a8434d84f99db532 (diff)
downloadteachos-116f9332a206767c45095950f09f7c7447b561cf.tar.xz
teachos-116f9332a206767c45095950f09f7c7447b561cf.zip
ide: improve support for vscodium
-rw-r--r--.devcontainer/x86-64/devcontainer.json3
-rw-r--r--.gitignore1
-rw-r--r--.vscode/launch.json31
-rw-r--r--.vscode/settings.json8
-rw-r--r--.vscode/tasks.json4
-rw-r--r--CMakeLists.txt1
-rw-r--r--CMakePresets.json3
7 files changed, 21 insertions, 30 deletions
diff --git a/.devcontainer/x86-64/devcontainer.json b/.devcontainer/x86-64/devcontainer.json
index 0d77167..a317a22 100644
--- a/.devcontainer/x86-64/devcontainer.json
+++ b/.devcontainer/x86-64/devcontainer.json
@@ -5,8 +5,9 @@
"vscode": {
"extensions": [
"basdp.language-gas-x86",
+ "llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cmake-tools",
- "ms-vscode.cpptools",
+ "webfreak.debug",
"zixuanwang.linkerscript"
]
}
diff --git a/.gitignore b/.gitignore
index 8a5ffb8..d0c36aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
/build
/.conan/install
/docs/_build
+/.cache
# Conan Generated CMake presets
CMakeUserPresets.json
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 4dc9fc6..e522ad5 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -3,29 +3,18 @@
"configurations": [
{
"name": "(gdb) QEMU",
- "miDebuggerPath": "x86_64-pc-elf-gdb",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/build/bin/${command:cmake.buildType}/_kernel",
- "MIMode": "gdb",
- "miDebuggerServerAddress": "localhost:1234",
+ "type": "gdb",
+ "request": "attach",
+ "remote": true,
+ "target": "localhost:1234",
+ "valuesFormatting": "prettyPrinters",
+ "gdbpath": "x86_64-pc-elf-gdb",
"cwd": "${workspaceFolder}",
- "stopAtEntry": true,
"preLaunchTask": "QEMU (gdb)",
- "setupCommands": [
- {
- "description": "Enable pretty-printing for gdb",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "Load file",
- "text": "-file-exec-and-symbols ${workspaceFolder}/build/bin/${command:cmake.buildType}/_kernel"
- },
- {
- "description": "Set breakpoint on _start",
- "text": "-break-insert _start"
- }
+ "executable": "${command:cmake.buildDirectory}/bin/${command:cmake.buildType}/_kernel",
+ "autorun": [
+ "-enable-pretty-printing",
+ "-break-insert _start"
]
}
]
diff --git a/.vscode/settings.json b/.vscode/settings.json
index f0f6745..6178035 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,10 +2,10 @@
"cmake.useCMakePresets": "always",
"cmake.options.statusBarVisibility": "visible",
- "C_Cpp.default.cppStandard": "c++20",
- "C_Cpp.autoAddFileAssociations": false,
- "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
- "C_Cpp.formatting": "clangFormat",
+ "clangd.arguments": [
+ "--compile-commands-dir=${workspaceFolder}/build",
+ "--query-driver=/opt/toolchain/bin/x86_64-pc-elf-g++"
+ ],
"[cpp]": {
"editor.formatOnSave": true,
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 5e8c23f..3b5ae9f 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -17,7 +17,7 @@
"-d",
"int,cpu_reset",
"-cdrom",
- "${workspaceFolder}/build/teachos-${command:cmake.buildType}.iso"
+ "${command:cmake.buildDirectory}/teachos-${command:cmake.buildType}.iso"
],
"isBackground": true,
"presentation": {
@@ -52,7 +52,7 @@
"-display",
"curses",
"-cdrom",
- "${workspaceFolder}/build/teachos-${command:cmake.buildType}.iso"
+ "${command:cmake.buildDirectory}/teachos-${command:cmake.buildType}.iso"
],
"isBackground": true,
"presentation": {
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 35cfd65..c0e45f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,7 +75,6 @@ add_compile_options(
"$<$<CXX_COMPILER_ID:GNU>:-Wextra>"
"$<$<CXX_COMPILER_ID:GNU>:-Werror>"
"$<$<CXX_COMPILER_ID:GNU>:-pedantic-errors>"
- "$<$<CXX_COMPILER_ID:GNU>:-fsanitize=address,leak,bounds,alignment,return,integer-divide-by-zero,vla-bound,null,enum,pointer-overflow>"
)
#[============================================================================[
diff --git a/CMakePresets.json b/CMakePresets.json
index ecac6fb..b01208a 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -5,9 +5,10 @@
"name": "default",
"binaryDir": "${sourceDir}/build",
"generator": "Ninja Multi-Config",
+ "toolchainFile": "${workspaceFolder}/cmake/Platforms/x86_64.cmake",
"cacheVariables": {
"CMAKE_CONFIGURATION_TYPES": "Debug;MinSizeRel",
- "CMAKE_TOOLCHAIN_FILE": "cmake/Platforms/x86_64.cmake"
+ "CMAKE_EXPORT_COMPILE_COMMANDS": "YES"
}
}
],