Add float arg to build_assemblies.py
This commit is contained in:
parent
654a31df06
commit
c71b78bbb8
|
@ -167,7 +167,7 @@ opts.Add("p", "Platform (alias for 'platform')", "")
|
|||
opts.Add(BoolVariable("tools", "Build the tools (a.k.a. the Godot editor)", True))
|
||||
opts.Add(EnumVariable("target", "Compilation target", "debug", ("debug", "release_debug", "release")))
|
||||
opts.Add(EnumVariable("arch", "CPU architecture", "auto", ["auto"] + architectures, architecture_aliases))
|
||||
opts.Add(EnumVariable("float", "Floating-point precision", "default", ("default", "32", "64")))
|
||||
opts.Add(EnumVariable("float", "Floating-point precision", "32", ("32", "64")))
|
||||
opts.Add(EnumVariable("optimize", "Optimization type", "speed", ("speed", "size", "none")))
|
||||
opts.Add(BoolVariable("production", "Set defaults to build Godot for use in production", False))
|
||||
opts.Add(BoolVariable("use_lto", "Use link-time optimization", False))
|
||||
|
|
|
@ -43,3 +43,13 @@ This option ensures the packages will be added to the specified local NuGet
|
|||
source and that conflicting versions of the package are removed from the
|
||||
NuGet cache. It's recommended to always use this option when building the
|
||||
C# solutions during development to avoid mistakes.
|
||||
|
||||
# Double Precision Support (REAL_T_IS_DOUBLE)
|
||||
|
||||
Follow the above instructions but build Godot with the float=64 argument to scons
|
||||
|
||||
When building the NuGet packages, specify `--float=64` - for example:
|
||||
```sh
|
||||
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin \
|
||||
--push-nupkgs-local ~/MyLocalNugetSource --float=64
|
||||
```
|
||||
|
|
|
@ -195,7 +195,7 @@ def run_msbuild(tools: ToolsLocation, sln: str, msbuild_args: [str] = None):
|
|||
return subprocess.call(args, env=msbuild_env)
|
||||
|
||||
|
||||
def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local):
|
||||
def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, float_size):
|
||||
target_filenames = [
|
||||
"GodotSharp.dll",
|
||||
"GodotSharp.pdb",
|
||||
|
@ -216,6 +216,8 @@ def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local):
|
|||
args = ["/restore", "/t:Build", "/p:Configuration=" + build_config, "/p:NoWarn=1591"]
|
||||
if push_nupkgs_local:
|
||||
args += ["/p:ClearNuGetLocalCache=true", "/p:PushNuGetToLocalSource=" + push_nupkgs_local]
|
||||
if float_size == "64":
|
||||
args += ["/p:GodotFloat64=true"]
|
||||
|
||||
sln = os.path.join(module_dir, "glue/GodotSharp/GodotSharp.sln")
|
||||
exit_code = run_msbuild(
|
||||
|
@ -256,9 +258,9 @@ def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local):
|
|||
return 0
|
||||
|
||||
|
||||
def build_all(msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, push_nupkgs_local):
|
||||
def build_all(msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, push_nupkgs_local, float_size):
|
||||
# Godot API
|
||||
exit_code = build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local)
|
||||
exit_code = build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, float_size)
|
||||
if exit_code != 0:
|
||||
return exit_code
|
||||
|
||||
|
@ -269,6 +271,8 @@ def build_all(msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, p
|
|||
)
|
||||
if push_nupkgs_local:
|
||||
args += ["/p:ClearNuGetLocalCache=true", "/p:PushNuGetToLocalSource=" + push_nupkgs_local]
|
||||
if float_size == "64":
|
||||
args += ["/p:GodotFloat64=true"]
|
||||
exit_code = run_msbuild(msbuild_tool, sln=sln, msbuild_args=args)
|
||||
if exit_code != 0:
|
||||
return exit_code
|
||||
|
@ -277,6 +281,8 @@ def build_all(msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, p
|
|||
args = ["/restore", "/t:Build", "/p:Configuration=Release"]
|
||||
if push_nupkgs_local:
|
||||
args += ["/p:ClearNuGetLocalCache=true", "/p:PushNuGetToLocalSource=" + push_nupkgs_local]
|
||||
if float_size == "64":
|
||||
args += ["/p:GodotFloat64=true"]
|
||||
sln = os.path.join(module_dir, "editor/Godot.NET.Sdk/Godot.NET.Sdk.sln")
|
||||
exit_code = run_msbuild(msbuild_tool, sln=sln, msbuild_args=args)
|
||||
if exit_code != 0:
|
||||
|
@ -300,6 +306,7 @@ def main():
|
|||
parser.add_argument("--godot-platform", type=str, default="")
|
||||
parser.add_argument("--mono-prefix", type=str, default="")
|
||||
parser.add_argument("--push-nupkgs-local", type=str, default="")
|
||||
parser.add_argument("--float", type=str, default="32", choices=["32", "64"], help="Floating-point precision")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
@ -321,6 +328,7 @@ def main():
|
|||
args.godot_platform,
|
||||
args.dev_debug,
|
||||
args.push_nupkgs_local,
|
||||
args.float,
|
||||
)
|
||||
sys.exit(exit_code)
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<GodotRealTIsDouble Condition=" '$(GodotRealTIsDouble)' == '' ">false</GodotRealTIsDouble>
|
||||
<GodotFloat64 Condition=" '$(GodotFloat64)' == '' ">false</GodotFloat64>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Godot DefineConstants. -->
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
<!--
|
||||
Define constant to determine whether the real_t type in Godot is double precision or not.
|
||||
By default this is false, like the official Godot builds. If someone is using a custom
|
||||
Godot build where real_t is double, they can override the GodotRealTIsDouble property.
|
||||
Godot build where real_t is double, they can override the GodotFloat64 property.
|
||||
-->
|
||||
<DefineConstants Condition=" '$(GodotRealTIsDouble)' == 'true' ">GODOT_REAL_T_IS_DOUBLE;$(DefineConstants)</DefineConstants>
|
||||
<DefineConstants Condition=" '$(GodotFloat64)' == 'true' ">GODOT_REAL_T_IS_DOUBLE;$(DefineConstants)</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- C# source generators -->
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<DefineConstants>$(DefineConstants);GODOT</DefineConstants>
|
||||
<DefineConstants Condition=" '$(GodotFloat64)' == 'true' ">REAL_T_IS_DOUBLE;$(DefineConstants)</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ReflectionAnalyzers" Version="0.1.22-dev" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers" />
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<DefineConstants>$(DefineConstants);GODOT</DefineConstants>
|
||||
<DefineConstants Condition=" '$(GodotFloat64)' == 'true' ">REAL_T_IS_DOUBLE;$(DefineConstants)</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\GodotSharp\GodotSharp.csproj">
|
||||
|
|
Loading…
Reference in New Issue