Mono: Add mono_bcl SCons option for a custom BCL location

Makes it let's bothersome to work with builds from our
godotengine/godot-mono-builds scripts, as they write the
BCL into an output directory separate from the runtime
(which is good as two runtimes may share the same BCL).

(cherry picked from commit dd5ace219d)
This commit is contained in:
Ignacio Etcheverry 2020-12-06 01:15:17 +01:00 committed by Rémi Verschelde
parent 956477f4a2
commit a624448197
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 12 additions and 3 deletions

View File

@ -93,6 +93,7 @@ def configure(env, env_mono):
copy_mono_root = env["copy_mono_root"]
mono_prefix = env["mono_prefix"]
mono_bcl = env["mono_bcl"]
mono_lib_names = ["mono-2.0-sgen", "monosgen-2.0"]
@ -393,7 +394,7 @@ def configure(env, env_mono):
if tools_enabled:
# Only supported for editor builds.
copy_mono_root_files(env, mono_root)
copy_mono_root_files(env, mono_root, mono_bcl)
def make_template_dir(env, mono_root):
@ -426,7 +427,7 @@ def make_template_dir(env, mono_root):
copy_mono_shared_libs(env, mono_root, template_mono_root_dir)
def copy_mono_root_files(env, mono_root):
def copy_mono_root_files(env, mono_root, mono_bcl):
from glob import glob
from shutil import copy
from shutil import rmtree
@ -451,7 +452,7 @@ def copy_mono_root_files(env, mono_root):
# Copy framework assemblies
mono_framework_dir = os.path.join(mono_root, "lib", "mono", "4.5")
mono_framework_dir = mono_bcl or os.path.join(mono_root, "lib", "mono", "4.5")
mono_framework_facades_dir = os.path.join(mono_framework_dir, "Facades")
editor_mono_framework_dir = os.path.join(editor_mono_root_dir, "lib", "mono", "4.5")

View File

@ -28,6 +28,14 @@ def configure(env):
PathVariable.PathAccept,
)
)
envvars.Add(
PathVariable(
"mono_bcl",
"Path to a custom Mono BCL (Base Class Library) directory for the target platform",
"",
PathVariable.PathAccept,
)
)
envvars.Add(BoolVariable("mono_static", "Statically link Mono", default_mono_static))
envvars.Add(BoolVariable("mono_glue", "Build with the Mono glue sources", True))
envvars.Add(BoolVariable("build_cil", "Build C# solutions", True))