summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2019-06-13 16:44:06 +0200
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2020-01-03 19:41:07 +0100
commit4b22741255652d90a6d6c2a4e0c5e248112e5e72 (patch)
treeec6d54221cd726e685ee4569ee59b8d6856d3cd6 /SConstruct
parent5769d8b2de3a62e9e798d8fa59c71ba30f9cf88a (diff)
downloadfork-godot-webrtc-native-4b22741255652d90a6d6c2a4e0c5e248112e5e72.tar.gz
fork-godot-webrtc-native-4b22741255652d90a6d6c2a4e0c5e248112e5e72.tar.bz2
fork-godot-webrtc-native-4b22741255652d90a6d6c2a4e0c5e248112e5e72.zip
Build script also create gdnlib
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct44
1 files changed, 27 insertions, 17 deletions
diff --git a/SConstruct b/SConstruct
index cc5807d..5877ae9 100644
--- a/SConstruct
+++ b/SConstruct
@@ -16,7 +16,26 @@ def get_arch_dir(name):
return 'x64'
return name
+def gen_gdnative_lib(target, source, env):
+ for t in target:
+ with open(t.srcnode().path, 'w') as w:
+ w.write(source[0].get_contents().replace('{GDNATIVE_PATH}', os.path.splitext(t.name)[0]).replace('{TARGET}', env['target']))
+
+
env = Environment()
+
+target_arch = ARGUMENTS.get('b', ARGUMENTS.get('bits', '64'))
+target_platform = ARGUMENTS.get('p', ARGUMENTS.get('platform', 'linux'))
+if target_platform == 'windows':
+ # This makes sure to keep the session environment variables on windows,
+ # that way you can run scons in a vs 2017 prompt and it will find all the required tools
+ if (target_arch == '64'):
+ env = Environment(ENV = os.environ, TARGET_ARCH='amd64')
+ else:
+ env = Environment(ENV = os.environ, TARGET_ARCH='x86')
+
+env.Append(BUILDERS={'GDNativeLibBuilder': Builder(action=gen_gdnative_lib)})
+
customs = ['custom.py']
opts = Variables(customs, ARGUMENTS)
@@ -29,22 +48,17 @@ opts.Update(env)
target = env['target']
host_platform = platform.system()
-target_platform = ARGUMENTS.get('p', ARGUMENTS.get('platform', 'linux'))
-target_arch = ARGUMENTS.get('a', ARGUMENTS.get('arch', '64'))
# Local dependency paths, adapt them to your setup
godot_headers = ARGUMENTS.get('headers', '../godot_headers')
godot_cpp_headers = ARGUMENTS.get('godot_cpp_headers', '../godot-cpp/include')
godot_cpp_lib_dir = ARGUMENTS.get('godot_cpp_lib_dir', 'lib/godot-cpp')
-result_path = 'bin'
-result_name = 'webrtc_native'
+result_path = os.path.join('bin', 'webrtc' if env['target'] == 'release' else 'webrtc_debug', 'lib')
# Convenience check to enforce the use_llvm overrides when CXX is clang(++)
if 'CXX' in env and 'clang' in os.path.basename(env['CXX']):
env['use_llvm'] = True
if target_platform == 'linux':
- result_name += '.linux.' + target + '.' + target_arch
-
env['CXX']='g++'
# LLVM
@@ -70,17 +84,7 @@ if target_platform == 'linux':
env.Append(LINKFLAGS = [ '-m64' ])
elif target_platform == 'windows':
- # This makes sure to keep the session environment variables on windows,
- # that way you can run scons in a vs 2017 prompt and it will find all the required tools
- if (target_arch == '64'):
- env = Environment(ENV = os.environ, TARGET_ARCH='amd64')
- else:
- env = Environment(ENV = os.environ, TARGET_ARCH='x86')
-
- result_name += '.windows.' + target + '.' + target_arch
-
if host_platform == 'Windows':
- #result_name += '.lib'
env.Append(LINKFLAGS = [ '/WX' ])
if target == 'debug':
@@ -102,7 +106,6 @@ elif target_platform == 'osx':
# Only 64-bits is supported for OS X
target_arch = '64'
- result_name += '.osx.' + target + '.' + target_arch
env.Append(CCFLAGS = [ '-g','-O3', '-std=c++14', '-arch', 'x86_64' ])
env.Append(LINKFLAGS = [ '-arch', 'x86_64', '-framework', 'Cocoa', '-Wl,-undefined,dynamic_lookup' ])
@@ -168,5 +171,12 @@ suffix = '.%s.%s' % (target, target_arch)
env["SHOBJSUFFIX"] = suffix + env["SHOBJSUFFIX"]
# Make the shared library
+result_name = 'webrtc_native.%s.%s.%s' % (target_platform, target, target_arch)
library = env.SharedLibrary(target=os.path.join(result_path, result_name), source=sources)
Default(library)
+
+# GDNativeLibrary
+gdnlib = 'webrtc'
+if target != 'release':
+ gdnlib += '_debug'
+Default(env.GDNativeLibBuilder([os.path.join('bin', gdnlib, gdnlib + '.gdns')], ['misc/gdnlib.tres']))