58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
|
|
Import('env')
|
|
Import('env_modules')
|
|
|
|
env_mono = env_modules.Clone()
|
|
|
|
env_mono.add_source_files(env.modules_sources, '*.cpp')
|
|
env_mono.add_source_files(env.modules_sources, 'glue/*.cpp')
|
|
env_mono.add_source_files(env.modules_sources, 'mono_gd/*.cpp')
|
|
env_mono.add_source_files(env.modules_sources, 'utils/*.cpp')
|
|
|
|
if env['tools']:
|
|
env_mono.add_source_files(env.modules_sources, 'editor/*.cpp')
|
|
# NOTE: It is safe to generate this file here, since this is still executed serially
|
|
import build_scripts.make_cs_compressed_header as make_cs_compressed_header
|
|
make_cs_compressed_header.generate_header(
|
|
'glue/Managed/Files',
|
|
'glue/cs_compressed.gen.h',
|
|
'glue/cs_glue_version.gen.h'
|
|
)
|
|
|
|
vars = Variables()
|
|
vars.Add(BoolVariable('mono_glue', 'Build with the mono glue sources', True))
|
|
vars.Add(BoolVariable('xbuild_fallback', 'If MSBuild is not found, fallback to xbuild', False))
|
|
vars.Update(env_mono)
|
|
|
|
# Glue sources
|
|
if env_mono['mono_glue']:
|
|
env_mono.Append(CPPDEFINES=['MONO_GLUE_ENABLED'])
|
|
|
|
import os.path
|
|
if not os.path.isfile('glue/mono_glue.gen.cpp'):
|
|
raise RuntimeError('Missing mono glue sources. Did you forget to generate them?')
|
|
|
|
if env_mono['tools'] or env_mono['target'] != 'release':
|
|
env_mono.Append(CPPDEFINES=['GD_MONO_HOT_RELOAD'])
|
|
|
|
# Configure Thread Local Storage
|
|
|
|
import build_scripts.tls_configure as tls_configure
|
|
|
|
conf = Configure(env_mono)
|
|
tls_configure.configure(conf)
|
|
env_mono = conf.Finish()
|
|
|
|
# Configure Mono
|
|
|
|
import build_scripts.mono_configure as mono_configure
|
|
|
|
mono_configure.configure(env, env_mono)
|
|
|
|
# Build GodotSharpTools
|
|
|
|
import build_scripts.godotsharptools_build as godotsharptools_build
|
|
|
|
godotsharptools_build.build(env_mono)
|