- Cherry picked #10662 and fixed merge conflicts. - Manualy merged the change from #11904. - Did not merge #12236 since I'm not sure whether the issue affects Godot 2.1 and I don't have VS2013 to test. - Did not merge #11843 since it doesn't seem relevant (the code is only needed for creating DONORS.md, etc.). - Did not merge #10727 and #11752 since they seem to be already included in #11742. - The Windows and Linux builds have been tested with Scons 3.0 using Python 3. - OSX and iOS should hopefully work but are not tested since I don't have a Mac. - Builds using SCons 2.5 and Python 2 should not be impacted.
92 lines
2.7 KiB
Python
92 lines
2.7 KiB
Python
import os
|
|
import sys
|
|
import string
|
|
import methods
|
|
|
|
|
|
def is_active():
|
|
return True
|
|
|
|
|
|
def get_name():
|
|
return "BlackBerry 10"
|
|
|
|
|
|
def can_build():
|
|
|
|
import os
|
|
if not "QNX_TARGET" in os.environ:
|
|
return False
|
|
return True
|
|
|
|
|
|
def get_opts():
|
|
|
|
return [
|
|
('QNX_HOST', 'path to qnx host', os.environ.get("QNX_HOST", 0)),
|
|
('QNX_TARGET', 'path to qnx target', os.environ.get("QNX_TARGET", 0)),
|
|
('QNX_CONFIGURATION', 'path to qnx configuration', os.environ.get("QNX_CONFIGURATION", 0)),
|
|
('qnx_target', 'Qnx target (armle or x86', 'armle'),
|
|
('bb10_payment_service', 'Enable Payment Service for BlackBerry10', 'yes'),
|
|
('bb10_lgles_override', 'Force legacy GLES (1.1) on iOS', 'no'),
|
|
('bb10_exceptions', 'Use exceptions when compiling on bb10', 'no'),
|
|
]
|
|
|
|
|
|
def get_flags():
|
|
|
|
return [
|
|
('tools', 'no'),
|
|
('module_theora_enabled', 'no'),
|
|
]
|
|
|
|
|
|
def configure(env):
|
|
|
|
if env['PLATFORM'] == 'win32':
|
|
env.Tool('mingw')
|
|
env['SPAWN'] = methods.win32_spawn
|
|
|
|
env['qnx_target_ver'] = env['qnx_target']
|
|
if env['qnx_target'] == "armle":
|
|
env['qnx_prefix'] = 'ntoarmv7'
|
|
env['qnx_target_ver'] = 'armle-v7'
|
|
else:
|
|
env['qnx_prefix'] = 'ntox86'
|
|
|
|
env['OBJSUFFIX'] = ".qnx.${qnx_target}.o"
|
|
env['LIBSUFFIX'] = ".qnx.${qnx_target}.a"
|
|
env['PROGSUFFIX'] = ".qnx.${qnx_target}"
|
|
print("PROGSUFFIX: " + env['PROGSUFFIX'] + " target: " + env['qnx_target'])
|
|
|
|
env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/bin')
|
|
env.PrependENVPath('PATH', env['QNX_CONFIGURATION'] + '/usr/bin')
|
|
env['ENV']['QNX_HOST'] = env['QNX_HOST']
|
|
env['ENV']['QNX_TARGET'] = env['QNX_TARGET']
|
|
env['ENV']['QNX_CONFIGURATION'] = env['QNX_CONFIGURATION']
|
|
|
|
env['CC'] = '$qnx_prefix-gcc'
|
|
env['CXX'] = '$qnx_prefix-g++'
|
|
env['AR'] = '$qnx_prefix-ar'
|
|
env['RANLIB'] = '$qnx_prefix-ranlib'
|
|
|
|
env.Append(CPPPATH=['#platform/bb10'])
|
|
env.Append(LIBPATH=['#platform/bb10/lib/$qnx_target', '#platform/bb10/lib/$qnx_target_ver'])
|
|
env.Append(CCFLAGS=string.split('-DBB10_ENABLED -DUNIX_ENABLED -DGLES2_ENABLED -DGLES1_ENABLED -D_LITTLE_ENDIAN -DNO_THREADS -DNO_FCNTL'))
|
|
if env['bb10_exceptions'] == "yes":
|
|
env.Append(CCFLAGS=['-fexceptions'])
|
|
else:
|
|
env.Append(CCFLAGS=['-fno-exceptions'])
|
|
|
|
# env.Append(LINKFLAGS = string.split()
|
|
|
|
if (env["target"] == "release"):
|
|
|
|
env.Append(CCFLAGS=['-O3', '-DRELEASE_BUILD'])
|
|
|
|
elif (env["target"] == "debug"):
|
|
|
|
env.Append(CCFLAGS=['-g', '-O0', '-DDEBUG_ENABLED', '-D_DEBUG'])
|
|
env.Append(LINKFLAGS=['-g'])
|
|
|
|
env.Append(LIBS=['bps', 'pps', 'screen', 'socket', 'EGL', 'GLESv2', 'GLESv1_CM', 'm', 'asound'])
|