Update build script for a more targeted set of stuff to build for unity

This commit is contained in:
Chris Marsh 2017-12-01 13:47:04 -08:00 committed by Chris Marsh
parent 50ea4e61c6
commit be7fda7c50
2 changed files with 43 additions and 16 deletions

View file

@ -72,6 +72,13 @@ def unity():
pass pass
@cli.command()
@click.pass_context
def for_unity(ctx):
""" build just dynamic libs for use in unity project """
ctx.invoke(libs, clean=False, static=False, shared=True, skip_formatter=False)
@cli.command() @cli.command()
def unreal(): def unreal():
""" todo: build unreal project """ """ todo: build unreal project """
@ -96,7 +103,9 @@ def build_lib(build_name, generator, options):
# disable formatting on CI builds # disable formatting on CI builds
initial_cmake.append('-DCLANG_FORMAT_SUFFIX=none') initial_cmake.append('-DCLANG_FORMAT_SUFFIX=none')
for key in options: for key in options:
val = 'ON' if options[key] else 'OFF' val = options[key]
if type(val) is bool:
val = 'ON' if val else 'OFF'
initial_cmake.append('-D%s=%s' % (key, val)) initial_cmake.append('-D%s=%s' % (key, val))
click.echo('--- Building ' + build_name) click.echo('--- Building ' + build_name)
subprocess.check_call(initial_cmake) subprocess.check_call(initial_cmake)
@ -167,31 +176,49 @@ def sign():
@cli.command() @cli.command()
@click.option('--clean', is_flag=True) @click.option('--clean', is_flag=True)
def libs(clean): @click.option('--static', is_flag=True)
@click.option('--shared', is_flag=True)
@click.option('--skip_formatter', is_flag=True)
def libs(clean, static, shared, skip_formatter):
""" Do all the builds for this platform """ """ Do all the builds for this platform """
if clean: if clean:
shutil.rmtree('builds', ignore_errors=True) shutil.rmtree('builds', ignore_errors=True)
mkdir_p('builds') mkdir_p('builds')
if not (static or shared):
static = True
shared = True
static_options = {}
dynamic_options = {
'BUILD_SHARED_LIBS': True,
'USE_STATIC_CRT': True,
}
if skip_formatter:
static_options['CLANG_FORMAT_SUFFIX'] = 'nope'
dynamic_options['CLANG_FORMAT_SUFFIX'] = 'nope'
if PLATFORM == 'win': if PLATFORM == 'win':
generator32 = 'Visual Studio 14 2015' generator32 = 'Visual Studio 14 2015'
generator64 = 'Visual Studio 14 2015 Win64' generator64 = 'Visual Studio 14 2015 Win64'
static_options = {} if static:
dynamic_options = { build_lib('win32-static', generator32, static_options)
'BUILD_SHARED_LIBS': True, build_lib('win64-static', generator64, static_options)
'USE_STATIC_CRT': True, if shared:
} build_lib('win32-dynamic', generator32, dynamic_options)
build_lib('win32-static', generator32, static_options) build_lib('win64-dynamic', generator64, dynamic_options)
build_lib('win32-dynamic', generator32, dynamic_options)
build_lib('win64-static', generator64, static_options)
build_lib('win64-dynamic', generator64, dynamic_options)
elif PLATFORM == 'osx': elif PLATFORM == 'osx':
build_lib('osx-static', None, {}) if static:
build_lib('osx-dynamic', None, {'BUILD_SHARED_LIBS': True}) build_lib('osx-static', None, static_options)
if shared:
build_lib('osx-dynamic', None, dynamic_options)
elif PLATFORM == 'linux': elif PLATFORM == 'linux':
build_lib('linux-static', None, {}) if static:
build_lib('linux-dynamic', None, {'BUILD_SHARED_LIBS': True}) build_lib('linux-static', None, static_options)
if shared:
build_lib('linux-dynamic', None, dynamic_options)
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -27,7 +27,7 @@ public class ScriptBatch
proc.StartInfo.EnvironmentVariables["PATH"] = newPath; proc.StartInfo.EnvironmentVariables["PATH"] = newPath;
#endif #endif
proc.StartInfo.FileName = "python"; proc.StartInfo.FileName = "python";
proc.StartInfo.Arguments = "build.py"; proc.StartInfo.Arguments = "build.py for_unity";
proc.StartInfo.WorkingDirectory = "../.."; proc.StartInfo.WorkingDirectory = "../..";
proc.Start(); proc.Start();
proc.WaitForExit(); proc.WaitForExit();