Skip to content

Commit a16c783

Browse files
committed
add brief description of sln - vcxproj relation
1 parent 2744a4b commit a16c783

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

.sln/README.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,23 @@ Rider uses these files to resolve C++, provide code insight, and create/run buil
88
- gdext.vcxproj
99
- GDExtension C++ project. Rider reads compiler options/defines/includes and also calls scons to build the extension library (.dll/.so/.dylib).
1010

11-
- demo.vcxproj
12-
- Auxiliary project linking `demo` game contents. Rider plugins for Godot support provide language support, run configurations and other features for such projects.
13-
14-
- targets/JetBrains.Rider.Cpp.targets
11+
- targets/JetBrains.Rider.Cpp.targets (for non-Windows)
1512
- MSBuild target that resolves C++ standard library headers.
1613

17-
- targets/nmake.substitution.props (similar to the one in the Godot Engine)
18-
- Used when MSBuild doesn't contain MSVC targets; substitutes Build/Rebuild/Clean targets and passes correct include/lib paths.
14+
- targets/nmake.substitution.props (for non-Windows)
15+
- Substitutes Build/Rebuild/Clean targets.
1916
- Reference: [godot/misc/msvs/nmake.substitution.props](https://github.com/godotengine/godot/blob/master/misc/msvs/nmake.substitution.props)
2017

21-
Notes: Rider uses MSBuild to read configurations/props/items/targets. Files are MSBuild/VS-compatible but mainly meant for Rider’s C++ support.
18+
19+
Sln to vcxproj relation:
20+
- The .sln file lists all Configuration|Platform pairs in SolutionConfigurationPlatforms (e.g., Debug|linux-x86_64).
21+
- The same pairs are mapped to the gdext project in ProjectConfigurationPlatforms, so the project gets the exact Configuration and Platform selected in the IDE.
22+
- In gdext.vcxproj, $(Configuration) toggles Debug/Release props, while $(Platform) is matched by Condition blocks to set GodotPlatform and Arch.
23+
- Those values feed the NMake commands, which call scons with platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate).
24+
- Result: choosing a Solution configuration in Rider/VS selects the matching vcxproj config and builds the right target for your OS/arch.
25+
- sln and vcxproj are meant to be manually edited in Rider.
26+
27+
Notes:
28+
- Full `godot-cpp-template` folder can be linked by context menu of the solution root (Add | Existing folder)
29+
- Auxiliary project linking `demo` game contents can be added optionally in the `demo` folder. Rider plugins for Godot would provide language support, run configurations and other features for such projects.
30+
- Theoretically there is an option to use non-msvc toolchain on Windows, but there are known problems with it in Rider debugger [RIDER-106816], so for now for this project on Windows MSBuild with MSVC toolchain is a requirement to work in Rider.

0 commit comments

Comments
 (0)