summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-07-22 17:30:25 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-07-22 17:30:25 +0200
commit4e5ed0bbfb56f0a71eb61c868f965476652c23df (patch)
tree9850388da22aecf1de7cb66af2075e3ee876160f
parent84af5c1c46d2fa78816268c86d4f2e08e354b11c (diff)
parent8a24f44fe589dce4e88df8214ae96a0f4e16233b (diff)
downloadredot-engine-4e5ed0bbfb56f0a71eb61c868f965476652c23df.tar.gz
Merge pull request #93753 from Repiteo/scons/visual-studio-fixes
SCons: Fix output with `vsproj=yes`
-rw-r--r--SConstruct2
-rw-r--r--methods.py15
-rw-r--r--misc/msvs/vcxproj.filters.template5
3 files changed, 15 insertions, 7 deletions
diff --git a/SConstruct b/SConstruct
index f3331f3b0d..7deafa7ecd 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1057,9 +1057,9 @@ SConscript("platform/" + env["platform"] + "/SCsub") # Build selected platform.
# Microsoft Visual Studio Project Generation
if env["vsproj"]:
+ methods.generate_cpp_hint_file("cpp.hint")
env["CPPPATH"] = [Dir(path) for path in env["CPPPATH"]]
methods.generate_vs_project(env, ARGUMENTS, env["vsproj_name"])
- methods.generate_cpp_hint_file("cpp.hint")
# Check for the existence of headers
conf = Configure(env)
diff --git a/methods.py b/methods.py
index b0f7df9ab2..c725501fd9 100644
--- a/methods.py
+++ b/methods.py
@@ -678,6 +678,17 @@ def generate_cpp_hint_file(filename):
try:
with open(filename, "w", encoding="utf-8", newline="\n") as fd:
fd.write("#define GDCLASS(m_class, m_inherits)\n")
+ for name in ["GDVIRTUAL", "EXBIND", "MODBIND"]:
+ for count in range(13):
+ for suffix in ["", "R", "C", "RC"]:
+ fd.write(f"#define {name}{count}{suffix}(")
+ if "R" in suffix:
+ fd.write("m_ret, ")
+ fd.write("m_name")
+ for idx in range(1, count + 1):
+ fd.write(f", type{idx}")
+ fd.write(")\n")
+
except OSError:
print_warning("Could not write cpp.hint file.")
@@ -1036,7 +1047,7 @@ def dump(env):
# skip the build process. This lets project files be quickly generated even if there are build errors.
#
# To generate AND build from the command line:
-# scons vsproj=yes vsproj_gen_only=yes
+# scons vsproj=yes vsproj_gen_only=no
def generate_vs_project(env, original_args, project_name="godot"):
# Augmented glob_recursive that also fills the dirs argument with traversed directories that have content.
def glob_recursive_2(pattern, dirs, node="."):
@@ -1504,7 +1515,7 @@ def generate_vs_project(env, original_args, project_name="godot"):
proj_template = proj_template.replace("%%DEFAULT_ITEMS%%", "\n ".join(all_items))
proj_template = proj_template.replace("%%PROPERTIES%%", "\n ".join(properties))
- with open(f"{project_name}.vcxproj", "w", encoding="utf-8", newline="\n") as f:
+ with open(f"{project_name}.vcxproj", "w", encoding="utf-8", newline="\r\n") as f:
f.write(proj_template)
if not get_bool(original_args, "vsproj_props_only", False):
diff --git a/misc/msvs/vcxproj.filters.template b/misc/msvs/vcxproj.filters.template
index 11d331d15d..4fe7822bfd 100644
--- a/misc/msvs/vcxproj.filters.template
+++ b/misc/msvs/vcxproj.filters.template
@@ -7,12 +7,9 @@
<Filter Include="Header Files">
<UniqueIdentifier>%%UUID2%%</UniqueIdentifier>
</Filter>
- <Filter Include="Resource Files">
+ <Filter Include="Other Files">
<UniqueIdentifier>%%UUID3%%</UniqueIdentifier>
</Filter>
- <Filter Include="Scripts">
- <UniqueIdentifier>%%UUID4%%</UniqueIdentifier>
- </Filter>
%%FILTERS%%
</ItemGroup>
<ItemGroup>