diff options
Diffstat (limited to 'methods.py')
-rw-r--r-- | methods.py | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/methods.py b/methods.py index 99c47ca077..c725501fd9 100644 --- a/methods.py +++ b/methods.py @@ -268,7 +268,7 @@ def get_version_info(module_version_string="", silent=False): if os.path.exists(".git"): try: version_info["git_timestamp"] = subprocess.check_output( - ["git", "log", "-1", "--pretty=format:%ct", githash] + ["git", "log", "-1", "--pretty=format:%ct", "--no-show-signature", githash] ).decode("utf-8") except (subprocess.CalledProcessError, OSError): # `git` not found in PATH. @@ -648,6 +648,7 @@ def detect_visual_c_compiler_version(tools_env): def find_visual_c_batch_file(env): + # TODO: We should investigate if we can avoid relying on SCons internals here. from SCons.Tool.MSCommon.vc import find_batch_file, find_vc_pdir, get_default_version, get_host_target msvc_version = get_default_version(env) @@ -661,10 +662,11 @@ def find_visual_c_batch_file(env): if env.scons_version < (4, 6, 0): return find_batch_file(env, msvc_version, host_platform, target_platform)[0] - # Scons 4.6.0+ removed passing env, so we need to get the product_dir ourselves first, + # SCons 4.6.0+ removed passing env, so we need to get the product_dir ourselves first, # then pass that as the last param instead of env as the first param as before. - # We should investigate if we can avoid relying on SCons internals here. - product_dir = find_vc_pdir(env, msvc_version) + # Param names need to be explicit, as they were shuffled around in SCons 4.8.0. + product_dir = find_vc_pdir(msvc_version=msvc_version, env=env) + return find_batch_file(msvc_version, host_platform, target_platform, product_dir)[0] @@ -676,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.") @@ -1034,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="."): @@ -1502,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): |