aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--.vscode/launch.json26
-rw-r--r--.vscode/tasks.json14
-rw-r--r--README.md16
-rw-r--r--SConstruct3
5 files changed, 61 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index 94bcd32..86abf97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,14 @@
*.out
*.app
+# clangd
+.cache/*
+
+# VSCode
+.vscode/*
+!.vscode/launch.json
+!.vscode/tasks.json
+
# Godot 4+ specific ignores
.godot/
game/bin/openvic2/*
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..2cabcf6
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,26 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "cppdbg",
+ "request": "launch",
+ "name": "Debug",
+ "program": "/bin/godot4", // TODO: Godot environment variable?
+ "args": [],
+ "cwd": "${workspaceFolder}/game",
+ "preLaunchTask": "dev_build",
+ "windows": {
+ "type": "cppvsdb",
+ "request": "launch",
+ "name": "Debug",
+ "program": "/bin/godot4", // TODO: Common Godot 4 Windows install or Godot environment variable?
+ "args": [],
+ "cwd": "${workspaceFolder}\\game",
+ "preLaunchTask": "dev_build",
+ }
+ }
+ ]
+} \ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 0260cd5..f8bcc92 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -15,6 +15,20 @@
"problemMatcher": "$msCompile"
},
{
+ "label": "dev_build",
+ "group": "build",
+ "type": "shell",
+ "command": "scons",
+ "args": [
+ // enable for debugging with breakpoints
+ "dev_build=yes"
+ ],
+ "dependsOn": [
+ "build"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
"label": "clean",
"group": "build",
"type": "shell",
diff --git a/README.md b/README.md
index 350f486..78d9eb1 100644
--- a/README.md
+++ b/README.md
@@ -14,12 +14,18 @@ Main Repo for the OpenVic2 Project
## Project Export
1. Build the extension with `scons` or `scons target=template_debug`. (or `scons target=template_release` for release)
-1. Open `game/project.godot` with Godot 4 Beta 14.
-2. Click `Project` at the top left, click `Export`.
-3. If you do not have the templates, you must download the templates, there is highlighted white text at the bottom of the Export subwindow that opens up the template manager for you to download.
-4. Click `Export All`:
+2. Open `game/project.godot` with Godot 4 Beta 14.
+3. Click `Project` at the top left, click `Export`.
+4. If you do not have the templates, you must download the templates, there is highlighted white text at the bottom of the Export subwindow that opens up the template manager for you to download.
+5. Click `Export All`:
* If you built with the default or debug target you must export with `Debug`.
* If you built with the release target you must export `Release`.
-5. Files will be found in platform specific directories in `game/export`:
+6. Files will be found in platform specific directories in `game/export`:
* On Windows run `game/export/Windows/OpenVic2.exe`.
* On Linux x86_64 run `game/export/Linux-x86_64/OpenVic2.sh`.
+
+## Extension Debugging
+1. If in a clean build, build the extension with `scons`.
+2. Build with `scons dev_build=yes`.
+3. [Setup your IDE](https://godotengine.org/qa/108346/how-can-i-debug-runtime-errors-of-native-library-in-godot) so your Command/Host/Launching App is your Godot 4 binary and the Working Directory is the `game` directory.
+4. Start the debugger.
diff --git a/SConstruct b/SConstruct
index 1f0703a..cadc5d3 100644
--- a/SConstruct
+++ b/SConstruct
@@ -24,8 +24,9 @@ if env["platform"] == "macos":
source=sources,
)
else:
+ suffix = ".{}.{}.{}".format(env["platform"], env["target"], env["arch"])
library = env.SharedLibrary(
- "game/bin/openvic2/libopenvic2{}{}".format(env["suffix"], env["SHLIBSUFFIX"]),
+ "game/bin/openvic2/libopenvic2{}{}".format(suffix, env["SHLIBSUFFIX"]),
source=sources,
)