style: Start applying PEP8 to Python files, indentation issues
Done with `autopep8 --select=E1`, fixes: - E101 - Reindent all lines. - E112 - Fix under-indented comments. - E113 - Fix over-indented comments. - E115 - Fix under-indented comments. - E116 - Fix over-indented comments. - E121 - Fix a badly indented line. - E122 - Fix a badly indented line. - E123 - Fix a badly indented line. - E124 - Fix a badly indented line. - E125 - Fix indentation undistinguish from the next logical line. - E126 - Fix a badly indented line. - E127 - Fix a badly indented line. - E128 - Fix a badly indented line. - E129 - Fix a badly indented line.
This commit is contained in:
parent
681575fa71
commit
97c8508f5e
392
SConstruct
392
SConstruct
|
@ -24,28 +24,28 @@ platform_exporters=[]
|
|||
global_defaults=[]
|
||||
|
||||
for x in glob.glob("platform/*"):
|
||||
if (not os.path.isdir(x) or not os.path.exists(x+"/detect.py")):
|
||||
continue
|
||||
tmppath="./"+x
|
||||
if (not os.path.isdir(x) or not os.path.exists(x+"/detect.py")):
|
||||
continue
|
||||
tmppath="./"+x
|
||||
|
||||
sys.path.append(tmppath)
|
||||
import detect
|
||||
sys.path.append(tmppath)
|
||||
import detect
|
||||
|
||||
if (os.path.exists(x+"/export/export.cpp")):
|
||||
platform_exporters.append(x[9:])
|
||||
if (os.path.exists(x+"/globals/global_defaults.cpp")):
|
||||
global_defaults.append(x[9:])
|
||||
if (detect.is_active()):
|
||||
active_platforms.append( detect.get_name() )
|
||||
active_platform_ids.append(x);
|
||||
if (detect.can_build()):
|
||||
x=x.replace("platform/","") # rest of world
|
||||
x=x.replace("platform\\","") # win32
|
||||
platform_list+=[x]
|
||||
platform_opts[x]=detect.get_opts()
|
||||
platform_flags[x]=detect.get_flags()
|
||||
sys.path.remove(tmppath)
|
||||
sys.modules.pop('detect')
|
||||
if (os.path.exists(x+"/export/export.cpp")):
|
||||
platform_exporters.append(x[9:])
|
||||
if (os.path.exists(x+"/globals/global_defaults.cpp")):
|
||||
global_defaults.append(x[9:])
|
||||
if (detect.is_active()):
|
||||
active_platforms.append( detect.get_name() )
|
||||
active_platform_ids.append(x);
|
||||
if (detect.can_build()):
|
||||
x=x.replace("platform/","") # rest of world
|
||||
x=x.replace("platform\\","") # win32
|
||||
platform_list+=[x]
|
||||
platform_opts[x]=detect.get_opts()
|
||||
platform_flags[x]=detect.get_flags()
|
||||
sys.path.remove(tmppath)
|
||||
sys.modules.pop('detect')
|
||||
|
||||
module_list=methods.detect_modules()
|
||||
|
||||
|
@ -59,14 +59,14 @@ custom_tools=['default']
|
|||
platform_arg = ARGUMENTS.get("platform", ARGUMENTS.get("p", False))
|
||||
|
||||
if (os.name=="posix"):
|
||||
pass
|
||||
pass
|
||||
elif (os.name=="nt"):
|
||||
if ( os.getenv("VCINSTALLDIR")==None or platform_arg=="android"):
|
||||
custom_tools=['mingw']
|
||||
if ( os.getenv("VCINSTALLDIR")==None or platform_arg=="android"):
|
||||
custom_tools=['mingw']
|
||||
|
||||
env_base=Environment(tools=custom_tools);
|
||||
if 'TERM' in os.environ:
|
||||
env_base['ENV']['TERM'] = os.environ['TERM']
|
||||
env_base['ENV']['TERM'] = os.environ['TERM']
|
||||
env_base.AppendENVPath('PATH', os.getenv('PATH'))
|
||||
env_base.AppendENVPath('PKG_CONFIG_PATH', os.getenv('PKG_CONFIG_PATH'))
|
||||
env_base.global_defaults=global_defaults
|
||||
|
@ -109,11 +109,11 @@ customs = ['custom.py']
|
|||
|
||||
profile = ARGUMENTS.get("profile", False)
|
||||
if profile:
|
||||
import os.path
|
||||
if os.path.isfile(profile):
|
||||
customs.append(profile)
|
||||
elif os.path.isfile(profile+".py"):
|
||||
customs.append(profile+".py")
|
||||
import os.path
|
||||
if os.path.isfile(profile):
|
||||
customs.append(profile)
|
||||
elif os.path.isfile(profile+".py"):
|
||||
customs.append(profile+".py")
|
||||
|
||||
opts=Variables(customs, ARGUMENTS)
|
||||
opts.Add('target', 'Compile Target (debug/release_debug/release).', "debug")
|
||||
|
@ -155,12 +155,12 @@ opts.Add('vsproj', 'Generate Visual Studio Project. (yes/no)', 'no')
|
|||
# add platform specific options
|
||||
|
||||
for k in platform_opts.keys():
|
||||
opt_list = platform_opts[k]
|
||||
for o in opt_list:
|
||||
opts.Add(o[0],o[1],o[2])
|
||||
opt_list = platform_opts[k]
|
||||
for o in opt_list:
|
||||
opts.Add(o[0],o[1],o[2])
|
||||
|
||||
for x in module_list:
|
||||
opts.Add('module_'+x+'_enabled', "Enable module '"+x+"' (yes/no)", "yes")
|
||||
opts.Add('module_'+x+'_enabled', "Enable module '"+x+"' (yes/no)", "yes")
|
||||
|
||||
opts.Update(env_base) # update environment
|
||||
Help(opts.GenerateHelpText(env_base)) # generate help
|
||||
|
@ -181,11 +181,11 @@ sys.modules.pop('detect')
|
|||
"""
|
||||
|
||||
if (env_base['target']=='debug'):
|
||||
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC']);
|
||||
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
|
||||
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC']);
|
||||
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
|
||||
|
||||
if (env_base['deprecated']!='no'):
|
||||
env_base.Append(CPPFLAGS=['-DENABLE_DEPRECATED']);
|
||||
env_base.Append(CPPFLAGS=['-DENABLE_DEPRECATED']);
|
||||
|
||||
env_base.platforms = {}
|
||||
|
||||
|
@ -193,214 +193,214 @@ env_base.platforms = {}
|
|||
selected_platform =""
|
||||
|
||||
if env_base['platform'] != "":
|
||||
selected_platform=env_base['platform']
|
||||
selected_platform=env_base['platform']
|
||||
elif env_base['p'] != "":
|
||||
selected_platform=env_base['p']
|
||||
env_base["platform"]=selected_platform
|
||||
selected_platform=env_base['p']
|
||||
env_base["platform"]=selected_platform
|
||||
|
||||
|
||||
|
||||
if selected_platform in platform_list:
|
||||
|
||||
sys.path.append("./platform/"+selected_platform)
|
||||
import detect
|
||||
if "create" in dir(detect):
|
||||
env = detect.create(env_base)
|
||||
else:
|
||||
env = env_base.Clone()
|
||||
sys.path.append("./platform/"+selected_platform)
|
||||
import detect
|
||||
if "create" in dir(detect):
|
||||
env = detect.create(env_base)
|
||||
else:
|
||||
env = env_base.Clone()
|
||||
|
||||
if env['vsproj']=="yes":
|
||||
env.vs_incs = []
|
||||
env.vs_srcs = []
|
||||
if env['vsproj']=="yes":
|
||||
env.vs_incs = []
|
||||
env.vs_srcs = []
|
||||
|
||||
def AddToVSProject( sources ):
|
||||
for x in sources:
|
||||
if type(x) == type(""):
|
||||
fname = env.File(x).path
|
||||
else:
|
||||
fname = env.File(x)[0].path
|
||||
pieces = fname.split(".")
|
||||
if len(pieces)>0:
|
||||
basename = pieces[0]
|
||||
basename = basename.replace('\\\\','/')
|
||||
env.vs_srcs = env.vs_srcs + [basename + ".cpp"]
|
||||
env.vs_incs = env.vs_incs + [basename + ".h"]
|
||||
#print basename
|
||||
env.AddToVSProject = AddToVSProject
|
||||
def AddToVSProject( sources ):
|
||||
for x in sources:
|
||||
if type(x) == type(""):
|
||||
fname = env.File(x).path
|
||||
else:
|
||||
fname = env.File(x)[0].path
|
||||
pieces = fname.split(".")
|
||||
if len(pieces)>0:
|
||||
basename = pieces[0]
|
||||
basename = basename.replace('\\\\','/')
|
||||
env.vs_srcs = env.vs_srcs + [basename + ".cpp"]
|
||||
env.vs_incs = env.vs_incs + [basename + ".h"]
|
||||
#print basename
|
||||
env.AddToVSProject = AddToVSProject
|
||||
|
||||
env.extra_suffix=""
|
||||
env.extra_suffix=""
|
||||
|
||||
if env["extra_suffix"] != '' :
|
||||
env.extra_suffix += '.'+env["extra_suffix"]
|
||||
if env["extra_suffix"] != '' :
|
||||
env.extra_suffix += '.'+env["extra_suffix"]
|
||||
|
||||
CCFLAGS = env.get('CCFLAGS', '')
|
||||
env['CCFLAGS'] = ''
|
||||
CCFLAGS = env.get('CCFLAGS', '')
|
||||
env['CCFLAGS'] = ''
|
||||
|
||||
env.Append(CCFLAGS=string.split(str(CCFLAGS)))
|
||||
env.Append(CCFLAGS=string.split(str(CCFLAGS)))
|
||||
|
||||
CFLAGS = env.get('CFLAGS', '')
|
||||
env['CFLAGS'] = ''
|
||||
CFLAGS = env.get('CFLAGS', '')
|
||||
env['CFLAGS'] = ''
|
||||
|
||||
env.Append(CFLAGS=string.split(str(CFLAGS)))
|
||||
env.Append(CFLAGS=string.split(str(CFLAGS)))
|
||||
|
||||
LINKFLAGS = env.get('LINKFLAGS', '')
|
||||
env['LINKFLAGS'] = ''
|
||||
LINKFLAGS = env.get('LINKFLAGS', '')
|
||||
env['LINKFLAGS'] = ''
|
||||
|
||||
env.Append(LINKFLAGS=string.split(str(LINKFLAGS)))
|
||||
env.Append(LINKFLAGS=string.split(str(LINKFLAGS)))
|
||||
|
||||
flag_list = platform_flags[selected_platform]
|
||||
for f in flag_list:
|
||||
if not (f[0] in ARGUMENTS): # allow command line to override platform flags
|
||||
env[f[0]] = f[1]
|
||||
flag_list = platform_flags[selected_platform]
|
||||
for f in flag_list:
|
||||
if not (f[0] in ARGUMENTS): # allow command line to override platform flags
|
||||
env[f[0]] = f[1]
|
||||
|
||||
#must happen after the flags, so when flags are used by configure, stuff happens (ie, ssl on x11)
|
||||
detect.configure(env)
|
||||
#must happen after the flags, so when flags are used by configure, stuff happens (ie, ssl on x11)
|
||||
detect.configure(env)
|
||||
|
||||
#env['platform_libsuffix'] = env['LIBSUFFIX']
|
||||
#env['platform_libsuffix'] = env['LIBSUFFIX']
|
||||
|
||||
suffix="."+selected_platform
|
||||
suffix="."+selected_platform
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["tools"]=="yes"):
|
||||
print("Tools can only be built with targets 'debug' and 'release_debug'.")
|
||||
sys.exit(255)
|
||||
suffix+=".opt"
|
||||
if (env["target"]=="release"):
|
||||
if (env["tools"]=="yes"):
|
||||
print("Tools can only be built with targets 'debug' and 'release_debug'.")
|
||||
sys.exit(255)
|
||||
suffix+=".opt"
|
||||
|
||||
env.Append(CCFLAGS=['-DNDEBUG']);
|
||||
env.Append(CCFLAGS=['-DNDEBUG']);
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
if (env["tools"]=="yes"):
|
||||
suffix+=".opt.tools"
|
||||
else:
|
||||
suffix+=".opt.debug"
|
||||
else:
|
||||
if (env["tools"]=="yes"):
|
||||
suffix+=".tools"
|
||||
else:
|
||||
suffix+=".debug"
|
||||
elif (env["target"]=="release_debug"):
|
||||
if (env["tools"]=="yes"):
|
||||
suffix+=".opt.tools"
|
||||
else:
|
||||
suffix+=".opt.debug"
|
||||
else:
|
||||
if (env["tools"]=="yes"):
|
||||
suffix+=".tools"
|
||||
else:
|
||||
suffix+=".debug"
|
||||
|
||||
if env["arch"] != "":
|
||||
suffix += "."+env["arch"]
|
||||
elif (env["bits"]=="32"):
|
||||
suffix+=".32"
|
||||
elif (env["bits"]=="64"):
|
||||
suffix+=".64"
|
||||
elif (env["bits"]=="fat"):
|
||||
suffix+=".fat"
|
||||
if env["arch"] != "":
|
||||
suffix += "."+env["arch"]
|
||||
elif (env["bits"]=="32"):
|
||||
suffix+=".32"
|
||||
elif (env["bits"]=="64"):
|
||||
suffix+=".64"
|
||||
elif (env["bits"]=="fat"):
|
||||
suffix+=".fat"
|
||||
|
||||
suffix+=env.extra_suffix
|
||||
suffix+=env.extra_suffix
|
||||
|
||||
env["PROGSUFFIX"]=suffix+env["PROGSUFFIX"]
|
||||
env["OBJSUFFIX"]=suffix+env["OBJSUFFIX"]
|
||||
env["LIBSUFFIX"]=suffix+env["LIBSUFFIX"]
|
||||
env["SHLIBSUFFIX"]=suffix+env["SHLIBSUFFIX"]
|
||||
env["PROGSUFFIX"]=suffix+env["PROGSUFFIX"]
|
||||
env["OBJSUFFIX"]=suffix+env["OBJSUFFIX"]
|
||||
env["LIBSUFFIX"]=suffix+env["LIBSUFFIX"]
|
||||
env["SHLIBSUFFIX"]=suffix+env["SHLIBSUFFIX"]
|
||||
|
||||
sys.path.remove("./platform/"+selected_platform)
|
||||
sys.modules.pop('detect')
|
||||
sys.path.remove("./platform/"+selected_platform)
|
||||
sys.modules.pop('detect')
|
||||
|
||||
|
||||
env.module_list=[]
|
||||
env.module_list=[]
|
||||
|
||||
for x in module_list:
|
||||
if env['module_'+x+'_enabled'] != "yes":
|
||||
continue
|
||||
tmppath="./modules/"+x
|
||||
sys.path.append(tmppath)
|
||||
env.current_module=x
|
||||
import config
|
||||
if (config.can_build(selected_platform)):
|
||||
config.configure(env)
|
||||
env.module_list.append(x)
|
||||
sys.path.remove(tmppath)
|
||||
sys.modules.pop('config')
|
||||
for x in module_list:
|
||||
if env['module_'+x+'_enabled'] != "yes":
|
||||
continue
|
||||
tmppath="./modules/"+x
|
||||
sys.path.append(tmppath)
|
||||
env.current_module=x
|
||||
import config
|
||||
if (config.can_build(selected_platform)):
|
||||
config.configure(env)
|
||||
env.module_list.append(x)
|
||||
sys.path.remove(tmppath)
|
||||
sys.modules.pop('config')
|
||||
|
||||
|
||||
if (env.use_ptrcall):
|
||||
env.Append(CPPFLAGS=['-DPTRCALL_ENABLED']);
|
||||
if (env.use_ptrcall):
|
||||
env.Append(CPPFLAGS=['-DPTRCALL_ENABLED']);
|
||||
|
||||
# to test 64 bits compiltion
|
||||
# env.Append(CPPFLAGS=['-m64'])
|
||||
# to test 64 bits compiltion
|
||||
# env.Append(CPPFLAGS=['-m64'])
|
||||
|
||||
if (env['tools']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DTOOLS_ENABLED'])
|
||||
if (env['disable_3d']=='yes'):
|
||||
env.Append(CPPFLAGS=['-D_3D_DISABLED'])
|
||||
if (env['gdscript']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DGDSCRIPT_ENABLED'])
|
||||
if (env['disable_advanced_gui']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DADVANCED_GUI_DISABLED'])
|
||||
if (env['tools']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DTOOLS_ENABLED'])
|
||||
if (env['disable_3d']=='yes'):
|
||||
env.Append(CPPFLAGS=['-D_3D_DISABLED'])
|
||||
if (env['gdscript']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DGDSCRIPT_ENABLED'])
|
||||
if (env['disable_advanced_gui']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DADVANCED_GUI_DISABLED'])
|
||||
|
||||
if (env['minizip'] == 'yes'):
|
||||
env.Append(CPPFLAGS=['-DMINIZIP_ENABLED'])
|
||||
if (env['minizip'] == 'yes'):
|
||||
env.Append(CPPFLAGS=['-DMINIZIP_ENABLED'])
|
||||
|
||||
if (env['xml']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DXML_ENABLED'])
|
||||
if (env['xml']=='yes'):
|
||||
env.Append(CPPFLAGS=['-DXML_ENABLED'])
|
||||
|
||||
if (env['verbose']=='no'):
|
||||
methods.no_verbose(sys,env)
|
||||
if (env['verbose']=='no'):
|
||||
methods.no_verbose(sys,env)
|
||||
|
||||
Export('env')
|
||||
Export('env')
|
||||
|
||||
#build subdirs, the build order is dependent on link order.
|
||||
#build subdirs, the build order is dependent on link order.
|
||||
|
||||
SConscript("core/SCsub")
|
||||
SConscript("servers/SCsub")
|
||||
SConscript("scene/SCsub")
|
||||
SConscript("tools/SCsub")
|
||||
SConscript("drivers/SCsub")
|
||||
SConscript("bin/SCsub")
|
||||
SConscript("core/SCsub")
|
||||
SConscript("servers/SCsub")
|
||||
SConscript("scene/SCsub")
|
||||
SConscript("tools/SCsub")
|
||||
SConscript("drivers/SCsub")
|
||||
SConscript("bin/SCsub")
|
||||
|
||||
SConscript("modules/SCsub")
|
||||
SConscript("main/SCsub")
|
||||
SConscript("modules/SCsub")
|
||||
SConscript("main/SCsub")
|
||||
|
||||
SConscript("platform/"+selected_platform+"/SCsub"); # build selected platform
|
||||
SConscript("platform/"+selected_platform+"/SCsub"); # build selected platform
|
||||
|
||||
# Microsoft Visual Studio Project Generation
|
||||
if (env['vsproj'])=="yes":
|
||||
# Microsoft Visual Studio Project Generation
|
||||
if (env['vsproj'])=="yes":
|
||||
|
||||
AddToVSProject(env.core_sources)
|
||||
AddToVSProject(env.main_sources)
|
||||
AddToVSProject(env.modules_sources)
|
||||
AddToVSProject(env.scene_sources)
|
||||
AddToVSProject(env.servers_sources)
|
||||
AddToVSProject(env.tool_sources)
|
||||
AddToVSProject(env.core_sources)
|
||||
AddToVSProject(env.main_sources)
|
||||
AddToVSProject(env.modules_sources)
|
||||
AddToVSProject(env.scene_sources)
|
||||
AddToVSProject(env.servers_sources)
|
||||
AddToVSProject(env.tool_sources)
|
||||
|
||||
# this env flag won't work, it needs to be set in env_base=Environment(MSVC_VERSION='9.0')
|
||||
# Even then, SCons still seems to ignore it and builds with the latest MSVC...
|
||||
# That said, it's not needed to be set so far but I'm leaving it here so that this comment
|
||||
# has a purpose.
|
||||
#env['MSVS_VERSION']='9.0'
|
||||
# this env flag won't work, it needs to be set in env_base=Environment(MSVC_VERSION='9.0')
|
||||
# Even then, SCons still seems to ignore it and builds with the latest MSVC...
|
||||
# That said, it's not needed to be set so far but I'm leaving it here so that this comment
|
||||
# has a purpose.
|
||||
#env['MSVS_VERSION']='9.0'
|
||||
|
||||
|
||||
# Calls a CMD with /C(lose) and /V(delayed environment variable expansion) options.
|
||||
# And runs vcvarsall bat for the propper arhitecture and scons for propper configuration
|
||||
env['MSVSBUILDCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons platform=windows target=$(Configuration) tools=!tools! -j2'
|
||||
env['MSVSREBUILDCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) & call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons platform=windows target=$(Configuration) tools=!tools! vsproj=yes -j2'
|
||||
env['MSVSCLEANCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons --clean platform=windows target=$(Configuration) tools=!tools! -j2'
|
||||
# Calls a CMD with /C(lose) and /V(delayed environment variable expansion) options.
|
||||
# And runs vcvarsall bat for the propper arhitecture and scons for propper configuration
|
||||
env['MSVSBUILDCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons platform=windows target=$(Configuration) tools=!tools! -j2'
|
||||
env['MSVSREBUILDCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) & call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons platform=windows target=$(Configuration) tools=!tools! vsproj=yes -j2'
|
||||
env['MSVSCLEANCOM'] = 'cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=yes" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "$(VCInstallDir)vcvarsall.bat" !plat! ^& scons --clean platform=windows target=$(Configuration) tools=!tools! -j2'
|
||||
|
||||
# This version information (Win32, x64, Debug, Release, Release_Debug seems to be
|
||||
# required for Visual Studio to understand that it needs to generate an NMAKE
|
||||
# project. Do not modify without knowing what you are doing.
|
||||
debug_variants = ['debug|Win32']+['debug|x64']
|
||||
release_variants = ['release|Win32']+['release|x64']
|
||||
release_debug_variants = ['release_debug|Win32']+['release_debug|x64']
|
||||
variants = debug_variants + release_variants + release_debug_variants
|
||||
debug_targets = ['bin\\godot.windows.tools.32.exe']+['bin\\godot.windows.tools.64.exe']
|
||||
release_targets = ['bin\\godot.windows.opt.32.exe']+['bin\\godot.windows.opt.64.exe']
|
||||
release_debug_targets = ['bin\\godot.windows.opt.tools.32.exe']+['bin\\godot.windows.opt.tools.64.exe']
|
||||
targets = debug_targets + release_targets + release_debug_targets
|
||||
msvproj = env.MSVSProject(target = ['#godot' + env['MSVSPROJECTSUFFIX'] ],
|
||||
incs = env.vs_incs,
|
||||
srcs = env.vs_srcs,
|
||||
runfile = targets,
|
||||
buildtarget = targets,
|
||||
auto_build_solution=1,
|
||||
variant = variants)
|
||||
# This version information (Win32, x64, Debug, Release, Release_Debug seems to be
|
||||
# required for Visual Studio to understand that it needs to generate an NMAKE
|
||||
# project. Do not modify without knowing what you are doing.
|
||||
debug_variants = ['debug|Win32']+['debug|x64']
|
||||
release_variants = ['release|Win32']+['release|x64']
|
||||
release_debug_variants = ['release_debug|Win32']+['release_debug|x64']
|
||||
variants = debug_variants + release_variants + release_debug_variants
|
||||
debug_targets = ['bin\\godot.windows.tools.32.exe']+['bin\\godot.windows.tools.64.exe']
|
||||
release_targets = ['bin\\godot.windows.opt.32.exe']+['bin\\godot.windows.opt.64.exe']
|
||||
release_debug_targets = ['bin\\godot.windows.opt.tools.32.exe']+['bin\\godot.windows.opt.tools.64.exe']
|
||||
targets = debug_targets + release_targets + release_debug_targets
|
||||
msvproj = env.MSVSProject(target = ['#godot' + env['MSVSPROJECTSUFFIX'] ],
|
||||
incs = env.vs_incs,
|
||||
srcs = env.vs_srcs,
|
||||
runfile = targets,
|
||||
buildtarget = targets,
|
||||
auto_build_solution=1,
|
||||
variant = variants)
|
||||
|
||||
else:
|
||||
|
||||
print("No valid target platform selected.")
|
||||
print("The following were detected:")
|
||||
for x in platform_list:
|
||||
print("\t"+x)
|
||||
print("\nPlease run scons again with argument: platform=<string>")
|
||||
print("No valid target platform selected.")
|
||||
print("The following were detected:")
|
||||
for x in platform_list:
|
||||
print("\t"+x)
|
||||
print("\nPlease run scons again with argument: platform=<string>")
|
||||
|
|
42
core/SCsub
42
core/SCsub
|
@ -9,9 +9,9 @@ gd_call=""
|
|||
gd_inc=""
|
||||
|
||||
for x in env.global_defaults:
|
||||
env.core_sources.append("#platform/"+x+"/globals/global_defaults.cpp")
|
||||
gd_inc+='#include "platform/'+x+'/globals/global_defaults.h"\n'
|
||||
gd_call+="\tregister_"+x+"_global_defaults();\n"
|
||||
env.core_sources.append("#platform/"+x+"/globals/global_defaults.cpp")
|
||||
gd_inc+='#include "platform/'+x+'/globals/global_defaults.h"\n'
|
||||
gd_call+="\tregister_"+x+"_global_defaults();\n"
|
||||
|
||||
gd_cpp='#include "globals.h"\n'
|
||||
gd_cpp+=gd_inc
|
||||
|
@ -24,25 +24,25 @@ f.close()
|
|||
import os
|
||||
txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0"
|
||||
if ("SCRIPT_AES256_ENCRYPTION_KEY" in os.environ):
|
||||
e=os.environ["SCRIPT_AES256_ENCRYPTION_KEY"]
|
||||
txt = ""
|
||||
ec_valid=True
|
||||
if (len(e)!=64):
|
||||
ec_valid=False
|
||||
else:
|
||||
e=os.environ["SCRIPT_AES256_ENCRYPTION_KEY"]
|
||||
txt = ""
|
||||
ec_valid=True
|
||||
if (len(e)!=64):
|
||||
ec_valid=False
|
||||
else:
|
||||
|
||||
for i in range(len(e)>>1):
|
||||
if (i>0):
|
||||
txt+=","
|
||||
txts="0x"+e[i*2:i*2+2]
|
||||
try:
|
||||
int(txts,16)
|
||||
except:
|
||||
ec_valid=False
|
||||
txt+=txts
|
||||
if (not ec_valid):
|
||||
txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0"
|
||||
print("Invalid AES256 encryption key, not 64 bits hex: "+e)
|
||||
for i in range(len(e)>>1):
|
||||
if (i>0):
|
||||
txt+=","
|
||||
txts="0x"+e[i*2:i*2+2]
|
||||
try:
|
||||
int(txts,16)
|
||||
except:
|
||||
ec_valid=False
|
||||
txt+=txts
|
||||
if (not ec_valid):
|
||||
txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0"
|
||||
print("Invalid AES256 encryption key, not 64 bits hex: "+e)
|
||||
|
||||
f = open("script_encryption_key.cpp", "wb")
|
||||
f.write("#include \"globals.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
|
||||
|
|
|
@ -168,94 +168,94 @@ MethodBind* create_method_bind($ifret R$ $ifnoret void$ (T::*p_method)($arg, P@$
|
|||
|
||||
def make_version(template,nargs,argmax,const,ret):
|
||||
|
||||
intext=template
|
||||
from_pos=0
|
||||
outtext=""
|
||||
intext=template
|
||||
from_pos=0
|
||||
outtext=""
|
||||
|
||||
while(True):
|
||||
to_pos=intext.find("$",from_pos)
|
||||
if (to_pos==-1):
|
||||
outtext+=intext[from_pos:]
|
||||
break
|
||||
else:
|
||||
outtext+=intext[from_pos:to_pos]
|
||||
end=intext.find("$",to_pos+1)
|
||||
if (end==-1):
|
||||
break # ignore
|
||||
macro=intext[to_pos+1:end]
|
||||
cmd=""
|
||||
data=""
|
||||
while(True):
|
||||
to_pos=intext.find("$",from_pos)
|
||||
if (to_pos==-1):
|
||||
outtext+=intext[from_pos:]
|
||||
break
|
||||
else:
|
||||
outtext+=intext[from_pos:to_pos]
|
||||
end=intext.find("$",to_pos+1)
|
||||
if (end==-1):
|
||||
break # ignore
|
||||
macro=intext[to_pos+1:end]
|
||||
cmd=""
|
||||
data=""
|
||||
|
||||
if (macro.find(" ")!=-1):
|
||||
cmd=macro[0:macro.find(" ")]
|
||||
data=macro[macro.find(" ")+1:]
|
||||
else:
|
||||
cmd=macro
|
||||
if (macro.find(" ")!=-1):
|
||||
cmd=macro[0:macro.find(" ")]
|
||||
data=macro[macro.find(" ")+1:]
|
||||
else:
|
||||
cmd=macro
|
||||
|
||||
if (cmd=="argc"):
|
||||
outtext+=str(nargs)
|
||||
if (cmd=="ifret" and ret):
|
||||
outtext+=data
|
||||
if (cmd=="ifargs" and nargs):
|
||||
outtext+=data
|
||||
if (cmd=="ifretargs" and nargs and ret):
|
||||
outtext+=data
|
||||
if (cmd=="ifconst" and const):
|
||||
outtext+=data
|
||||
elif (cmd=="ifnoconst" and not const):
|
||||
outtext+=data
|
||||
elif (cmd=="ifnoret" and not ret):
|
||||
outtext+=data
|
||||
elif (cmd=="iftempl" and (nargs>0 or ret)):
|
||||
outtext+=data
|
||||
elif (cmd=="arg,"):
|
||||
for i in range(1,nargs+1):
|
||||
if (i>1):
|
||||
outtext+=", "
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="arg"):
|
||||
for i in range(1,nargs+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="noarg"):
|
||||
for i in range(nargs+1,argmax+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="noarg"):
|
||||
for i in range(nargs+1,argmax+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
if (cmd=="argc"):
|
||||
outtext+=str(nargs)
|
||||
if (cmd=="ifret" and ret):
|
||||
outtext+=data
|
||||
if (cmd=="ifargs" and nargs):
|
||||
outtext+=data
|
||||
if (cmd=="ifretargs" and nargs and ret):
|
||||
outtext+=data
|
||||
if (cmd=="ifconst" and const):
|
||||
outtext+=data
|
||||
elif (cmd=="ifnoconst" and not const):
|
||||
outtext+=data
|
||||
elif (cmd=="ifnoret" and not ret):
|
||||
outtext+=data
|
||||
elif (cmd=="iftempl" and (nargs>0 or ret)):
|
||||
outtext+=data
|
||||
elif (cmd=="arg,"):
|
||||
for i in range(1,nargs+1):
|
||||
if (i>1):
|
||||
outtext+=", "
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="arg"):
|
||||
for i in range(1,nargs+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="noarg"):
|
||||
for i in range(nargs+1,argmax+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
elif (cmd=="noarg"):
|
||||
for i in range(nargs+1,argmax+1):
|
||||
outtext+=data.replace("@",str(i))
|
||||
|
||||
from_pos=end+1
|
||||
from_pos=end+1
|
||||
|
||||
return outtext
|
||||
return outtext
|
||||
|
||||
|
||||
def run(target, source, env):
|
||||
|
||||
versions=10
|
||||
versions_ext=6
|
||||
text=""
|
||||
text_ext=""
|
||||
versions=10
|
||||
versions_ext=6
|
||||
text=""
|
||||
text_ext=""
|
||||
|
||||
for i in range(0,versions+1):
|
||||
for i in range(0,versions+1):
|
||||
|
||||
t=""
|
||||
t+=make_version(template,i,versions,False,False)
|
||||
t+=make_version(template_typed,i,versions,False,False)
|
||||
t+=make_version(template,i,versions,False,True)
|
||||
t+=make_version(template_typed,i,versions,False,True)
|
||||
t+=make_version(template,i,versions,True,False)
|
||||
t+=make_version(template_typed,i,versions,True,False)
|
||||
t+=make_version(template,i,versions,True,True)
|
||||
t+=make_version(template_typed,i,versions,True,True)
|
||||
if (i>=versions_ext):
|
||||
text_ext+=t
|
||||
else:
|
||||
text+=t
|
||||
t=""
|
||||
t+=make_version(template,i,versions,False,False)
|
||||
t+=make_version(template_typed,i,versions,False,False)
|
||||
t+=make_version(template,i,versions,False,True)
|
||||
t+=make_version(template_typed,i,versions,False,True)
|
||||
t+=make_version(template,i,versions,True,False)
|
||||
t+=make_version(template_typed,i,versions,True,False)
|
||||
t+=make_version(template,i,versions,True,True)
|
||||
t+=make_version(template_typed,i,versions,True,True)
|
||||
if (i>=versions_ext):
|
||||
text_ext+=t
|
||||
else:
|
||||
text+=t
|
||||
|
||||
|
||||
f=open(target[0].path,"w")
|
||||
f.write(text)
|
||||
f.close()
|
||||
f=open(target[0].path,"w")
|
||||
f.write(text)
|
||||
f.close()
|
||||
|
||||
f=open(target[1].path,"w")
|
||||
f.write(text_ext)
|
||||
f.close()
|
||||
f=open(target[1].path,"w")
|
||||
f.write(text_ext)
|
||||
f.close()
|
||||
|
|
|
@ -17,195 +17,195 @@ tab=0
|
|||
old_classes={}
|
||||
|
||||
def write_string(_f, text,newline=True):
|
||||
for t in range(tab):
|
||||
_f.write("\t")
|
||||
_f.write(text)
|
||||
if (newline):
|
||||
_f.write("\n")
|
||||
for t in range(tab):
|
||||
_f.write("\t")
|
||||
_f.write(text)
|
||||
if (newline):
|
||||
_f.write("\n")
|
||||
|
||||
def escape(ret):
|
||||
ret=ret.replace("&","&");
|
||||
ret=ret.replace("<",">");
|
||||
ret=ret.replace(">","<");
|
||||
ret=ret.replace("'","'");
|
||||
ret=ret.replace("\"",""");
|
||||
return ret
|
||||
ret=ret.replace("&","&");
|
||||
ret=ret.replace("<",">");
|
||||
ret=ret.replace(">","<");
|
||||
ret=ret.replace("'","'");
|
||||
ret=ret.replace("\"",""");
|
||||
return ret
|
||||
|
||||
|
||||
def inc_tab():
|
||||
global tab
|
||||
tab+=1
|
||||
global tab
|
||||
tab+=1
|
||||
|
||||
def dec_tab():
|
||||
global tab
|
||||
tab-=1
|
||||
global tab
|
||||
tab-=1
|
||||
|
||||
write_string(f,'<?xml version="1.0" encoding="UTF-8" ?>')
|
||||
write_string(f,'<doc version="'+new_doc.attrib["version"]+'">')
|
||||
|
||||
def get_tag(node,name):
|
||||
tag=""
|
||||
if (name in node.attrib):
|
||||
tag=' '+name+'="'+escape(node.attrib[name])+'" '
|
||||
return tag
|
||||
tag=""
|
||||
if (name in node.attrib):
|
||||
tag=' '+name+'="'+escape(node.attrib[name])+'" '
|
||||
return tag
|
||||
|
||||
def find_method_descr(old_class,name):
|
||||
|
||||
methods = old_class.find("methods")
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
for m in list(methods):
|
||||
if (m.attrib["name"]==name):
|
||||
description=m.find("description")
|
||||
if (description!=None and description.text.strip()!=""):
|
||||
return description.text
|
||||
methods = old_class.find("methods")
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
for m in list(methods):
|
||||
if (m.attrib["name"]==name):
|
||||
description=m.find("description")
|
||||
if (description!=None and description.text.strip()!=""):
|
||||
return description.text
|
||||
|
||||
return None
|
||||
return None
|
||||
|
||||
def find_signal_descr(old_class,name):
|
||||
|
||||
signals = old_class.find("signals")
|
||||
if(signals!=None and len(list(signals))>0):
|
||||
for m in list(signals):
|
||||
if (m.attrib["name"]==name):
|
||||
description=m.find("description")
|
||||
if (description!=None and description.text.strip()!=""):
|
||||
return description.text
|
||||
signals = old_class.find("signals")
|
||||
if(signals!=None and len(list(signals))>0):
|
||||
for m in list(signals):
|
||||
if (m.attrib["name"]==name):
|
||||
description=m.find("description")
|
||||
if (description!=None and description.text.strip()!=""):
|
||||
return description.text
|
||||
|
||||
return None
|
||||
return None
|
||||
|
||||
def find_constant_descr(old_class,name):
|
||||
|
||||
if (old_class==None):
|
||||
return None
|
||||
constants = old_class.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
for m in list(constants):
|
||||
if (m.attrib["name"]==name):
|
||||
if (m.text.strip()!=""):
|
||||
return m.text
|
||||
return None
|
||||
if (old_class==None):
|
||||
return None
|
||||
constants = old_class.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
for m in list(constants):
|
||||
if (m.attrib["name"]==name):
|
||||
if (m.text.strip()!=""):
|
||||
return m.text
|
||||
return None
|
||||
|
||||
def write_class(c):
|
||||
class_name = c.attrib["name"]
|
||||
print("Parsing Class: "+class_name)
|
||||
if (class_name in old_classes):
|
||||
old_class=old_classes[class_name]
|
||||
else:
|
||||
old_class=None
|
||||
class_name = c.attrib["name"]
|
||||
print("Parsing Class: "+class_name)
|
||||
if (class_name in old_classes):
|
||||
old_class=old_classes[class_name]
|
||||
else:
|
||||
old_class=None
|
||||
|
||||
|
||||
category=get_tag(c,"category")
|
||||
inherits=get_tag(c,"inherits")
|
||||
write_string(f,'<class name="'+class_name+'" '+category+inherits+'>')
|
||||
inc_tab()
|
||||
category=get_tag(c,"category")
|
||||
inherits=get_tag(c,"inherits")
|
||||
write_string(f,'<class name="'+class_name+'" '+category+inherits+'>')
|
||||
inc_tab()
|
||||
|
||||
write_string(f,"<brief_description>")
|
||||
write_string(f,"<brief_description>")
|
||||
|
||||
if (old_class!=None):
|
||||
old_brief_descr=old_class.find("brief_description")
|
||||
if (old_brief_descr!=None):
|
||||
write_string(f,escape(old_brief_descr.text.strip()))
|
||||
if (old_class!=None):
|
||||
old_brief_descr=old_class.find("brief_description")
|
||||
if (old_brief_descr!=None):
|
||||
write_string(f,escape(old_brief_descr.text.strip()))
|
||||
|
||||
|
||||
write_string(f,"</brief_description>")
|
||||
write_string(f,"</brief_description>")
|
||||
|
||||
write_string(f,"<description>")
|
||||
if (old_class!=None):
|
||||
old_descr=old_class.find("description")
|
||||
if (old_descr!=None):
|
||||
write_string(f,escape(old_descr.text.strip()))
|
||||
write_string(f,"<description>")
|
||||
if (old_class!=None):
|
||||
old_descr=old_class.find("description")
|
||||
if (old_descr!=None):
|
||||
write_string(f,escape(old_descr.text.strip()))
|
||||
|
||||
write_string(f,"</description>")
|
||||
write_string(f,"</description>")
|
||||
|
||||
methods = c.find("methods")
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
methods = c.find("methods")
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
|
||||
write_string(f,"<methods>")
|
||||
inc_tab()
|
||||
write_string(f,"<methods>")
|
||||
inc_tab()
|
||||
|
||||
for m in list(methods):
|
||||
qualifiers=get_tag(m,"qualifiers")
|
||||
for m in list(methods):
|
||||
qualifiers=get_tag(m,"qualifiers")
|
||||
|
||||
write_string(f,'<method name="'+escape(m.attrib["name"])+'" ' +qualifiers+'>')
|
||||
inc_tab()
|
||||
write_string(f,'<method name="'+escape(m.attrib["name"])+'" ' +qualifiers+'>')
|
||||
inc_tab()
|
||||
|
||||
for a in list(m):
|
||||
if (a.tag=="return"):
|
||||
typ=get_tag(a,"type")
|
||||
write_string(f,'<return'+typ+'>');
|
||||
write_string(f,'</return>');
|
||||
elif (a.tag=="argument"):
|
||||
for a in list(m):
|
||||
if (a.tag=="return"):
|
||||
typ=get_tag(a,"type")
|
||||
write_string(f,'<return'+typ+'>');
|
||||
write_string(f,'</return>');
|
||||
elif (a.tag=="argument"):
|
||||
|
||||
default=get_tag(a,"default")
|
||||
default=get_tag(a,"default")
|
||||
|
||||
write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'"' +default+'>');
|
||||
write_string(f,'</argument>');
|
||||
write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'"' +default+'>');
|
||||
write_string(f,'</argument>');
|
||||
|
||||
write_string(f,'<description>');
|
||||
if (old_class!=None):
|
||||
old_method_descr=find_method_descr(old_class,m.attrib["name"])
|
||||
if (old_method_descr):
|
||||
write_string(f,escape(escape(old_method_descr.strip())))
|
||||
write_string(f,'<description>');
|
||||
if (old_class!=None):
|
||||
old_method_descr=find_method_descr(old_class,m.attrib["name"])
|
||||
if (old_method_descr):
|
||||
write_string(f,escape(escape(old_method_descr.strip())))
|
||||
|
||||
write_string(f,'</description>');
|
||||
dec_tab()
|
||||
write_string(f,"</method>")
|
||||
dec_tab()
|
||||
write_string(f,"</methods>")
|
||||
write_string(f,'</description>');
|
||||
dec_tab()
|
||||
write_string(f,"</method>")
|
||||
dec_tab()
|
||||
write_string(f,"</methods>")
|
||||
|
||||
signals = c.find("signals")
|
||||
if(signals!=None and len(list(signals))>0):
|
||||
signals = c.find("signals")
|
||||
if(signals!=None and len(list(signals))>0):
|
||||
|
||||
write_string(f,"<signals>")
|
||||
inc_tab()
|
||||
write_string(f,"<signals>")
|
||||
inc_tab()
|
||||
|
||||
for m in list(signals):
|
||||
for m in list(signals):
|
||||
|
||||
write_string(f,'<signal name="'+escape(m.attrib["name"])+'">')
|
||||
inc_tab()
|
||||
write_string(f,'<signal name="'+escape(m.attrib["name"])+'">')
|
||||
inc_tab()
|
||||
|
||||
for a in list(m):
|
||||
if (a.tag=="argument"):
|
||||
for a in list(m):
|
||||
if (a.tag=="argument"):
|
||||
|
||||
write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'">');
|
||||
write_string(f,'</argument>');
|
||||
write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'">');
|
||||
write_string(f,'</argument>');
|
||||
|
||||
write_string(f,'<description>');
|
||||
if (old_class!=None):
|
||||
old_signal_descr=find_signal_descr(old_class,m.attrib["name"])
|
||||
if (old_signal_descr):
|
||||
write_string(f,escape(old_signal_descr.strip()))
|
||||
write_string(f,'</description>');
|
||||
dec_tab()
|
||||
write_string(f,"</signal>")
|
||||
dec_tab()
|
||||
write_string(f,"</signals>")
|
||||
write_string(f,'<description>');
|
||||
if (old_class!=None):
|
||||
old_signal_descr=find_signal_descr(old_class,m.attrib["name"])
|
||||
if (old_signal_descr):
|
||||
write_string(f,escape(old_signal_descr.strip()))
|
||||
write_string(f,'</description>');
|
||||
dec_tab()
|
||||
write_string(f,"</signal>")
|
||||
dec_tab()
|
||||
write_string(f,"</signals>")
|
||||
|
||||
constants = c.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
constants = c.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
|
||||
write_string(f,"<constants>")
|
||||
inc_tab()
|
||||
write_string(f,"<constants>")
|
||||
inc_tab()
|
||||
|
||||
for m in list(constants):
|
||||
for m in list(constants):
|
||||
|
||||
write_string(f,'<constant name="'+escape(m.attrib["name"])+'" value="'+m.attrib["value"]+'">')
|
||||
old_constant_descr=find_constant_descr(old_class,m.attrib["name"])
|
||||
if (old_constant_descr):
|
||||
write_string(f,escape(old_constant_descr.strip()))
|
||||
write_string(f,"</constant>")
|
||||
write_string(f,'<constant name="'+escape(m.attrib["name"])+'" value="'+m.attrib["value"]+'">')
|
||||
old_constant_descr=find_constant_descr(old_class,m.attrib["name"])
|
||||
if (old_constant_descr):
|
||||
write_string(f,escape(old_constant_descr.strip()))
|
||||
write_string(f,"</constant>")
|
||||
|
||||
dec_tab()
|
||||
write_string(f,"</constants>")
|
||||
dec_tab()
|
||||
write_string(f,"</constants>")
|
||||
|
||||
dec_tab()
|
||||
write_string(f,"</class>")
|
||||
dec_tab()
|
||||
write_string(f,"</class>")
|
||||
|
||||
for c in list(old_doc):
|
||||
old_classes[c.attrib["name"]]=c
|
||||
old_classes[c.attrib["name"]]=c
|
||||
|
||||
for c in list(new_doc):
|
||||
write_class(c)
|
||||
write_class(c)
|
||||
write_string(f,'</doc>\n')
|
||||
|
||||
|
||||
|
|
|
@ -11,66 +11,66 @@ import xml.etree.ElementTree as ET
|
|||
################################################################################
|
||||
|
||||
flags = {
|
||||
'c': platform.platform() != 'Windows', # Disable by default on windows, since we use ANSI escape codes
|
||||
'b': False,
|
||||
'g': False,
|
||||
's': False,
|
||||
'u': False,
|
||||
'h': False,
|
||||
'p': False,
|
||||
'o': True,
|
||||
'i': False,
|
||||
'c': platform.platform() != 'Windows', # Disable by default on windows, since we use ANSI escape codes
|
||||
'b': False,
|
||||
'g': False,
|
||||
's': False,
|
||||
'u': False,
|
||||
'h': False,
|
||||
'p': False,
|
||||
'o': True,
|
||||
'i': False,
|
||||
}
|
||||
flag_descriptions = {
|
||||
'c': 'Toggle colors when outputting.',
|
||||
'b': 'Toggle showing only not fully described classes.',
|
||||
'g': 'Toggle showing only completed classes.',
|
||||
's': 'Toggle showing comments about the status.',
|
||||
'u': 'Toggle URLs to docs.',
|
||||
'h': 'Show help and exit.',
|
||||
'p': 'Toggle showing percentage as well as counts.',
|
||||
'o': 'Toggle overall column.',
|
||||
'i': 'Toggle collapse of class items columns.',
|
||||
'c': 'Toggle colors when outputting.',
|
||||
'b': 'Toggle showing only not fully described classes.',
|
||||
'g': 'Toggle showing only completed classes.',
|
||||
's': 'Toggle showing comments about the status.',
|
||||
'u': 'Toggle URLs to docs.',
|
||||
'h': 'Show help and exit.',
|
||||
'p': 'Toggle showing percentage as well as counts.',
|
||||
'o': 'Toggle overall column.',
|
||||
'i': 'Toggle collapse of class items columns.',
|
||||
}
|
||||
long_flags = {
|
||||
'colors': 'c',
|
||||
'use-colors': 'c',
|
||||
'colors': 'c',
|
||||
'use-colors': 'c',
|
||||
|
||||
'bad': 'b',
|
||||
'only-bad': 'b',
|
||||
'bad': 'b',
|
||||
'only-bad': 'b',
|
||||
|
||||
'good': 'g',
|
||||
'only-good': 'g',
|
||||
'good': 'g',
|
||||
'only-good': 'g',
|
||||
|
||||
'comments': 's',
|
||||
'status': 's',
|
||||
'comments': 's',
|
||||
'status': 's',
|
||||
|
||||
'urls': 'u',
|
||||
'gen-url': 'u',
|
||||
'urls': 'u',
|
||||
'gen-url': 'u',
|
||||
|
||||
'help': 'h',
|
||||
'help': 'h',
|
||||
|
||||
'percent': 'p',
|
||||
'use-percentages': 'p',
|
||||
'percent': 'p',
|
||||
'use-percentages': 'p',
|
||||
|
||||
'overall': 'o',
|
||||
'use-overall': 'o',
|
||||
'overall': 'o',
|
||||
'use-overall': 'o',
|
||||
|
||||
'items': 'i',
|
||||
'collapse': 'i',
|
||||
'items': 'i',
|
||||
'collapse': 'i',
|
||||
}
|
||||
table_columns = ['name', 'brief_description', 'description', 'methods', 'constants', 'members', 'signals']
|
||||
table_column_names = ['Name', 'Brief Desc.', 'Desc.', 'Methods', 'Constants', 'Members', 'Signals']
|
||||
colors = {
|
||||
'name': [36], # cyan
|
||||
'part_big_problem': [4, 31], # underline, red
|
||||
'part_problem': [31], # red
|
||||
'part_mostly_good': [33], # yellow
|
||||
'part_good': [32], # green
|
||||
'url': [4, 34], # underline, blue
|
||||
'section': [1, 4], # bold, underline
|
||||
'state_off': [36], # cyan
|
||||
'state_on': [1, 35], # bold, magenta/plum
|
||||
'name': [36], # cyan
|
||||
'part_big_problem': [4, 31], # underline, red
|
||||
'part_problem': [31], # red
|
||||
'part_mostly_good': [33], # yellow
|
||||
'part_good': [32], # green
|
||||
'url': [4, 34], # underline, blue
|
||||
'section': [1, 4], # bold, underline
|
||||
'state_off': [36], # cyan
|
||||
'state_on': [1, 35], # bold, magenta/plum
|
||||
}
|
||||
overall_progress_description_weigth = 10
|
||||
|
||||
|
@ -81,22 +81,22 @@ overall_progress_description_weigth = 10
|
|||
################################################################################
|
||||
|
||||
def validate_tag(elem, tag):
|
||||
if elem.tag != tag:
|
||||
print('Tag mismatch, expected "' + tag + '", got ' + elem.tag)
|
||||
sys.exit(255)
|
||||
if elem.tag != tag:
|
||||
print('Tag mismatch, expected "' + tag + '", got ' + elem.tag)
|
||||
sys.exit(255)
|
||||
|
||||
def color(color, string):
|
||||
if flags['c']:
|
||||
color_format = ''
|
||||
for code in colors[color]:
|
||||
color_format += '\033[' + str(code) + 'm'
|
||||
return color_format + string + '\033[0m'
|
||||
else:
|
||||
return string
|
||||
if flags['c']:
|
||||
color_format = ''
|
||||
for code in colors[color]:
|
||||
color_format += '\033[' + str(code) + 'm'
|
||||
return color_format + string + '\033[0m'
|
||||
else:
|
||||
return string
|
||||
|
||||
ansi_escape = re.compile(r'\x1b[^m]*m')
|
||||
def nonescape_len(s):
|
||||
return len(ansi_escape.sub('', s))
|
||||
return len(ansi_escape.sub('', s))
|
||||
|
||||
|
||||
|
||||
|
@ -105,138 +105,138 @@ def nonescape_len(s):
|
|||
################################################################################
|
||||
|
||||
class ClassStatusProgress:
|
||||
def __init__(self, described = 0, total = 0):
|
||||
self.described = described
|
||||
self.total = total
|
||||
def __init__(self, described = 0, total = 0):
|
||||
self.described = described
|
||||
self.total = total
|
||||
|
||||
def __add__(self, other):
|
||||
return ClassStatusProgress(self.described + other.described, self.total + other.total)
|
||||
def __add__(self, other):
|
||||
return ClassStatusProgress(self.described + other.described, self.total + other.total)
|
||||
|
||||
def increment(self, described):
|
||||
if described:
|
||||
self.described += 1
|
||||
self.total += 1
|
||||
def increment(self, described):
|
||||
if described:
|
||||
self.described += 1
|
||||
self.total += 1
|
||||
|
||||
def is_ok(self):
|
||||
return self.described >= self.total
|
||||
def is_ok(self):
|
||||
return self.described >= self.total
|
||||
|
||||
def to_configured_colored_string(self):
|
||||
if flags['p']:
|
||||
return self.to_colored_string('{percent}% ({has}/{total})', '{pad_percent}{pad_described}{s}{pad_total}')
|
||||
else:
|
||||
return self.to_colored_string()
|
||||
def to_configured_colored_string(self):
|
||||
if flags['p']:
|
||||
return self.to_colored_string('{percent}% ({has}/{total})', '{pad_percent}{pad_described}{s}{pad_total}')
|
||||
else:
|
||||
return self.to_colored_string()
|
||||
|
||||
def to_colored_string(self, format='{has}/{total}', pad_format='{pad_described}{s}{pad_total}'):
|
||||
ratio = self.described/self.total if self.total != 0 else 1
|
||||
percent = round(100*ratio)
|
||||
s = format.format(has = str(self.described), total = str(self.total), percent = str(percent))
|
||||
if self.described >= self.total:
|
||||
s = color('part_good', s)
|
||||
elif self.described >= self.total/4*3:
|
||||
s = color('part_mostly_good', s)
|
||||
elif self.described > 0:
|
||||
s = color('part_problem', s)
|
||||
else:
|
||||
s = color('part_big_problem', s)
|
||||
pad_size = max(len(str(self.described)), len(str(self.total)))
|
||||
pad_described = ''.ljust(pad_size - len(str(self.described)))
|
||||
pad_percent = ''.ljust(3 - len(str(percent)))
|
||||
pad_total = ''.ljust(pad_size - len(str(self.total)))
|
||||
return pad_format.format(pad_described = pad_described, pad_total = pad_total, pad_percent = pad_percent, s = s)
|
||||
def to_colored_string(self, format='{has}/{total}', pad_format='{pad_described}{s}{pad_total}'):
|
||||
ratio = self.described/self.total if self.total != 0 else 1
|
||||
percent = round(100*ratio)
|
||||
s = format.format(has = str(self.described), total = str(self.total), percent = str(percent))
|
||||
if self.described >= self.total:
|
||||
s = color('part_good', s)
|
||||
elif self.described >= self.total/4*3:
|
||||
s = color('part_mostly_good', s)
|
||||
elif self.described > 0:
|
||||
s = color('part_problem', s)
|
||||
else:
|
||||
s = color('part_big_problem', s)
|
||||
pad_size = max(len(str(self.described)), len(str(self.total)))
|
||||
pad_described = ''.ljust(pad_size - len(str(self.described)))
|
||||
pad_percent = ''.ljust(3 - len(str(percent)))
|
||||
pad_total = ''.ljust(pad_size - len(str(self.total)))
|
||||
return pad_format.format(pad_described = pad_described, pad_total = pad_total, pad_percent = pad_percent, s = s)
|
||||
|
||||
|
||||
class ClassStatus:
|
||||
def __init__(self, name=''):
|
||||
self.name = name
|
||||
self.has_brief_description = True
|
||||
self.has_description = True
|
||||
self.progresses = {
|
||||
'methods': ClassStatusProgress(),
|
||||
'constants': ClassStatusProgress(),
|
||||
'members': ClassStatusProgress(),
|
||||
'signals': ClassStatusProgress()
|
||||
}
|
||||
def __init__(self, name=''):
|
||||
self.name = name
|
||||
self.has_brief_description = True
|
||||
self.has_description = True
|
||||
self.progresses = {
|
||||
'methods': ClassStatusProgress(),
|
||||
'constants': ClassStatusProgress(),
|
||||
'members': ClassStatusProgress(),
|
||||
'signals': ClassStatusProgress()
|
||||
}
|
||||
|
||||
def __add__(self, other):
|
||||
new_status = ClassStatus()
|
||||
new_status.name = self.name
|
||||
new_status.has_brief_description = self.has_brief_description and other.has_brief_description
|
||||
new_status.has_description = self.has_description and other.has_description
|
||||
for k in self.progresses:
|
||||
new_status.progresses[k] = self.progresses[k] + other.progresses[k]
|
||||
return new_status
|
||||
def __add__(self, other):
|
||||
new_status = ClassStatus()
|
||||
new_status.name = self.name
|
||||
new_status.has_brief_description = self.has_brief_description and other.has_brief_description
|
||||
new_status.has_description = self.has_description and other.has_description
|
||||
for k in self.progresses:
|
||||
new_status.progresses[k] = self.progresses[k] + other.progresses[k]
|
||||
return new_status
|
||||
|
||||
def is_ok(self):
|
||||
ok = True
|
||||
ok = ok and self.has_brief_description
|
||||
ok = ok and self.has_description
|
||||
for k in self.progresses:
|
||||
ok = ok and self.progresses[k].is_ok()
|
||||
return ok
|
||||
def is_ok(self):
|
||||
ok = True
|
||||
ok = ok and self.has_brief_description
|
||||
ok = ok and self.has_description
|
||||
for k in self.progresses:
|
||||
ok = ok and self.progresses[k].is_ok()
|
||||
return ok
|
||||
|
||||
def make_output(self):
|
||||
output = {}
|
||||
output['name'] = color('name', self.name)
|
||||
def make_output(self):
|
||||
output = {}
|
||||
output['name'] = color('name', self.name)
|
||||
|
||||
ok_string = color('part_good', 'OK')
|
||||
missing_string = color('part_big_problem', 'MISSING')
|
||||
ok_string = color('part_good', 'OK')
|
||||
missing_string = color('part_big_problem', 'MISSING')
|
||||
|
||||
output['brief_description'] = ok_string if self.has_brief_description else missing_string
|
||||
output['description'] = ok_string if self.has_description else missing_string
|
||||
output['brief_description'] = ok_string if self.has_brief_description else missing_string
|
||||
output['description'] = ok_string if self.has_description else missing_string
|
||||
|
||||
description_progress = ClassStatusProgress(
|
||||
(self.has_brief_description + self.has_description) * overall_progress_description_weigth,
|
||||
2 * overall_progress_description_weigth
|
||||
)
|
||||
items_progress = ClassStatusProgress()
|
||||
description_progress = ClassStatusProgress(
|
||||
(self.has_brief_description + self.has_description) * overall_progress_description_weigth,
|
||||
2 * overall_progress_description_weigth
|
||||
)
|
||||
items_progress = ClassStatusProgress()
|
||||
|
||||
for k in ['methods', 'constants', 'members', 'signals']:
|
||||
items_progress += self.progresses[k]
|
||||
output[k] = self.progresses[k].to_configured_colored_string()
|
||||
for k in ['methods', 'constants', 'members', 'signals']:
|
||||
items_progress += self.progresses[k]
|
||||
output[k] = self.progresses[k].to_configured_colored_string()
|
||||
|
||||
output['items'] = items_progress.to_configured_colored_string()
|
||||
output['items'] = items_progress.to_configured_colored_string()
|
||||
|
||||
output['overall'] = (description_progress + items_progress).to_colored_string('{percent}%', '{pad_percent}{s}')
|
||||
output['overall'] = (description_progress + items_progress).to_colored_string('{percent}%', '{pad_percent}{s}')
|
||||
|
||||
if self.name.startswith('Total'):
|
||||
output['url'] = color('url', 'http://docs.godotengine.org/en/latest/classes/_classes.html')
|
||||
if flags['s']:
|
||||
output['comment'] = color('part_good', 'ALL OK')
|
||||
else:
|
||||
output['url'] = color('url', 'http://docs.godotengine.org/en/latest/classes/class_{name}.html'.format(name=self.name.lower()))
|
||||
if self.name.startswith('Total'):
|
||||
output['url'] = color('url', 'http://docs.godotengine.org/en/latest/classes/_classes.html')
|
||||
if flags['s']:
|
||||
output['comment'] = color('part_good', 'ALL OK')
|
||||
else:
|
||||
output['url'] = color('url', 'http://docs.godotengine.org/en/latest/classes/class_{name}.html'.format(name=self.name.lower()))
|
||||
|
||||
if flags['s'] and not flags['g'] and self.is_ok():
|
||||
output['comment'] = color('part_good', 'ALL OK')
|
||||
if flags['s'] and not flags['g'] and self.is_ok():
|
||||
output['comment'] = color('part_good', 'ALL OK')
|
||||
|
||||
return output
|
||||
return output
|
||||
|
||||
def generate_for_class(c):
|
||||
status = ClassStatus()
|
||||
status.name = c.attrib['name']
|
||||
for tag in list(c):
|
||||
def generate_for_class(c):
|
||||
status = ClassStatus()
|
||||
status.name = c.attrib['name']
|
||||
for tag in list(c):
|
||||
|
||||
if tag.tag == 'brief_description':
|
||||
status.has_brief_description = len(tag.text.strip()) > 0
|
||||
if tag.tag == 'brief_description':
|
||||
status.has_brief_description = len(tag.text.strip()) > 0
|
||||
|
||||
elif tag.tag == 'description':
|
||||
status.has_description = len(tag.text.strip()) > 0
|
||||
elif tag.tag == 'description':
|
||||
status.has_description = len(tag.text.strip()) > 0
|
||||
|
||||
elif tag.tag in ['methods', 'signals']:
|
||||
for sub_tag in list(tag):
|
||||
descr = sub_tag.find('description')
|
||||
status.progresses[tag.tag].increment(len(descr.text.strip()) > 0)
|
||||
elif tag.tag in ['methods', 'signals']:
|
||||
for sub_tag in list(tag):
|
||||
descr = sub_tag.find('description')
|
||||
status.progresses[tag.tag].increment(len(descr.text.strip()) > 0)
|
||||
|
||||
elif tag.tag in ['constants', 'members']:
|
||||
for sub_tag in list(tag):
|
||||
status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0)
|
||||
elif tag.tag in ['constants', 'members']:
|
||||
for sub_tag in list(tag):
|
||||
status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0)
|
||||
|
||||
elif tag.tag in ['theme_items']:
|
||||
pass #Ignore those tags, since they seem to lack description at all
|
||||
elif tag.tag in ['theme_items']:
|
||||
pass #Ignore those tags, since they seem to lack description at all
|
||||
|
||||
else:
|
||||
print(tag.tag, tag.attrib)
|
||||
else:
|
||||
print(tag.tag, tag.attrib)
|
||||
|
||||
return status
|
||||
return status
|
||||
|
||||
|
||||
|
||||
|
@ -248,31 +248,31 @@ input_file_list = []
|
|||
input_class_list = []
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
if arg.startswith('--'):
|
||||
flags[long_flags[arg[2:]]] = not flags[long_flags[arg[2:]]]
|
||||
elif arg.startswith('-'):
|
||||
for f in arg[1:]:
|
||||
flags[f] = not flags[f]
|
||||
elif arg.endswith('.xml'):
|
||||
input_file_list.append(arg)
|
||||
else:
|
||||
input_class_list.append(arg)
|
||||
if arg.startswith('--'):
|
||||
flags[long_flags[arg[2:]]] = not flags[long_flags[arg[2:]]]
|
||||
elif arg.startswith('-'):
|
||||
for f in arg[1:]:
|
||||
flags[f] = not flags[f]
|
||||
elif arg.endswith('.xml'):
|
||||
input_file_list.append(arg)
|
||||
else:
|
||||
input_class_list.append(arg)
|
||||
|
||||
if flags['i']:
|
||||
for r in ['methods', 'constants', 'members', 'signals']:
|
||||
index = table_columns.index(r)
|
||||
del table_column_names[index]
|
||||
del table_columns[index]
|
||||
table_column_names.append('Items')
|
||||
table_columns.append('items')
|
||||
for r in ['methods', 'constants', 'members', 'signals']:
|
||||
index = table_columns.index(r)
|
||||
del table_column_names[index]
|
||||
del table_columns[index]
|
||||
table_column_names.append('Items')
|
||||
table_columns.append('items')
|
||||
|
||||
if flags['o'] == (not flags['i']):
|
||||
table_column_names.append('Overall')
|
||||
table_columns.append('overall')
|
||||
table_column_names.append('Overall')
|
||||
table_columns.append('overall')
|
||||
|
||||
if flags['u']:
|
||||
table_column_names.append('Docs URL')
|
||||
table_columns.append('url')
|
||||
table_column_names.append('Docs URL')
|
||||
table_columns.append('url')
|
||||
|
||||
|
||||
################################################################################
|
||||
|
@ -280,28 +280,28 @@ if flags['u']:
|
|||
################################################################################
|
||||
|
||||
if len(input_file_list) < 1 or flags['h']:
|
||||
if not flags['h']:
|
||||
print(color('section', 'Invalid usage') + ': At least one classes.xml file is required')
|
||||
print(color('section', 'Usage') + ': doc_status.py [flags] <classes.xml> [class names]')
|
||||
print('\t< and > signify required parameters, while [ and ] signify optional parameters.')
|
||||
print('\tNote that you can give more than one classes file, in which case they will be merged on-the-fly.')
|
||||
print(color('section', 'Available flags') + ':')
|
||||
possible_synonym_list = list(long_flags)
|
||||
possible_synonym_list.sort()
|
||||
flag_list = list(flags)
|
||||
flag_list.sort()
|
||||
for flag in flag_list:
|
||||
synonyms = [color('name', '-' + flag)]
|
||||
for synonym in possible_synonym_list:
|
||||
if long_flags[synonym] == flag:
|
||||
synonyms.append(color('name', '--' + synonym))
|
||||
if not flags['h']:
|
||||
print(color('section', 'Invalid usage') + ': At least one classes.xml file is required')
|
||||
print(color('section', 'Usage') + ': doc_status.py [flags] <classes.xml> [class names]')
|
||||
print('\t< and > signify required parameters, while [ and ] signify optional parameters.')
|
||||
print('\tNote that you can give more than one classes file, in which case they will be merged on-the-fly.')
|
||||
print(color('section', 'Available flags') + ':')
|
||||
possible_synonym_list = list(long_flags)
|
||||
possible_synonym_list.sort()
|
||||
flag_list = list(flags)
|
||||
flag_list.sort()
|
||||
for flag in flag_list:
|
||||
synonyms = [color('name', '-' + flag)]
|
||||
for synonym in possible_synonym_list:
|
||||
if long_flags[synonym] == flag:
|
||||
synonyms.append(color('name', '--' + synonym))
|
||||
|
||||
print(('{synonyms} (Currently '+color('state_'+('on' if flags[flag] else 'off'), '{value}')+')\n\t{description}').format(
|
||||
synonyms = ', '.join(synonyms),
|
||||
value = ('on' if flags[flag] else 'off'),
|
||||
description = flag_descriptions[flag]
|
||||
))
|
||||
sys.exit(0)
|
||||
print(('{synonyms} (Currently '+color('state_'+('on' if flags[flag] else 'off'), '{value}')+')\n\t{description}').format(
|
||||
synonyms = ', '.join(synonyms),
|
||||
value = ('on' if flags[flag] else 'off'),
|
||||
description = flag_descriptions[flag]
|
||||
))
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
|
||||
|
@ -313,25 +313,25 @@ class_names = []
|
|||
classes = {}
|
||||
|
||||
for file in input_file_list:
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
|
||||
if 'version' not in doc.attrib:
|
||||
print('Version missing from "doc"')
|
||||
sys.exit(255)
|
||||
if 'version' not in doc.attrib:
|
||||
print('Version missing from "doc"')
|
||||
sys.exit(255)
|
||||
|
||||
version = doc.attrib['version']
|
||||
version = doc.attrib['version']
|
||||
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
|
||||
class_names.sort()
|
||||
|
||||
if len(input_class_list) < 1:
|
||||
input_class_list = class_names
|
||||
input_class_list = class_names
|
||||
|
||||
|
||||
|
||||
|
@ -346,32 +346,32 @@ table_column_chars = '|'
|
|||
total_status = ClassStatus('Total')
|
||||
|
||||
for cn in input_class_list:
|
||||
if not cn in classes:
|
||||
print('Cannot find class ' + cn + '!')
|
||||
sys.exit(255)
|
||||
if not cn in classes:
|
||||
print('Cannot find class ' + cn + '!')
|
||||
sys.exit(255)
|
||||
|
||||
c = classes[cn]
|
||||
validate_tag(c, 'class')
|
||||
status = ClassStatus.generate_for_class(c)
|
||||
c = classes[cn]
|
||||
validate_tag(c, 'class')
|
||||
status = ClassStatus.generate_for_class(c)
|
||||
|
||||
if flags['b'] and status.is_ok():
|
||||
continue
|
||||
if flags['g'] and not status.is_ok():
|
||||
continue
|
||||
if flags['b'] and status.is_ok():
|
||||
continue
|
||||
if flags['g'] and not status.is_ok():
|
||||
continue
|
||||
|
||||
total_status = total_status + status
|
||||
out = status.make_output()
|
||||
row = []
|
||||
for column in table_columns:
|
||||
if column in out:
|
||||
row.append(out[column])
|
||||
else:
|
||||
row.append('')
|
||||
total_status = total_status + status
|
||||
out = status.make_output()
|
||||
row = []
|
||||
for column in table_columns:
|
||||
if column in out:
|
||||
row.append(out[column])
|
||||
else:
|
||||
row.append('')
|
||||
|
||||
if 'comment' in out and out['comment'] != '':
|
||||
row.append(out['comment'])
|
||||
if 'comment' in out and out['comment'] != '':
|
||||
row.append(out['comment'])
|
||||
|
||||
table.append(row)
|
||||
table.append(row)
|
||||
|
||||
|
||||
|
||||
|
@ -381,50 +381,50 @@ for cn in input_class_list:
|
|||
################################################################################
|
||||
|
||||
if len(table) == 1:
|
||||
print(color('part_big_problem', 'No classes suitable for printing!'))
|
||||
sys.exit(0)
|
||||
print(color('part_big_problem', 'No classes suitable for printing!'))
|
||||
sys.exit(0)
|
||||
|
||||
if len(table) > 2:
|
||||
total_status.name = 'Total = {0}'.format(len(table) - 1)
|
||||
out = total_status.make_output()
|
||||
row = []
|
||||
for column in table_columns:
|
||||
if column in out:
|
||||
row.append(out[column])
|
||||
else:
|
||||
row.append('')
|
||||
table.append(row)
|
||||
total_status.name = 'Total = {0}'.format(len(table) - 1)
|
||||
out = total_status.make_output()
|
||||
row = []
|
||||
for column in table_columns:
|
||||
if column in out:
|
||||
row.append(out[column])
|
||||
else:
|
||||
row.append('')
|
||||
table.append(row)
|
||||
|
||||
table_column_sizes = []
|
||||
for row in table:
|
||||
for cell_i, cell in enumerate(row):
|
||||
if cell_i >= len(table_column_sizes):
|
||||
table_column_sizes.append(0)
|
||||
for cell_i, cell in enumerate(row):
|
||||
if cell_i >= len(table_column_sizes):
|
||||
table_column_sizes.append(0)
|
||||
|
||||
table_column_sizes[cell_i] = max(nonescape_len(cell), table_column_sizes[cell_i])
|
||||
table_column_sizes[cell_i] = max(nonescape_len(cell), table_column_sizes[cell_i])
|
||||
|
||||
divider_string = table_row_chars[0]
|
||||
for cell_i in range(len(table[0])):
|
||||
divider_string += table_row_chars[1] * (table_column_sizes[cell_i] + 2) + table_row_chars[0]
|
||||
divider_string += table_row_chars[1] * (table_column_sizes[cell_i] + 2) + table_row_chars[0]
|
||||
print(divider_string)
|
||||
|
||||
for row_i, row in enumerate(table):
|
||||
row_string = table_column_chars
|
||||
for cell_i, cell in enumerate(row):
|
||||
padding_needed = table_column_sizes[cell_i] - nonescape_len(cell) + 2
|
||||
if cell_i == 0:
|
||||
row_string += table_row_chars[2] + cell + table_row_chars[2]*(padding_needed-1)
|
||||
else:
|
||||
row_string += table_row_chars[2]*math.floor(padding_needed/2) + cell + table_row_chars[2]*math.ceil((padding_needed/2))
|
||||
row_string += table_column_chars
|
||||
row_string = table_column_chars
|
||||
for cell_i, cell in enumerate(row):
|
||||
padding_needed = table_column_sizes[cell_i] - nonescape_len(cell) + 2
|
||||
if cell_i == 0:
|
||||
row_string += table_row_chars[2] + cell + table_row_chars[2]*(padding_needed-1)
|
||||
else:
|
||||
row_string += table_row_chars[2]*math.floor(padding_needed/2) + cell + table_row_chars[2]*math.ceil((padding_needed/2))
|
||||
row_string += table_column_chars
|
||||
|
||||
print(row_string)
|
||||
print(row_string)
|
||||
|
||||
if row_i == 0 or row_i == len(table) - 2:
|
||||
print(divider_string)
|
||||
if row_i == 0 or row_i == len(table) - 2:
|
||||
print(divider_string)
|
||||
|
||||
print(divider_string)
|
||||
|
||||
if total_status.is_ok() and not flags['g']:
|
||||
print('All listed classes are ' + color('part_good', 'OK') + '!')
|
||||
print('All listed classes are ' + color('part_good', 'OK') + '!')
|
||||
|
||||
|
|
|
@ -8,17 +8,17 @@ input_list = []
|
|||
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
input_list.append(arg)
|
||||
input_list.append(arg)
|
||||
|
||||
if len(input_list) < 1:
|
||||
print("usage: makedoku.py <classes.xml>")
|
||||
sys.exit(0)
|
||||
print("usage: makedoku.py <classes.xml>")
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def validate_tag(elem,tag):
|
||||
if (elem.tag != tag):
|
||||
print("Tag mismatch, expected '"+tag+"', got "+elem.tag);
|
||||
sys.exit(255)
|
||||
if (elem.tag != tag):
|
||||
print("Tag mismatch, expected '"+tag+"', got "+elem.tag);
|
||||
sys.exit(255)
|
||||
|
||||
|
||||
class_names=[]
|
||||
|
@ -27,289 +27,289 @@ classes={}
|
|||
|
||||
def make_class_list(class_list,columns):
|
||||
|
||||
f=open("class_list.txt","wb")
|
||||
prev=0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print("col max is ", col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ""
|
||||
fit_columns=[]
|
||||
f=open("class_list.txt","wb")
|
||||
prev=0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print("col max is ", col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ""
|
||||
fit_columns=[]
|
||||
|
||||
for n in range(0,columns):
|
||||
fit_columns+=[[]]
|
||||
for n in range(0,columns):
|
||||
fit_columns+=[[]]
|
||||
|
||||
indexers=[]
|
||||
last_initial=""
|
||||
indexers=[]
|
||||
last_initial=""
|
||||
|
||||
idx=0
|
||||
for n in class_list:
|
||||
col = idx/col_max
|
||||
if (col>=columns):
|
||||
col=columns-1
|
||||
fit_columns[col]+=[n]
|
||||
idx+=1
|
||||
if (n[:1]!=last_initial):
|
||||
indexers+=[n]
|
||||
last_initial=n[:1]
|
||||
idx=0
|
||||
for n in class_list:
|
||||
col = idx/col_max
|
||||
if (col>=columns):
|
||||
col=columns-1
|
||||
fit_columns[col]+=[n]
|
||||
idx+=1
|
||||
if (n[:1]!=last_initial):
|
||||
indexers+=[n]
|
||||
last_initial=n[:1]
|
||||
|
||||
|
||||
row_max=0
|
||||
row_max=0
|
||||
|
||||
for n in range(0,columns):
|
||||
if (len(fit_columns[n])>row_max):
|
||||
row_max=len(fit_columns[n])
|
||||
for n in range(0,columns):
|
||||
if (len(fit_columns[n])>row_max):
|
||||
row_max=len(fit_columns[n])
|
||||
|
||||
|
||||
for r in range(0,row_max):
|
||||
s="|"
|
||||
for c in range(0,columns):
|
||||
if (r>=len(fit_columns[c])):
|
||||
continue
|
||||
for r in range(0,row_max):
|
||||
s="|"
|
||||
for c in range(0,columns):
|
||||
if (r>=len(fit_columns[c])):
|
||||
continue
|
||||
|
||||
classname = fit_columns[c][r]
|
||||
initial=classname[0]
|
||||
if (classname in indexers):
|
||||
s+="**"+initial+"**|"
|
||||
else:
|
||||
s+=" |"
|
||||
classname = fit_columns[c][r]
|
||||
initial=classname[0]
|
||||
if (classname in indexers):
|
||||
s+="**"+initial+"**|"
|
||||
else:
|
||||
s+=" |"
|
||||
|
||||
s+="[["+classname.lower()+"|"+classname+"]]|"
|
||||
s+="[["+classname.lower()+"|"+classname+"]]|"
|
||||
|
||||
s+="\n"
|
||||
f.write(s)
|
||||
s+="\n"
|
||||
f.write(s)
|
||||
|
||||
|
||||
def dokuize_text(txt):
|
||||
|
||||
return txt
|
||||
return txt
|
||||
|
||||
|
||||
def dokuize_text(text):
|
||||
pos=0
|
||||
while(True):
|
||||
pos = text.find("[",pos)
|
||||
if (pos==-1):
|
||||
break
|
||||
pos=0
|
||||
while(True):
|
||||
pos = text.find("[",pos)
|
||||
if (pos==-1):
|
||||
break
|
||||
|
||||
endq_pos=text.find("]",pos+1)
|
||||
if (endq_pos==-1):
|
||||
break
|
||||
endq_pos=text.find("]",pos+1)
|
||||
if (endq_pos==-1):
|
||||
break
|
||||
|
||||
pre_text=text[:pos]
|
||||
post_text=text[endq_pos+1:]
|
||||
tag_text=text[pos+1:endq_pos]
|
||||
pre_text=text[:pos]
|
||||
post_text=text[endq_pos+1:]
|
||||
tag_text=text[pos+1:endq_pos]
|
||||
|
||||
if (tag_text in class_names):
|
||||
tag_text="[["+tag_text.lower()+"|"+tag_text+"]]"
|
||||
else: #command
|
||||
cmd=tag_text
|
||||
space_pos=tag_text.find(" ")
|
||||
if (cmd.find("html")==0):
|
||||
cmd=tag_text[:space_pos]
|
||||
param=tag_text[space_pos+1:]
|
||||
tag_text="<"+param+">"
|
||||
elif(cmd.find("method")==0):
|
||||
cmd=tag_text[:space_pos]
|
||||
param=tag_text[space_pos+1:]
|
||||
if (tag_text in class_names):
|
||||
tag_text="[["+tag_text.lower()+"|"+tag_text+"]]"
|
||||
else: #command
|
||||
cmd=tag_text
|
||||
space_pos=tag_text.find(" ")
|
||||
if (cmd.find("html")==0):
|
||||
cmd=tag_text[:space_pos]
|
||||
param=tag_text[space_pos+1:]
|
||||
tag_text="<"+param+">"
|
||||
elif(cmd.find("method")==0):
|
||||
cmd=tag_text[:space_pos]
|
||||
param=tag_text[space_pos+1:]
|
||||
|
||||
if (param.find(".")!=-1):
|
||||
class_param,method_param=param.split(".")
|
||||
tag_text="[["+class_param.lower()+"#"+method_param+"|"+class_param+'.'+method_param+"]]"
|
||||
else:
|
||||
tag_text="[[#"+param+"|"+param+"]]"
|
||||
elif (cmd.find("image=")==0):
|
||||
tag_text="{{"+cmd[6:]+"}}"
|
||||
elif (cmd.find("url=")==0):
|
||||
tag_text="[["+cmd[4:]+"|"
|
||||
elif (cmd=="/url"):
|
||||
tag_text="]]>"
|
||||
elif (cmd=="center"):
|
||||
tag_text=""
|
||||
elif (cmd=="/center"):
|
||||
tag_text=""
|
||||
elif (cmd=="br"):
|
||||
tag_text="\\\\\n"
|
||||
elif (cmd=="i" or cmd=="/i"):
|
||||
tag_text="//"
|
||||
elif (cmd=="b" or cmd=="/b"):
|
||||
tag_text="**"
|
||||
elif (cmd=="u" or cmd=="/u"):
|
||||
tag_text="__"
|
||||
else:
|
||||
tag_text="["+tag_text+"]"
|
||||
if (param.find(".")!=-1):
|
||||
class_param,method_param=param.split(".")
|
||||
tag_text="[["+class_param.lower()+"#"+method_param+"|"+class_param+'.'+method_param+"]]"
|
||||
else:
|
||||
tag_text="[[#"+param+"|"+param+"]]"
|
||||
elif (cmd.find("image=")==0):
|
||||
tag_text="{{"+cmd[6:]+"}}"
|
||||
elif (cmd.find("url=")==0):
|
||||
tag_text="[["+cmd[4:]+"|"
|
||||
elif (cmd=="/url"):
|
||||
tag_text="]]>"
|
||||
elif (cmd=="center"):
|
||||
tag_text=""
|
||||
elif (cmd=="/center"):
|
||||
tag_text=""
|
||||
elif (cmd=="br"):
|
||||
tag_text="\\\\\n"
|
||||
elif (cmd=="i" or cmd=="/i"):
|
||||
tag_text="//"
|
||||
elif (cmd=="b" or cmd=="/b"):
|
||||
tag_text="**"
|
||||
elif (cmd=="u" or cmd=="/u"):
|
||||
tag_text="__"
|
||||
else:
|
||||
tag_text="["+tag_text+"]"
|
||||
|
||||
|
||||
text=pre_text+tag_text+post_text
|
||||
pos=len(pre_text)+len(tag_text)
|
||||
text=pre_text+tag_text+post_text
|
||||
pos=len(pre_text)+len(tag_text)
|
||||
|
||||
#tnode = ET.SubElement(parent,"div")
|
||||
#tnode.text=text
|
||||
return text
|
||||
#tnode = ET.SubElement(parent,"div")
|
||||
#tnode.text=text
|
||||
return text
|
||||
|
||||
|
||||
def make_type(t):
|
||||
global class_names
|
||||
if (t in class_names):
|
||||
return "[["+t.lower()+"|"+t+"]]"
|
||||
return t
|
||||
global class_names
|
||||
if (t in class_names):
|
||||
return "[["+t.lower()+"|"+t+"]]"
|
||||
return t
|
||||
|
||||
|
||||
def make_method(f,name,m,declare,event=False):
|
||||
|
||||
s=" * "
|
||||
ret_type="void"
|
||||
args=list(m)
|
||||
mdata={}
|
||||
mdata["argidx"]=[]
|
||||
for a in args:
|
||||
if (a.tag=="return"):
|
||||
idx=-1
|
||||
elif (a.tag=="argument"):
|
||||
idx=int(a.attrib["index"])
|
||||
else:
|
||||
continue
|
||||
s=" * "
|
||||
ret_type="void"
|
||||
args=list(m)
|
||||
mdata={}
|
||||
mdata["argidx"]=[]
|
||||
for a in args:
|
||||
if (a.tag=="return"):
|
||||
idx=-1
|
||||
elif (a.tag=="argument"):
|
||||
idx=int(a.attrib["index"])
|
||||
else:
|
||||
continue
|
||||
|
||||
mdata["argidx"].append(idx)
|
||||
mdata[idx]=a
|
||||
mdata["argidx"].append(idx)
|
||||
mdata[idx]=a
|
||||
|
||||
|
||||
|
||||
if (not event):
|
||||
if (-1 in mdata["argidx"]):
|
||||
s+=make_type(mdata[-1].attrib["type"])
|
||||
else:
|
||||
s+="void"
|
||||
s+=" "
|
||||
if (not event):
|
||||
if (-1 in mdata["argidx"]):
|
||||
s+=make_type(mdata[-1].attrib["type"])
|
||||
else:
|
||||
s+="void"
|
||||
s+=" "
|
||||
|
||||
if (declare):
|
||||
if (declare):
|
||||
|
||||
#span.attrib["class"]="funcdecl"
|
||||
#a=ET.SubElement(span,"a")
|
||||
#a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
#a.text=name+"::"+m.attrib["name"]
|
||||
s+="**"+m.attrib["name"]+"**"
|
||||
else:
|
||||
s+="[[#"+m.attrib["name"]+"|"+m.attrib["name"]+"]]"
|
||||
#span.attrib["class"]="funcdecl"
|
||||
#a=ET.SubElement(span,"a")
|
||||
#a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
#a.text=name+"::"+m.attrib["name"]
|
||||
s+="**"+m.attrib["name"]+"**"
|
||||
else:
|
||||
s+="[[#"+m.attrib["name"]+"|"+m.attrib["name"]+"]]"
|
||||
|
||||
s+="**(**"
|
||||
argfound=False
|
||||
for a in mdata["argidx"]:
|
||||
arg=mdata[a]
|
||||
if (a<0):
|
||||
continue
|
||||
if (a>0):
|
||||
s+=", "
|
||||
else:
|
||||
s+=" "
|
||||
s+="**(**"
|
||||
argfound=False
|
||||
for a in mdata["argidx"]:
|
||||
arg=mdata[a]
|
||||
if (a<0):
|
||||
continue
|
||||
if (a>0):
|
||||
s+=", "
|
||||
else:
|
||||
s+=" "
|
||||
|
||||
s+=make_type(arg.attrib["type"])
|
||||
if ("name" in arg.attrib):
|
||||
s+=" "+arg.attrib["name"]
|
||||
else:
|
||||
s+=" arg"+str(a)
|
||||
s+=make_type(arg.attrib["type"])
|
||||
if ("name" in arg.attrib):
|
||||
s+=" "+arg.attrib["name"]
|
||||
else:
|
||||
s+=" arg"+str(a)
|
||||
|
||||
if ("default" in arg.attrib):
|
||||
s+="="+arg.attrib["default"]
|
||||
if ("default" in arg.attrib):
|
||||
s+="="+arg.attrib["default"]
|
||||
|
||||
|
||||
argfound=True
|
||||
argfound=True
|
||||
|
||||
if (argfound):
|
||||
s+=" "
|
||||
s+="**)**"
|
||||
if (argfound):
|
||||
s+=" "
|
||||
s+="**)**"
|
||||
|
||||
if ("qualifiers" in m.attrib):
|
||||
s+=" "+m.attrib["qualifiers"]
|
||||
if ("qualifiers" in m.attrib):
|
||||
s+=" "+m.attrib["qualifiers"]
|
||||
|
||||
f.write(s+"\n")
|
||||
f.write(s+"\n")
|
||||
|
||||
|
||||
def make_doku_class(node):
|
||||
|
||||
name = node.attrib["name"]
|
||||
name = node.attrib["name"]
|
||||
|
||||
f=open(name.lower()+".txt","wb")
|
||||
f=open(name.lower()+".txt","wb")
|
||||
|
||||
f.write("====== "+name+" ======\n")
|
||||
f.write("====== "+name+" ======\n")
|
||||
|
||||
if ("inherits" in node.attrib):
|
||||
inh=node.attrib["inherits"].strip()
|
||||
f.write("**Inherits:** [["+inh.lower()+"|"+inh+"]]\\\\\n")
|
||||
if ("category" in node.attrib):
|
||||
f.write("**Category:** "+node.attrib["category"].strip()+"\\\\\n")
|
||||
if ("inherits" in node.attrib):
|
||||
inh=node.attrib["inherits"].strip()
|
||||
f.write("**Inherits:** [["+inh.lower()+"|"+inh+"]]\\\\\n")
|
||||
if ("category" in node.attrib):
|
||||
f.write("**Category:** "+node.attrib["category"].strip()+"\\\\\n")
|
||||
|
||||
briefd = node.find("brief_description")
|
||||
if (briefd!=None):
|
||||
f.write("===== Brief Description ======\n")
|
||||
f.write( dokuize_text(briefd.text.strip())+"\n" )
|
||||
briefd = node.find("brief_description")
|
||||
if (briefd!=None):
|
||||
f.write("===== Brief Description ======\n")
|
||||
f.write( dokuize_text(briefd.text.strip())+"\n" )
|
||||
|
||||
methods = node.find("methods")
|
||||
methods = node.find("methods")
|
||||
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
f.write("===== Member Functions ======\n")
|
||||
for m in list(methods):
|
||||
make_method(f,node.attrib["name"],m,False)
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
f.write("===== Member Functions ======\n")
|
||||
for m in list(methods):
|
||||
make_method(f,node.attrib["name"],m,False)
|
||||
|
||||
events = node.find("signals")
|
||||
if(events!=None and len(list(events))>0):
|
||||
f.write("===== Signals ======\n")
|
||||
for m in list(events):
|
||||
make_method(f,node.attrib["name"],m,True,True)
|
||||
events = node.find("signals")
|
||||
if(events!=None and len(list(events))>0):
|
||||
f.write("===== Signals ======\n")
|
||||
for m in list(events):
|
||||
make_method(f,node.attrib["name"],m,True,True)
|
||||
|
||||
members = node.find("members")
|
||||
members = node.find("members")
|
||||
|
||||
if(members!=None and len(list(members))>0):
|
||||
f.write("===== Member Variables ======\n")
|
||||
if(members!=None and len(list(members))>0):
|
||||
f.write("===== Member Variables ======\n")
|
||||
|
||||
for c in list(members):
|
||||
s = " * "
|
||||
s+=make_type(c.attrib["type"])+" "
|
||||
s+="**"+c.attrib["name"]+"**"
|
||||
if (c.text.strip()!=""):
|
||||
s+=" - "+c.text.strip()
|
||||
f.write(s+"\n")
|
||||
for c in list(members):
|
||||
s = " * "
|
||||
s+=make_type(c.attrib["type"])+" "
|
||||
s+="**"+c.attrib["name"]+"**"
|
||||
if (c.text.strip()!=""):
|
||||
s+=" - "+c.text.strip()
|
||||
f.write(s+"\n")
|
||||
|
||||
|
||||
|
||||
constants = node.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
f.write("===== Numeric Constants ======\n")
|
||||
for c in list(constants):
|
||||
s = " * "
|
||||
s+="**"+c.attrib["name"]+"**"
|
||||
if ("value" in c.attrib):
|
||||
s+=" = **"+c.attrib["value"]+"**"
|
||||
if (c.text.strip()!=""):
|
||||
s+=" - "+c.text.strip()
|
||||
f.write(s+"\n")
|
||||
constants = node.find("constants")
|
||||
if(constants!=None and len(list(constants))>0):
|
||||
f.write("===== Numeric Constants ======\n")
|
||||
for c in list(constants):
|
||||
s = " * "
|
||||
s+="**"+c.attrib["name"]+"**"
|
||||
if ("value" in c.attrib):
|
||||
s+=" = **"+c.attrib["value"]+"**"
|
||||
if (c.text.strip()!=""):
|
||||
s+=" - "+c.text.strip()
|
||||
f.write(s+"\n")
|
||||
|
||||
|
||||
descr=node.find("description")
|
||||
if (descr!=None and descr.text.strip()!=""):
|
||||
f.write("===== Description ======\n")
|
||||
f.write(dokuize_text(descr.text.strip())+"\n")
|
||||
descr=node.find("description")
|
||||
if (descr!=None and descr.text.strip()!=""):
|
||||
f.write("===== Description ======\n")
|
||||
f.write(dokuize_text(descr.text.strip())+"\n")
|
||||
|
||||
methods = node.find("methods")
|
||||
methods = node.find("methods")
|
||||
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
f.write("===== Member Function Description ======\n")
|
||||
for m in list(methods):
|
||||
if(methods!=None and len(list(methods))>0):
|
||||
f.write("===== Member Function Description ======\n")
|
||||
for m in list(methods):
|
||||
|
||||
d=m.find("description")
|
||||
if (d==None or d.text.strip()==""):
|
||||
continue
|
||||
f.write("== "+m.attrib["name"]+" ==\n")
|
||||
make_method(f,node.attrib["name"],m,False)
|
||||
f.write("\\\\\n")
|
||||
f.write(dokuize_text(d.text.strip()))
|
||||
f.write("\n")
|
||||
d=m.find("description")
|
||||
if (d==None or d.text.strip()==""):
|
||||
continue
|
||||
f.write("== "+m.attrib["name"]+" ==\n")
|
||||
make_method(f,node.attrib["name"],m,False)
|
||||
f.write("\\\\\n")
|
||||
f.write(dokuize_text(d.text.strip()))
|
||||
f.write("\n")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
"""
|
||||
div=ET.Element("div")
|
||||
div.attrib["class"]="class";
|
||||
|
||||
|
@ -487,20 +487,20 @@ def make_doku_class(node):
|
|||
return div
|
||||
"""
|
||||
for file in input_list:
|
||||
tree = ET.parse(file)
|
||||
doc=tree.getroot()
|
||||
tree = ET.parse(file)
|
||||
doc=tree.getroot()
|
||||
|
||||
if ("version" not in doc.attrib):
|
||||
print("Version missing from 'doc'")
|
||||
sys.exit(255)
|
||||
if ("version" not in doc.attrib):
|
||||
print("Version missing from 'doc'")
|
||||
sys.exit(255)
|
||||
|
||||
version=doc.attrib["version"]
|
||||
version=doc.attrib["version"]
|
||||
|
||||
for c in list(doc):
|
||||
if (c.attrib["name"] in class_names):
|
||||
continue
|
||||
class_names.append(c.attrib["name"])
|
||||
classes[c.attrib["name"]]=c
|
||||
for c in list(doc):
|
||||
if (c.attrib["name"] in class_names):
|
||||
continue
|
||||
class_names.append(c.attrib["name"])
|
||||
classes[c.attrib["name"]]=c
|
||||
|
||||
|
||||
class_names.sort()
|
||||
|
@ -508,7 +508,7 @@ class_names.sort()
|
|||
make_class_list(class_names,4)
|
||||
|
||||
for cn in class_names:
|
||||
c=classes[cn]
|
||||
make_doku_class(c)
|
||||
c=classes[cn]
|
||||
make_doku_class(c)
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,17 +7,17 @@ import xml.etree.ElementTree as ET
|
|||
input_list = []
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
input_list.append(arg)
|
||||
input_list.append(arg)
|
||||
|
||||
if len(input_list) < 1:
|
||||
print 'usage: makemd.py <classes.xml>'
|
||||
sys.exit(0)
|
||||
print 'usage: makemd.py <classes.xml>'
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def validate_tag(elem, tag):
|
||||
if elem.tag != tag:
|
||||
print "Tag mismatch, expected '" + tag + "', got " + elem.tag
|
||||
sys.exit(255)
|
||||
if elem.tag != tag:
|
||||
print "Tag mismatch, expected '" + tag + "', got " + elem.tag
|
||||
sys.exit(255)
|
||||
|
||||
|
||||
class_names = []
|
||||
|
@ -26,321 +26,321 @@ classes = {}
|
|||
|
||||
def make_class_list(class_list, columns):
|
||||
|
||||
f = open('class_list.md', 'wb')
|
||||
prev = 0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print ('col max is ', col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ''
|
||||
fit_columns = []
|
||||
f = open('class_list.md', 'wb')
|
||||
prev = 0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print ('col max is ', col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ''
|
||||
fit_columns = []
|
||||
|
||||
for n in range(0, columns):
|
||||
fit_columns += [[]]
|
||||
for n in range(0, columns):
|
||||
fit_columns += [[]]
|
||||
|
||||
indexers = []
|
||||
last_initial = ''
|
||||
indexers = []
|
||||
last_initial = ''
|
||||
|
||||
idx = 0
|
||||
for n in class_list:
|
||||
col = idx / col_max
|
||||
if col >= columns:
|
||||
col = columns - 1
|
||||
fit_columns[col] += [n]
|
||||
idx += 1
|
||||
if n[:1] != last_initial:
|
||||
indexers += [n]
|
||||
last_initial = n[:1]
|
||||
idx = 0
|
||||
for n in class_list:
|
||||
col = idx / col_max
|
||||
if col >= columns:
|
||||
col = columns - 1
|
||||
fit_columns[col] += [n]
|
||||
idx += 1
|
||||
if n[:1] != last_initial:
|
||||
indexers += [n]
|
||||
last_initial = n[:1]
|
||||
|
||||
row_max = 0
|
||||
f.write("\n")
|
||||
row_max = 0
|
||||
f.write("\n")
|
||||
|
||||
for n in range(0, columns):
|
||||
if len(fit_columns[n]) > row_max:
|
||||
row_max = len(fit_columns[n])
|
||||
for n in range(0, columns):
|
||||
if len(fit_columns[n]) > row_max:
|
||||
row_max = len(fit_columns[n])
|
||||
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" | |")
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" | |")
|
||||
|
||||
f.write("\n")
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" --- | ------- |")
|
||||
f.write("\n")
|
||||
f.write("\n")
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" --- | ------- |")
|
||||
f.write("\n")
|
||||
|
||||
for r in range(0, row_max):
|
||||
s = '| '
|
||||
for c in range(0, columns):
|
||||
if r >= len(fit_columns[c]):
|
||||
continue
|
||||
for r in range(0, row_max):
|
||||
s = '| '
|
||||
for c in range(0, columns):
|
||||
if r >= len(fit_columns[c]):
|
||||
continue
|
||||
|
||||
classname = fit_columns[c][r]
|
||||
initial = classname[0]
|
||||
if classname in indexers:
|
||||
s += '**' + initial + '** | '
|
||||
else:
|
||||
s += ' | '
|
||||
classname = fit_columns[c][r]
|
||||
initial = classname[0]
|
||||
if classname in indexers:
|
||||
s += '**' + initial + '** | '
|
||||
else:
|
||||
s += ' | '
|
||||
|
||||
s += '[' + classname + '](class_'+ classname.lower()+') | '
|
||||
s += '[' + classname + '](class_'+ classname.lower()+') | '
|
||||
|
||||
s += '\n'
|
||||
f.write(s)
|
||||
s += '\n'
|
||||
f.write(s)
|
||||
|
||||
|
||||
def dokuize_text(txt):
|
||||
|
||||
return txt
|
||||
return txt
|
||||
|
||||
|
||||
def dokuize_text(text):
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('[', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('[', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
|
||||
endq_pos = text.find(']', pos + 1)
|
||||
if endq_pos == -1:
|
||||
break
|
||||
endq_pos = text.find(']', pos + 1)
|
||||
if endq_pos == -1:
|
||||
break
|
||||
|
||||
pre_text = text[:pos]
|
||||
post_text = text[endq_pos + 1:]
|
||||
tag_text = text[pos + 1:endq_pos]
|
||||
pre_text = text[:pos]
|
||||
post_text = text[endq_pos + 1:]
|
||||
tag_text = text[pos + 1:endq_pos]
|
||||
|
||||
if tag_text in class_names:
|
||||
tag_text = make_type(tag_text)
|
||||
else:
|
||||
if tag_text in class_names:
|
||||
tag_text = make_type(tag_text)
|
||||
else:
|
||||
|
||||
# command
|
||||
# command
|
||||
|
||||
cmd = tag_text
|
||||
space_pos = tag_text.find(' ')
|
||||
if cmd.find('html') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
tag_text = '<' + param + '>'
|
||||
elif cmd.find('method') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
cmd = tag_text
|
||||
space_pos = tag_text.find(' ')
|
||||
if cmd.find('html') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
tag_text = '<' + param + '>'
|
||||
elif cmd.find('method') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
|
||||
if param.find('.') != -1:
|
||||
(class_param, method_param) = param.split('.')
|
||||
tag_text = '['+class_param+'.'+method_param.replace("_","_")+'](' + class_param.lower() + '#' \
|
||||
+ method_param + ')'
|
||||
else:
|
||||
tag_text = '[' + param.replace("_","_") + '](#' + param + ')'
|
||||
elif cmd.find('image=') == 0:
|
||||
tag_text = '![](' + cmd[6:] + ')'
|
||||
elif cmd.find('url=') == 0:
|
||||
tag_text = '[' + cmd[4:] + ']('+cmd[4:]
|
||||
elif cmd == '/url':
|
||||
tag_text = ')'
|
||||
elif cmd == 'center':
|
||||
tag_text = ''
|
||||
elif cmd == '/center':
|
||||
tag_text = ''
|
||||
elif cmd == 'br':
|
||||
tag_text = '\n'
|
||||
elif cmd == 'i' or cmd == '/i':
|
||||
tag_text = '_'
|
||||
elif cmd == 'b' or cmd == '/b':
|
||||
tag_text = '**'
|
||||
elif cmd == 'u' or cmd == '/u':
|
||||
tag_text = '__'
|
||||
else:
|
||||
tag_text = '[' + tag_text + ']'
|
||||
if param.find('.') != -1:
|
||||
(class_param, method_param) = param.split('.')
|
||||
tag_text = '['+class_param+'.'+method_param.replace("_","_")+'](' + class_param.lower() + '#' \
|
||||
+ method_param + ')'
|
||||
else:
|
||||
tag_text = '[' + param.replace("_","_") + '](#' + param + ')'
|
||||
elif cmd.find('image=') == 0:
|
||||
tag_text = '![](' + cmd[6:] + ')'
|
||||
elif cmd.find('url=') == 0:
|
||||
tag_text = '[' + cmd[4:] + ']('+cmd[4:]
|
||||
elif cmd == '/url':
|
||||
tag_text = ')'
|
||||
elif cmd == 'center':
|
||||
tag_text = ''
|
||||
elif cmd == '/center':
|
||||
tag_text = ''
|
||||
elif cmd == 'br':
|
||||
tag_text = '\n'
|
||||
elif cmd == 'i' or cmd == '/i':
|
||||
tag_text = '_'
|
||||
elif cmd == 'b' or cmd == '/b':
|
||||
tag_text = '**'
|
||||
elif cmd == 'u' or cmd == '/u':
|
||||
tag_text = '__'
|
||||
else:
|
||||
tag_text = '[' + tag_text + ']'
|
||||
|
||||
text = pre_text + tag_text + post_text
|
||||
pos = len(pre_text) + len(tag_text)
|
||||
text = pre_text + tag_text + post_text
|
||||
pos = len(pre_text) + len(tag_text)
|
||||
|
||||
# tnode = ET.SubElement(parent,"div")
|
||||
# tnode.text=text
|
||||
|
||||
return text
|
||||
return text
|
||||
|
||||
|
||||
def make_type(t):
|
||||
global class_names
|
||||
if t in class_names:
|
||||
return '[' + t + '](class_' + t.lower() + ')'
|
||||
return t
|
||||
global class_names
|
||||
if t in class_names:
|
||||
return '[' + t + '](class_' + t.lower() + ')'
|
||||
return t
|
||||
|
||||
|
||||
def make_method(
|
||||
f,
|
||||
name,
|
||||
m,
|
||||
declare,
|
||||
event=False,
|
||||
):
|
||||
f,
|
||||
name,
|
||||
m,
|
||||
declare,
|
||||
event=False,
|
||||
):
|
||||
|
||||
s = ' * '
|
||||
ret_type = 'void'
|
||||
args = list(m)
|
||||
mdata = {}
|
||||
mdata['argidx'] = []
|
||||
for a in args:
|
||||
if a.tag == 'return':
|
||||
idx = -1
|
||||
elif a.tag == 'argument':
|
||||
idx = int(a.attrib['index'])
|
||||
else:
|
||||
continue
|
||||
s = ' * '
|
||||
ret_type = 'void'
|
||||
args = list(m)
|
||||
mdata = {}
|
||||
mdata['argidx'] = []
|
||||
for a in args:
|
||||
if a.tag == 'return':
|
||||
idx = -1
|
||||
elif a.tag == 'argument':
|
||||
idx = int(a.attrib['index'])
|
||||
else:
|
||||
continue
|
||||
|
||||
mdata['argidx'].append(idx)
|
||||
mdata[idx] = a
|
||||
mdata['argidx'].append(idx)
|
||||
mdata[idx] = a
|
||||
|
||||
if not event:
|
||||
if -1 in mdata['argidx']:
|
||||
s += make_type(mdata[-1].attrib['type'])
|
||||
else:
|
||||
s += 'void'
|
||||
s += ' '
|
||||
if not event:
|
||||
if -1 in mdata['argidx']:
|
||||
s += make_type(mdata[-1].attrib['type'])
|
||||
else:
|
||||
s += 'void'
|
||||
s += ' '
|
||||
|
||||
if declare:
|
||||
if declare:
|
||||
|
||||
# span.attrib["class"]="funcdecl"
|
||||
# a=ET.SubElement(span,"a")
|
||||
# a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
# a.text=name+"::"+m.attrib["name"]
|
||||
# span.attrib["class"]="funcdecl"
|
||||
# a=ET.SubElement(span,"a")
|
||||
# a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
# a.text=name+"::"+m.attrib["name"]
|
||||
|
||||
s += ' **'+m.attrib['name'].replace("_","_")+'** '
|
||||
else:
|
||||
s += ' **['+ m.attrib['name'].replace("_","_")+'](#' + m.attrib['name'] + ')** '
|
||||
s += ' **'+m.attrib['name'].replace("_","_")+'** '
|
||||
else:
|
||||
s += ' **['+ m.attrib['name'].replace("_","_")+'](#' + m.attrib['name'] + ')** '
|
||||
|
||||
s += ' **(**'
|
||||
argfound = False
|
||||
for a in mdata['argidx']:
|
||||
arg = mdata[a]
|
||||
if a < 0:
|
||||
continue
|
||||
if a > 0:
|
||||
s += ', '
|
||||
else:
|
||||
s += ' '
|
||||
s += ' **(**'
|
||||
argfound = False
|
||||
for a in mdata['argidx']:
|
||||
arg = mdata[a]
|
||||
if a < 0:
|
||||
continue
|
||||
if a > 0:
|
||||
s += ', '
|
||||
else:
|
||||
s += ' '
|
||||
|
||||
s += make_type(arg.attrib['type'])
|
||||
if 'name' in arg.attrib:
|
||||
s += ' ' + arg.attrib['name']
|
||||
else:
|
||||
s += ' arg' + str(a)
|
||||
s += make_type(arg.attrib['type'])
|
||||
if 'name' in arg.attrib:
|
||||
s += ' ' + arg.attrib['name']
|
||||
else:
|
||||
s += ' arg' + str(a)
|
||||
|
||||
if 'default' in arg.attrib:
|
||||
s += '=' + arg.attrib['default']
|
||||
if 'default' in arg.attrib:
|
||||
s += '=' + arg.attrib['default']
|
||||
|
||||
argfound = True
|
||||
argfound = True
|
||||
|
||||
if argfound:
|
||||
s += ' '
|
||||
s += ' **)**'
|
||||
if argfound:
|
||||
s += ' '
|
||||
s += ' **)**'
|
||||
|
||||
if 'qualifiers' in m.attrib:
|
||||
s += ' ' + m.attrib['qualifiers']
|
||||
if 'qualifiers' in m.attrib:
|
||||
s += ' ' + m.attrib['qualifiers']
|
||||
|
||||
f.write(s + '\n')
|
||||
f.write(s + '\n')
|
||||
|
||||
|
||||
def make_doku_class(node):
|
||||
|
||||
name = node.attrib['name']
|
||||
name = node.attrib['name']
|
||||
|
||||
f = open("class_"+name.lower() + '.md', 'wb')
|
||||
f = open("class_"+name.lower() + '.md', 'wb')
|
||||
|
||||
f.write('# ' + name + ' \n')
|
||||
f.write('# ' + name + ' \n')
|
||||
|
||||
if 'inherits' in node.attrib:
|
||||
inh = node.attrib['inherits'].strip()
|
||||
f.write('####**Inherits:** '+make_type(inh)+'\n')
|
||||
if 'category' in node.attrib:
|
||||
f.write('####**Category:** ' + node.attrib['category'].strip()
|
||||
+ '\n')
|
||||
if 'inherits' in node.attrib:
|
||||
inh = node.attrib['inherits'].strip()
|
||||
f.write('####**Inherits:** '+make_type(inh)+'\n')
|
||||
if 'category' in node.attrib:
|
||||
f.write('####**Category:** ' + node.attrib['category'].strip()
|
||||
+ '\n')
|
||||
|
||||
briefd = node.find('brief_description')
|
||||
if briefd != None:
|
||||
f.write('\n### Brief Description \n')
|
||||
f.write(dokuize_text(briefd.text.strip()) + '\n')
|
||||
briefd = node.find('brief_description')
|
||||
if briefd != None:
|
||||
f.write('\n### Brief Description \n')
|
||||
f.write(dokuize_text(briefd.text.strip()) + '\n')
|
||||
|
||||
methods = node.find('methods')
|
||||
methods = node.find('methods')
|
||||
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write('\n### Member Functions \n')
|
||||
for m in list(methods):
|
||||
make_method(f, node.attrib['name'], m, False)
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write('\n### Member Functions \n')
|
||||
for m in list(methods):
|
||||
make_method(f, node.attrib['name'], m, False)
|
||||
|
||||
events = node.find('signals')
|
||||
if events != None and len(list(events)) > 0:
|
||||
f.write('\n### Signals \n')
|
||||
for m in list(events):
|
||||
make_method(f, node.attrib['name'], m, True, True)
|
||||
events = node.find('signals')
|
||||
if events != None and len(list(events)) > 0:
|
||||
f.write('\n### Signals \n')
|
||||
for m in list(events):
|
||||
make_method(f, node.attrib['name'], m, True, True)
|
||||
|
||||
members = node.find('members')
|
||||
members = node.find('members')
|
||||
|
||||
if members != None and len(list(members)) > 0:
|
||||
f.write('\n### Member Variables \n')
|
||||
if members != None and len(list(members)) > 0:
|
||||
f.write('\n### Member Variables \n')
|
||||
|
||||
for c in list(members):
|
||||
s = ' * '
|
||||
s += make_type(c.attrib['type']) + ' '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
for c in list(members):
|
||||
s = ' * '
|
||||
s += make_type(c.attrib['type']) + ' '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
|
||||
constants = node.find('constants')
|
||||
if constants != None and len(list(constants)) > 0:
|
||||
f.write('\n### Numeric Constants \n')
|
||||
for c in list(constants):
|
||||
s = ' * '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if 'value' in c.attrib:
|
||||
s += ' = **' + c.attrib['value'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
constants = node.find('constants')
|
||||
if constants != None and len(list(constants)) > 0:
|
||||
f.write('\n### Numeric Constants \n')
|
||||
for c in list(constants):
|
||||
s = ' * '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if 'value' in c.attrib:
|
||||
s += ' = **' + c.attrib['value'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
|
||||
descr = node.find('description')
|
||||
if descr != None and descr.text.strip() != '':
|
||||
f.write('\n### Description \n')
|
||||
f.write(dokuize_text(descr.text.strip()) + '\n')
|
||||
descr = node.find('description')
|
||||
if descr != None and descr.text.strip() != '':
|
||||
f.write('\n### Description \n')
|
||||
f.write(dokuize_text(descr.text.strip()) + '\n')
|
||||
|
||||
methods = node.find('methods')
|
||||
methods = node.find('methods')
|
||||
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write('\n### Member Function Description \n')
|
||||
for m in list(methods):
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write('\n### Member Function Description \n')
|
||||
for m in list(methods):
|
||||
|
||||
d = m.find('description')
|
||||
if d == None or d.text.strip() == '':
|
||||
continue
|
||||
f.write('\n#### <a name="'+m.attrib['name']+'">' + m.attrib['name'] + '</a>\n')
|
||||
make_method(f, node.attrib['name'], m, True)
|
||||
f.write('\n')
|
||||
f.write(dokuize_text(d.text.strip()))
|
||||
f.write('\n')
|
||||
d = m.find('description')
|
||||
if d == None or d.text.strip() == '':
|
||||
continue
|
||||
f.write('\n#### <a name="'+m.attrib['name']+'">' + m.attrib['name'] + '</a>\n')
|
||||
make_method(f, node.attrib['name'], m, True)
|
||||
f.write('\n')
|
||||
f.write(dokuize_text(d.text.strip()))
|
||||
f.write('\n')
|
||||
|
||||
|
||||
for file in input_list:
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
|
||||
if 'version' not in doc.attrib:
|
||||
print "Version missing from 'doc'"
|
||||
sys.exit(255)
|
||||
if 'version' not in doc.attrib:
|
||||
print "Version missing from 'doc'"
|
||||
sys.exit(255)
|
||||
|
||||
version = doc.attrib['version']
|
||||
version = doc.attrib['version']
|
||||
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
|
||||
class_names.sort()
|
||||
|
||||
make_class_list(class_names, 2)
|
||||
|
||||
for cn in class_names:
|
||||
c = classes[cn]
|
||||
make_doku_class(c)
|
||||
c = classes[cn]
|
||||
make_doku_class(c)
|
||||
|
||||
|
|
|
@ -8,505 +8,505 @@ import xml.etree.ElementTree as ET
|
|||
input_list = []
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
input_list.append(arg)
|
||||
input_list.append(arg)
|
||||
|
||||
if len(input_list) < 1:
|
||||
print 'usage: makerst.py <classes.xml>'
|
||||
sys.exit(0)
|
||||
print 'usage: makerst.py <classes.xml>'
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def validate_tag(elem, tag):
|
||||
if elem.tag != tag:
|
||||
print "Tag mismatch, expected '" + tag + "', got " + elem.tag
|
||||
sys.exit(255)
|
||||
if elem.tag != tag:
|
||||
print "Tag mismatch, expected '" + tag + "', got " + elem.tag
|
||||
sys.exit(255)
|
||||
|
||||
|
||||
class_names = []
|
||||
classes = {}
|
||||
|
||||
def ul_string(str,ul):
|
||||
str+="\n"
|
||||
for i in range(len(str)-1):
|
||||
str+=ul
|
||||
str+="\n"
|
||||
return str
|
||||
str+="\n"
|
||||
for i in range(len(str)-1):
|
||||
str+=ul
|
||||
str+="\n"
|
||||
return str
|
||||
|
||||
def make_class_list(class_list, columns):
|
||||
|
||||
f = codecs.open('class_list.rst', 'wb', 'utf-8')
|
||||
prev = 0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print ('col max is ', col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ''
|
||||
fit_columns = []
|
||||
f = codecs.open('class_list.rst', 'wb', 'utf-8')
|
||||
prev = 0
|
||||
col_max = len(class_list) / columns + 1
|
||||
print ('col max is ', col_max)
|
||||
col_count = 0
|
||||
row_count = 0
|
||||
last_initial = ''
|
||||
fit_columns = []
|
||||
|
||||
for n in range(0, columns):
|
||||
fit_columns += [[]]
|
||||
for n in range(0, columns):
|
||||
fit_columns += [[]]
|
||||
|
||||
indexers = []
|
||||
last_initial = ''
|
||||
indexers = []
|
||||
last_initial = ''
|
||||
|
||||
idx = 0
|
||||
for n in class_list:
|
||||
col = idx / col_max
|
||||
if col >= columns:
|
||||
col = columns - 1
|
||||
fit_columns[col] += [n]
|
||||
idx += 1
|
||||
if n[:1] != last_initial:
|
||||
indexers += [n]
|
||||
last_initial = n[:1]
|
||||
idx = 0
|
||||
for n in class_list:
|
||||
col = idx / col_max
|
||||
if col >= columns:
|
||||
col = columns - 1
|
||||
fit_columns[col] += [n]
|
||||
idx += 1
|
||||
if n[:1] != last_initial:
|
||||
indexers += [n]
|
||||
last_initial = n[:1]
|
||||
|
||||
row_max = 0
|
||||
f.write("\n")
|
||||
row_max = 0
|
||||
f.write("\n")
|
||||
|
||||
for n in range(0, columns):
|
||||
if len(fit_columns[n]) > row_max:
|
||||
row_max = len(fit_columns[n])
|
||||
for n in range(0, columns):
|
||||
if len(fit_columns[n]) > row_max:
|
||||
row_max = len(fit_columns[n])
|
||||
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" | |")
|
||||
f.write("| ")
|
||||
for n in range(0, columns):
|
||||
f.write(" | |")
|
||||
|
||||
f.write("\n")
|
||||
f.write("+")
|
||||
for n in range(0, columns):
|
||||
f.write("--+-------+")
|
||||
f.write("\n")
|
||||
f.write("\n")
|
||||
f.write("+")
|
||||
for n in range(0, columns):
|
||||
f.write("--+-------+")
|
||||
f.write("\n")
|
||||
|
||||
for r in range(0, row_max):
|
||||
s = '+ '
|
||||
for c in range(0, columns):
|
||||
if r >= len(fit_columns[c]):
|
||||
continue
|
||||
for r in range(0, row_max):
|
||||
s = '+ '
|
||||
for c in range(0, columns):
|
||||
if r >= len(fit_columns[c]):
|
||||
continue
|
||||
|
||||
classname = fit_columns[c][r]
|
||||
initial = classname[0]
|
||||
if classname in indexers:
|
||||
s += '**' + initial + '** | '
|
||||
else:
|
||||
s += ' | '
|
||||
classname = fit_columns[c][r]
|
||||
initial = classname[0]
|
||||
if classname in indexers:
|
||||
s += '**' + initial + '** | '
|
||||
else:
|
||||
s += ' | '
|
||||
|
||||
s += '[' + classname + '](class_'+ classname.lower()+') | '
|
||||
s += '[' + classname + '](class_'+ classname.lower()+') | '
|
||||
|
||||
s += '\n'
|
||||
f.write(s)
|
||||
s += '\n'
|
||||
f.write(s)
|
||||
|
||||
for n in range(0, columns):
|
||||
f.write("--+-------+")
|
||||
f.write("\n")
|
||||
for n in range(0, columns):
|
||||
f.write("--+-------+")
|
||||
f.write("\n")
|
||||
|
||||
|
||||
def rstize_text(text,cclass):
|
||||
|
||||
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('\n', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('\n', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
|
||||
pre_text = text[:pos]
|
||||
while text[pos+1] == '\t':
|
||||
pos += 1
|
||||
post_text = text[pos+1:]
|
||||
pre_text = text[:pos]
|
||||
while text[pos+1] == '\t':
|
||||
pos += 1
|
||||
post_text = text[pos+1:]
|
||||
|
||||
# Handle codeblocks
|
||||
if post_text.startswith("[codeblock]"):
|
||||
end_pos = post_text.find("[/codeblock]")
|
||||
if end_pos == -1:
|
||||
sys.exit("ERROR! [codeblock] without a closing tag!")
|
||||
# Handle codeblocks
|
||||
if post_text.startswith("[codeblock]"):
|
||||
end_pos = post_text.find("[/codeblock]")
|
||||
if end_pos == -1:
|
||||
sys.exit("ERROR! [codeblock] without a closing tag!")
|
||||
|
||||
code_text = post_text[len("[codeblock]"):end_pos]
|
||||
post_text = post_text[end_pos:]
|
||||
code_text = post_text[len("[codeblock]"):end_pos]
|
||||
post_text = post_text[end_pos:]
|
||||
|
||||
# Remove extraneous tabs
|
||||
code_pos = 0
|
||||
while True:
|
||||
code_pos = code_text.find('\n', code_pos)
|
||||
if code_pos == -1:
|
||||
break
|
||||
# Remove extraneous tabs
|
||||
code_pos = 0
|
||||
while True:
|
||||
code_pos = code_text.find('\n', code_pos)
|
||||
if code_pos == -1:
|
||||
break
|
||||
|
||||
to_skip = 0
|
||||
while code_pos+to_skip+1 < len(code_text) and code_text[code_pos+to_skip+1] == '\t':
|
||||
to_skip += 1
|
||||
to_skip = 0
|
||||
while code_pos+to_skip+1 < len(code_text) and code_text[code_pos+to_skip+1] == '\t':
|
||||
to_skip += 1
|
||||
|
||||
if len(code_text[code_pos+to_skip+1:])==0:
|
||||
code_text = code_text[:code_pos] + "\n"
|
||||
code_pos += 1
|
||||
else:
|
||||
code_text = code_text[:code_pos] + "\n " + code_text[code_pos+to_skip+1:]
|
||||
code_pos += 5 - to_skip
|
||||
if len(code_text[code_pos+to_skip+1:])==0:
|
||||
code_text = code_text[:code_pos] + "\n"
|
||||
code_pos += 1
|
||||
else:
|
||||
code_text = code_text[:code_pos] + "\n " + code_text[code_pos+to_skip+1:]
|
||||
code_pos += 5 - to_skip
|
||||
|
||||
text = pre_text + "\n[codeblock]" + code_text + post_text
|
||||
pos += len("\n[codeblock]" + code_text)
|
||||
text = pre_text + "\n[codeblock]" + code_text + post_text
|
||||
pos += len("\n[codeblock]" + code_text)
|
||||
|
||||
# Handle normal text
|
||||
else:
|
||||
text = pre_text + "\n\n" + post_text
|
||||
pos += 2
|
||||
# Handle normal text
|
||||
else:
|
||||
text = pre_text + "\n\n" + post_text
|
||||
pos += 2
|
||||
|
||||
# Escape * character to avoid interpreting it as emphasis
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('*', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
text = text[:pos] + "\*" + text[pos + 1:]
|
||||
pos += 2
|
||||
# Escape * character to avoid interpreting it as emphasis
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('*', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
text = text[:pos] + "\*" + text[pos + 1:]
|
||||
pos += 2
|
||||
|
||||
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('_', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
if not text[pos + 1].isalnum(): # don't escape within a snake_case word
|
||||
text = text[:pos] + "\_" + text[pos + 1:]
|
||||
pos += 2
|
||||
else:
|
||||
pos += 1
|
||||
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('_', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
if not text[pos + 1].isalnum(): # don't escape within a snake_case word
|
||||
text = text[:pos] + "\_" + text[pos + 1:]
|
||||
pos += 2
|
||||
else:
|
||||
pos += 1
|
||||
|
||||
# Handle [tags]
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('[', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
# Handle [tags]
|
||||
pos = 0
|
||||
while True:
|
||||
pos = text.find('[', pos)
|
||||
if pos == -1:
|
||||
break
|
||||
|
||||
endq_pos = text.find(']', pos + 1)
|
||||
if endq_pos == -1:
|
||||
break
|
||||
endq_pos = text.find(']', pos + 1)
|
||||
if endq_pos == -1:
|
||||
break
|
||||
|
||||
pre_text = text[:pos]
|
||||
post_text = text[endq_pos + 1:]
|
||||
tag_text = text[pos + 1:endq_pos]
|
||||
pre_text = text[:pos]
|
||||
post_text = text[endq_pos + 1:]
|
||||
tag_text = text[pos + 1:endq_pos]
|
||||
|
||||
if tag_text in class_names:
|
||||
tag_text = make_type(tag_text)
|
||||
else: # command
|
||||
cmd = tag_text
|
||||
space_pos = tag_text.find(' ')
|
||||
if cmd.find('html') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
tag_text = param
|
||||
elif cmd.find('method') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
if tag_text in class_names:
|
||||
tag_text = make_type(tag_text)
|
||||
else: # command
|
||||
cmd = tag_text
|
||||
space_pos = tag_text.find(' ')
|
||||
if cmd.find('html') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
tag_text = param
|
||||
elif cmd.find('method') == 0:
|
||||
cmd = tag_text[:space_pos]
|
||||
param = tag_text[space_pos + 1:]
|
||||
|
||||
if param.find('.') != -1:
|
||||
(class_param, method_param) = param.split('.')
|
||||
tag_text = ':ref:`'+class_param+'.'+method_param+'<class_' + class_param + '_' + method_param + '>`'
|
||||
else:
|
||||
tag_text = ':ref:`' + param + '<class_' + cclass +"_"+ param + '>`'
|
||||
elif cmd.find('image=') == 0:
|
||||
tag_text = "" #'![](' + cmd[6:] + ')'
|
||||
elif cmd.find('url=') == 0:
|
||||
tag_text = ':ref:`' + cmd[4:] + '<'+cmd[4:]+">`"
|
||||
elif cmd == '/url':
|
||||
tag_text = ')'
|
||||
elif cmd == 'center':
|
||||
tag_text = ''
|
||||
elif cmd == '/center':
|
||||
tag_text = ''
|
||||
elif cmd == 'codeblock':
|
||||
tag_text = '\n::\n'
|
||||
elif cmd == '/codeblock':
|
||||
tag_text = ''
|
||||
# Strip newline if the tag was alone on one
|
||||
if pre_text[-1] == '\n':
|
||||
pre_text = pre_text[:-1]
|
||||
elif cmd == 'br':
|
||||
# Make a new paragraph instead of a linebreak, rst is not so linebreak friendly
|
||||
tag_text = '\n\n'
|
||||
# Strip potential leading spaces
|
||||
while post_text[0] == ' ':
|
||||
post_text = post_text[1:]
|
||||
elif cmd == 'i' or cmd == '/i':
|
||||
tag_text = '*'
|
||||
elif cmd == 'b' or cmd == '/b':
|
||||
tag_text = '**'
|
||||
elif cmd == 'u' or cmd == '/u':
|
||||
tag_text = ''
|
||||
elif cmd == 'code' or cmd == '/code':
|
||||
tag_text = '``'
|
||||
else:
|
||||
tag_text = ':ref:`' + tag_text + '<class_'+tag_text.lower()+'>`'
|
||||
if param.find('.') != -1:
|
||||
(class_param, method_param) = param.split('.')
|
||||
tag_text = ':ref:`'+class_param+'.'+method_param+'<class_' + class_param + '_' + method_param + '>`'
|
||||
else:
|
||||
tag_text = ':ref:`' + param + '<class_' + cclass +"_"+ param + '>`'
|
||||
elif cmd.find('image=') == 0:
|
||||
tag_text = "" #'![](' + cmd[6:] + ')'
|
||||
elif cmd.find('url=') == 0:
|
||||
tag_text = ':ref:`' + cmd[4:] + '<'+cmd[4:]+">`"
|
||||
elif cmd == '/url':
|
||||
tag_text = ')'
|
||||
elif cmd == 'center':
|
||||
tag_text = ''
|
||||
elif cmd == '/center':
|
||||
tag_text = ''
|
||||
elif cmd == 'codeblock':
|
||||
tag_text = '\n::\n'
|
||||
elif cmd == '/codeblock':
|
||||
tag_text = ''
|
||||
# Strip newline if the tag was alone on one
|
||||
if pre_text[-1] == '\n':
|
||||
pre_text = pre_text[:-1]
|
||||
elif cmd == 'br':
|
||||
# Make a new paragraph instead of a linebreak, rst is not so linebreak friendly
|
||||
tag_text = '\n\n'
|
||||
# Strip potential leading spaces
|
||||
while post_text[0] == ' ':
|
||||
post_text = post_text[1:]
|
||||
elif cmd == 'i' or cmd == '/i':
|
||||
tag_text = '*'
|
||||
elif cmd == 'b' or cmd == '/b':
|
||||
tag_text = '**'
|
||||
elif cmd == 'u' or cmd == '/u':
|
||||
tag_text = ''
|
||||
elif cmd == 'code' or cmd == '/code':
|
||||
tag_text = '``'
|
||||
else:
|
||||
tag_text = ':ref:`' + tag_text + '<class_'+tag_text.lower()+'>`'
|
||||
|
||||
text = pre_text + tag_text + post_text
|
||||
pos = len(pre_text) + len(tag_text)
|
||||
text = pre_text + tag_text + post_text
|
||||
pos = len(pre_text) + len(tag_text)
|
||||
|
||||
# tnode = ET.SubElement(parent,"div")
|
||||
# tnode.text=text
|
||||
|
||||
return text
|
||||
return text
|
||||
|
||||
|
||||
def make_type(t):
|
||||
global class_names
|
||||
if t in class_names:
|
||||
return ':ref:`'+t+'<class_' + t.lower()+'>`'
|
||||
return t
|
||||
global class_names
|
||||
if t in class_names:
|
||||
return ':ref:`'+t+'<class_' + t.lower()+'>`'
|
||||
return t
|
||||
|
||||
|
||||
def make_method(
|
||||
f,
|
||||
name,
|
||||
m,
|
||||
declare,
|
||||
cname,
|
||||
event=False,
|
||||
pp=None
|
||||
):
|
||||
f,
|
||||
name,
|
||||
m,
|
||||
declare,
|
||||
cname,
|
||||
event=False,
|
||||
pp=None
|
||||
):
|
||||
|
||||
if (declare or pp==None):
|
||||
t = '- '
|
||||
else:
|
||||
t = ""
|
||||
if (declare or pp==None):
|
||||
t = '- '
|
||||
else:
|
||||
t = ""
|
||||
|
||||
ret_type = 'void'
|
||||
args = list(m)
|
||||
mdata = {}
|
||||
mdata['argidx'] = []
|
||||
for a in args:
|
||||
if a.tag == 'return':
|
||||
idx = -1
|
||||
elif a.tag == 'argument':
|
||||
idx = int(a.attrib['index'])
|
||||
else:
|
||||
continue
|
||||
ret_type = 'void'
|
||||
args = list(m)
|
||||
mdata = {}
|
||||
mdata['argidx'] = []
|
||||
for a in args:
|
||||
if a.tag == 'return':
|
||||
idx = -1
|
||||
elif a.tag == 'argument':
|
||||
idx = int(a.attrib['index'])
|
||||
else:
|
||||
continue
|
||||
|
||||
mdata['argidx'].append(idx)
|
||||
mdata[idx] = a
|
||||
mdata['argidx'].append(idx)
|
||||
mdata[idx] = a
|
||||
|
||||
if not event:
|
||||
if -1 in mdata['argidx']:
|
||||
t += make_type(mdata[-1].attrib['type'])
|
||||
else:
|
||||
t += 'void'
|
||||
t += ' '
|
||||
if not event:
|
||||
if -1 in mdata['argidx']:
|
||||
t += make_type(mdata[-1].attrib['type'])
|
||||
else:
|
||||
t += 'void'
|
||||
t += ' '
|
||||
|
||||
if declare or pp==None:
|
||||
if declare or pp==None:
|
||||
|
||||
# span.attrib["class"]="funcdecl"
|
||||
# a=ET.SubElement(span,"a")
|
||||
# a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
# a.text=name+"::"+m.attrib["name"]
|
||||
# span.attrib["class"]="funcdecl"
|
||||
# a=ET.SubElement(span,"a")
|
||||
# a.attrib["name"]=name+"_"+m.attrib["name"]
|
||||
# a.text=name+"::"+m.attrib["name"]
|
||||
|
||||
s = ' **'+m.attrib['name']+'** '
|
||||
else:
|
||||
s = ':ref:`'+ m.attrib['name']+'<class_' + cname+"_"+m.attrib['name'] + '>` '
|
||||
s = ' **'+m.attrib['name']+'** '
|
||||
else:
|
||||
s = ':ref:`'+ m.attrib['name']+'<class_' + cname+"_"+m.attrib['name'] + '>` '
|
||||
|
||||
s += ' **(**'
|
||||
argfound = False
|
||||
for a in mdata['argidx']:
|
||||
arg = mdata[a]
|
||||
if a < 0:
|
||||
continue
|
||||
if a > 0:
|
||||
s += ', '
|
||||
else:
|
||||
s += ' '
|
||||
s += ' **(**'
|
||||
argfound = False
|
||||
for a in mdata['argidx']:
|
||||
arg = mdata[a]
|
||||
if a < 0:
|
||||
continue
|
||||
if a > 0:
|
||||
s += ', '
|
||||
else:
|
||||
s += ' '
|
||||
|
||||
s += make_type(arg.attrib['type'])
|
||||
if 'name' in arg.attrib:
|
||||
s += ' ' + arg.attrib['name']
|
||||
else:
|
||||
s += ' arg' + str(a)
|
||||
s += make_type(arg.attrib['type'])
|
||||
if 'name' in arg.attrib:
|
||||
s += ' ' + arg.attrib['name']
|
||||
else:
|
||||
s += ' arg' + str(a)
|
||||
|
||||
if 'default' in arg.attrib:
|
||||
s += '=' + arg.attrib['default']
|
||||
if 'default' in arg.attrib:
|
||||
s += '=' + arg.attrib['default']
|
||||
|
||||
argfound = True
|
||||
argfound = True
|
||||
|
||||
if argfound:
|
||||
s += ' '
|
||||
s += ' **)**'
|
||||
if argfound:
|
||||
s += ' '
|
||||
s += ' **)**'
|
||||
|
||||
if 'qualifiers' in m.attrib:
|
||||
s += ' ' + m.attrib['qualifiers']
|
||||
if 'qualifiers' in m.attrib:
|
||||
s += ' ' + m.attrib['qualifiers']
|
||||
|
||||
# f.write(s)
|
||||
if (not declare):
|
||||
if (pp!=None):
|
||||
pp.append( (t,s) )
|
||||
else:
|
||||
f.write("- "+t+" "+s+"\n")
|
||||
else:
|
||||
f.write(t+s+"\n")
|
||||
if (not declare):
|
||||
if (pp!=None):
|
||||
pp.append( (t,s) )
|
||||
else:
|
||||
f.write("- "+t+" "+s+"\n")
|
||||
else:
|
||||
f.write(t+s+"\n")
|
||||
|
||||
|
||||
def make_heading(title, underline):
|
||||
return title + '\n' + underline*len(title) + "\n\n"
|
||||
return title + '\n' + underline*len(title) + "\n\n"
|
||||
|
||||
|
||||
|
||||
def make_rst_class(node):
|
||||
|
||||
name = node.attrib['name']
|
||||
name = node.attrib['name']
|
||||
|
||||
f = codecs.open("class_"+name.lower() + '.rst', 'wb', 'utf-8')
|
||||
f = codecs.open("class_"+name.lower() + '.rst', 'wb', 'utf-8')
|
||||
|
||||
# Warn contributors not to edit this file directly
|
||||
f.write(".. Generated automatically by doc/tools/makerst.py in Godot's source tree.\n")
|
||||
f.write(".. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.\n\n")
|
||||
# Warn contributors not to edit this file directly
|
||||
f.write(".. Generated automatically by doc/tools/makerst.py in Godot's source tree.\n")
|
||||
f.write(".. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.\n\n")
|
||||
|
||||
f.write(".. _class_"+name+":\n\n")
|
||||
f.write(make_heading(name, '='))
|
||||
f.write(".. _class_"+name+":\n\n")
|
||||
f.write(make_heading(name, '='))
|
||||
|
||||
if 'inherits' in node.attrib:
|
||||
inh = node.attrib['inherits'].strip()
|
||||
if 'inherits' in node.attrib:
|
||||
inh = node.attrib['inherits'].strip()
|
||||
# whle inh in classes[cn]
|
||||
f.write('**Inherits:** ')
|
||||
first=True
|
||||
while(inh in classes):
|
||||
if (not first):
|
||||
f.write(" **<** ")
|
||||
else:
|
||||
first=False
|
||||
f.write('**Inherits:** ')
|
||||
first=True
|
||||
while(inh in classes):
|
||||
if (not first):
|
||||
f.write(" **<** ")
|
||||
else:
|
||||
first=False
|
||||
|
||||
f.write(make_type(inh))
|
||||
inode = classes[inh]
|
||||
if ('inherits' in inode.attrib):
|
||||
inh=inode.attrib['inherits'].strip()
|
||||
else:
|
||||
inh=None
|
||||
f.write(make_type(inh))
|
||||
inode = classes[inh]
|
||||
if ('inherits' in inode.attrib):
|
||||
inh=inode.attrib['inherits'].strip()
|
||||
else:
|
||||
inh=None
|
||||
|
||||
|
||||
f.write("\n\n")
|
||||
f.write("\n\n")
|
||||
|
||||
inherited=[]
|
||||
for cn in classes:
|
||||
c=classes[cn]
|
||||
if 'inherits' in c.attrib:
|
||||
if (c.attrib['inherits'].strip()==name):
|
||||
inherited.append(c.attrib['name'])
|
||||
inherited=[]
|
||||
for cn in classes:
|
||||
c=classes[cn]
|
||||
if 'inherits' in c.attrib:
|
||||
if (c.attrib['inherits'].strip()==name):
|
||||
inherited.append(c.attrib['name'])
|
||||
|
||||
if (len(inherited)):
|
||||
f.write('**Inherited By:** ')
|
||||
for i in range(len(inherited)):
|
||||
if (i>0):
|
||||
f.write(", ")
|
||||
f.write(make_type(inherited[i]))
|
||||
f.write("\n\n")
|
||||
if 'category' in node.attrib:
|
||||
f.write('**Category:** ' + node.attrib['category'].strip() + "\n\n")
|
||||
if (len(inherited)):
|
||||
f.write('**Inherited By:** ')
|
||||
for i in range(len(inherited)):
|
||||
if (i>0):
|
||||
f.write(", ")
|
||||
f.write(make_type(inherited[i]))
|
||||
f.write("\n\n")
|
||||
if 'category' in node.attrib:
|
||||
f.write('**Category:** ' + node.attrib['category'].strip() + "\n\n")
|
||||
|
||||
f.write(make_heading('Brief Description', '-'))
|
||||
briefd = node.find('brief_description')
|
||||
if briefd != None:
|
||||
f.write(rstize_text(briefd.text.strip(),name) + "\n\n")
|
||||
f.write(make_heading('Brief Description', '-'))
|
||||
briefd = node.find('brief_description')
|
||||
if briefd != None:
|
||||
f.write(rstize_text(briefd.text.strip(),name) + "\n\n")
|
||||
|
||||
methods = node.find('methods')
|
||||
methods = node.find('methods')
|
||||
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write(make_heading('Member Functions', '-'))
|
||||
ml=[]
|
||||
for m in list(methods):
|
||||
make_method(f, node.attrib['name'], m, False,name,False,ml)
|
||||
longest_t = 0
|
||||
longest_s = 0
|
||||
for s in ml:
|
||||
sl = len(s[0])
|
||||
if (sl>longest_s):
|
||||
longest_s=sl
|
||||
tl = len(s[1])
|
||||
if (tl>longest_t):
|
||||
longest_t=tl
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write(make_heading('Member Functions', '-'))
|
||||
ml=[]
|
||||
for m in list(methods):
|
||||
make_method(f, node.attrib['name'], m, False,name,False,ml)
|
||||
longest_t = 0
|
||||
longest_s = 0
|
||||
for s in ml:
|
||||
sl = len(s[0])
|
||||
if (sl>longest_s):
|
||||
longest_s=sl
|
||||
tl = len(s[1])
|
||||
if (tl>longest_t):
|
||||
longest_t=tl
|
||||
|
||||
sep="+"
|
||||
for i in range(longest_s+2):
|
||||
sep+="-"
|
||||
sep+="+"
|
||||
for i in range(longest_t+2):
|
||||
sep+="-"
|
||||
sep+="+\n"
|
||||
f.write(sep)
|
||||
for s in ml:
|
||||
rt = s[0]
|
||||
while( len(rt) < longest_s ):
|
||||
rt+=" "
|
||||
st = s[1]
|
||||
while( len(st) < longest_t ):
|
||||
st+=" "
|
||||
f.write("| "+rt+" | "+st+" |\n")
|
||||
f.write(sep)
|
||||
f.write('\n')
|
||||
sep="+"
|
||||
for i in range(longest_s+2):
|
||||
sep+="-"
|
||||
sep+="+"
|
||||
for i in range(longest_t+2):
|
||||
sep+="-"
|
||||
sep+="+\n"
|
||||
f.write(sep)
|
||||
for s in ml:
|
||||
rt = s[0]
|
||||
while( len(rt) < longest_s ):
|
||||
rt+=" "
|
||||
st = s[1]
|
||||
while( len(st) < longest_t ):
|
||||
st+=" "
|
||||
f.write("| "+rt+" | "+st+" |\n")
|
||||
f.write(sep)
|
||||
f.write('\n')
|
||||
|
||||
|
||||
events = node.find('signals')
|
||||
if events != None and len(list(events)) > 0:
|
||||
f.write(make_heading('Signals', '-'))
|
||||
for m in list(events):
|
||||
make_method(f, node.attrib['name'], m, True,name, True)
|
||||
f.write('\n')
|
||||
events = node.find('signals')
|
||||
if events != None and len(list(events)) > 0:
|
||||
f.write(make_heading('Signals', '-'))
|
||||
for m in list(events):
|
||||
make_method(f, node.attrib['name'], m, True,name, True)
|
||||
f.write('\n')
|
||||
|
||||
members = node.find('members')
|
||||
if members != None and len(list(members)) > 0:
|
||||
f.write(make_heading('Member Variables', '-'))
|
||||
members = node.find('members')
|
||||
if members != None and len(list(members)) > 0:
|
||||
f.write(make_heading('Member Variables', '-'))
|
||||
|
||||
for c in list(members):
|
||||
s = '- '
|
||||
s += make_type(c.attrib['type']) + ' '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
f.write('\n')
|
||||
for c in list(members):
|
||||
s = '- '
|
||||
s += make_type(c.attrib['type']) + ' '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' - ' + c.text.strip()
|
||||
f.write(s + '\n')
|
||||
f.write('\n')
|
||||
|
||||
constants = node.find('constants')
|
||||
if constants != None and len(list(constants)) > 0:
|
||||
f.write(make_heading('Numeric Constants', '-'))
|
||||
for c in list(constants):
|
||||
s = '- '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if 'value' in c.attrib:
|
||||
s += ' = **' + c.attrib['value'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' --- ' + rstize_text(c.text.strip(),name)
|
||||
f.write(s + '\n')
|
||||
f.write('\n')
|
||||
constants = node.find('constants')
|
||||
if constants != None and len(list(constants)) > 0:
|
||||
f.write(make_heading('Numeric Constants', '-'))
|
||||
for c in list(constants):
|
||||
s = '- '
|
||||
s += '**' + c.attrib['name'] + '**'
|
||||
if 'value' in c.attrib:
|
||||
s += ' = **' + c.attrib['value'] + '**'
|
||||
if c.text.strip() != '':
|
||||
s += ' --- ' + rstize_text(c.text.strip(),name)
|
||||
f.write(s + '\n')
|
||||
f.write('\n')
|
||||
|
||||
descr = node.find('description')
|
||||
if descr != None and descr.text.strip() != '':
|
||||
f.write(make_heading('Description', '-'))
|
||||
f.write(rstize_text(descr.text.strip(),name) + "\n\n")
|
||||
descr = node.find('description')
|
||||
if descr != None and descr.text.strip() != '':
|
||||
f.write(make_heading('Description', '-'))
|
||||
f.write(rstize_text(descr.text.strip(),name) + "\n\n")
|
||||
|
||||
methods = node.find('methods')
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write(make_heading('Member Function Description', '-'))
|
||||
for m in list(methods):
|
||||
f.write(".. _class_"+name+"_"+m.attrib['name']+":\n\n")
|
||||
methods = node.find('methods')
|
||||
if methods != None and len(list(methods)) > 0:
|
||||
f.write(make_heading('Member Function Description', '-'))
|
||||
for m in list(methods):
|
||||
f.write(".. _class_"+name+"_"+m.attrib['name']+":\n\n")
|
||||
# f.write(ul_string(m.attrib['name'],"^"))
|
||||
#f.write('\n<a name="'+m.attrib['name']+'">' + m.attrib['name'] + '</a>\n------\n')
|
||||
make_method(f, node.attrib['name'], m, True,name)
|
||||
f.write('\n')
|
||||
d = m.find('description')
|
||||
if d == None or d.text.strip() == '':
|
||||
continue
|
||||
f.write(rstize_text(d.text.strip(),name))
|
||||
f.write("\n\n")
|
||||
f.write('\n')
|
||||
#f.write('\n<a name="'+m.attrib['name']+'">' + m.attrib['name'] + '</a>\n------\n')
|
||||
make_method(f, node.attrib['name'], m, True,name)
|
||||
f.write('\n')
|
||||
d = m.find('description')
|
||||
if d == None or d.text.strip() == '':
|
||||
continue
|
||||
f.write(rstize_text(d.text.strip(),name))
|
||||
f.write("\n\n")
|
||||
f.write('\n')
|
||||
|
||||
|
||||
for file in input_list:
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
tree = ET.parse(file)
|
||||
doc = tree.getroot()
|
||||
|
||||
if 'version' not in doc.attrib:
|
||||
print "Version missing from 'doc'"
|
||||
sys.exit(255)
|
||||
if 'version' not in doc.attrib:
|
||||
print "Version missing from 'doc'"
|
||||
sys.exit(255)
|
||||
|
||||
version = doc.attrib['version']
|
||||
version = doc.attrib['version']
|
||||
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
for c in list(doc):
|
||||
if c.attrib['name'] in class_names:
|
||||
continue
|
||||
class_names.append(c.attrib['name'])
|
||||
classes[c.attrib['name']] = c
|
||||
|
||||
class_names.sort()
|
||||
|
||||
|
@ -514,6 +514,6 @@ class_names.sort()
|
|||
#make_class_list(class_names, 2)
|
||||
|
||||
for cn in class_names:
|
||||
c = classes[cn]
|
||||
make_rst_class(c)
|
||||
c = classes[cn]
|
||||
make_rst_class(c)
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ Import('env')
|
|||
env.drivers_sources=[]
|
||||
|
||||
if ("builtin_zlib" in env and env["builtin_zlib"] == "yes"):
|
||||
SConscript("zlib/SCsub");
|
||||
SConscript("zlib/SCsub");
|
||||
|
||||
# OS drivers
|
||||
SConscript('unix/SCsub');
|
||||
|
@ -15,9 +15,9 @@ SConscript('windows/SCsub');
|
|||
SConscript('alsa/SCsub');
|
||||
SConscript('pulseaudio/SCsub');
|
||||
if (env["platform"] == "windows"):
|
||||
SConscript("rtaudio/SCsub");
|
||||
SConscript("rtaudio/SCsub");
|
||||
if (env["xaudio2"] == "yes"):
|
||||
SConscript("xaudio2/SCsub");
|
||||
SConscript("xaudio2/SCsub");
|
||||
|
||||
# Graphics drivers
|
||||
SConscript('gles2/SCsub');
|
||||
|
@ -29,14 +29,14 @@ SConscript("png/SCsub");
|
|||
# Tools override
|
||||
# FIXME: Should likely be integrated in the tools/ codebase
|
||||
if (env["tools"]=="yes"):
|
||||
SConscript("convex_decomp/SCsub");
|
||||
SConscript("convex_decomp/SCsub");
|
||||
|
||||
if env['vsproj']=="yes":
|
||||
env.AddToVSProject(env.drivers_sources)
|
||||
env.AddToVSProject(env.drivers_sources)
|
||||
|
||||
if env.split_drivers:
|
||||
env.split_lib("drivers")
|
||||
env.split_lib("drivers")
|
||||
else:
|
||||
env.add_source_files(env.drivers_sources,"*.cpp")
|
||||
lib = env.Library("drivers",env.drivers_sources)
|
||||
env.Prepend(LIBS=[lib])
|
||||
env.add_source_files(env.drivers_sources,"*.cpp")
|
||||
lib = env.Library("drivers",env.drivers_sources)
|
||||
env.Prepend(LIBS=[lib])
|
||||
|
|
|
@ -3,19 +3,19 @@
|
|||
Import('env')
|
||||
|
||||
if (env["platform"] in ["haiku","osx","windows","x11"]):
|
||||
# Thirdparty source files
|
||||
if (env["glew"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/glew/"
|
||||
thirdparty_sources = [
|
||||
"glew.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
# Thirdparty source files
|
||||
if (env["glew"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/glew/"
|
||||
thirdparty_sources = [
|
||||
"glew.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env.add_source_files(env.drivers_sources, thirdparty_sources)
|
||||
env.Append(CPPFLAGS = ['-DGLEW_STATIC'])
|
||||
env.Append(CPPPATH = [thirdparty_dir])
|
||||
env.add_source_files(env.drivers_sources, thirdparty_sources)
|
||||
env.Append(CPPFLAGS = ['-DGLEW_STATIC'])
|
||||
env.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
env.Append(CPPFLAGS = ['-DGLEW_ENABLED'])
|
||||
env.Append(CPPFLAGS = ['-DGLEW_ENABLED'])
|
||||
|
||||
# Godot source files
|
||||
env.add_source_files(env.drivers_sources, "*.cpp")
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
Import('env')
|
||||
|
||||
if env['BUILDERS'].has_key('GLSL120GLES'):
|
||||
env.GLSL120GLES('material.glsl');
|
||||
env.GLSL120GLES('canvas.glsl');
|
||||
env.GLSL120GLES('canvas_shadow.glsl');
|
||||
env.GLSL120GLES('blur.glsl');
|
||||
env.GLSL120GLES('copy.glsl');
|
||||
env.GLSL120GLES('material.glsl');
|
||||
env.GLSL120GLES('canvas.glsl');
|
||||
env.GLSL120GLES('canvas_shadow.glsl');
|
||||
env.GLSL120GLES('blur.glsl');
|
||||
env.GLSL120GLES('copy.glsl');
|
||||
|
||||
Export('env')
|
||||
|
|
|
@ -6,43 +6,43 @@ env_png = env.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libpng"] == "builtin"):
|
||||
thirdparty_dir = "#thirdparty/libpng/"
|
||||
thirdparty_sources = [
|
||||
"png.c",
|
||||
"pngerror.c",
|
||||
"pngget.c",
|
||||
"pngmem.c",
|
||||
"pngpread.c",
|
||||
"pngread.c",
|
||||
"pngrio.c",
|
||||
"pngrtran.c",
|
||||
"pngrutil.c",
|
||||
"pngset.c",
|
||||
"pngtrans.c",
|
||||
"pngwio.c",
|
||||
"pngwrite.c",
|
||||
"pngwtran.c",
|
||||
"pngwutil.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_dir = "#thirdparty/libpng/"
|
||||
thirdparty_sources = [
|
||||
"png.c",
|
||||
"pngerror.c",
|
||||
"pngget.c",
|
||||
"pngmem.c",
|
||||
"pngpread.c",
|
||||
"pngread.c",
|
||||
"pngrio.c",
|
||||
"pngrtran.c",
|
||||
"pngrutil.c",
|
||||
"pngset.c",
|
||||
"pngtrans.c",
|
||||
"pngwio.c",
|
||||
"pngwrite.c",
|
||||
"pngwtran.c",
|
||||
"pngwutil.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_png.add_source_files(env.drivers_sources, thirdparty_sources)
|
||||
env_png.Append(CPPPATH = [thirdparty_dir])
|
||||
env_png.add_source_files(env.drivers_sources, thirdparty_sources)
|
||||
env_png.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# Currently .ASM filter_neon.S does not compile on NT.
|
||||
import os
|
||||
if ("neon_enabled" in env and env["neon_enabled"]) and os.name!="nt":
|
||||
env_png.Append(CPPFLAGS = ["-DPNG_ARM_NEON_OPT=2"])
|
||||
env_neon = env_png.Clone();
|
||||
if "S_compiler" in env:
|
||||
env_neon['CC'] = env['S_compiler']
|
||||
neon_sources = []
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/arm_init.c"))
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/filter_neon_intrinsics.c"))
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/filter_neon.S"))
|
||||
env.drivers_sources += neon_sources
|
||||
else:
|
||||
env_png.Append(CPPFLAGS = ["-DPNG_ARM_NEON_OPT=0"])
|
||||
# Currently .ASM filter_neon.S does not compile on NT.
|
||||
import os
|
||||
if ("neon_enabled" in env and env["neon_enabled"]) and os.name!="nt":
|
||||
env_png.Append(CPPFLAGS = ["-DPNG_ARM_NEON_OPT=2"])
|
||||
env_neon = env_png.Clone();
|
||||
if "S_compiler" in env:
|
||||
env_neon['CC'] = env['S_compiler']
|
||||
neon_sources = []
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/arm_init.c"))
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/filter_neon_intrinsics.c"))
|
||||
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/filter_neon.S"))
|
||||
env.drivers_sources += neon_sources
|
||||
else:
|
||||
env_png.Append(CPPFLAGS = ["-DPNG_ARM_NEON_OPT=0"])
|
||||
|
||||
# Godot source files
|
||||
env_png.add_source_files(env.drivers_sources, "*.cpp")
|
||||
|
|
|
@ -7,7 +7,7 @@ Import('env')
|
|||
# Thirdparty source files
|
||||
thirdparty_dir = "#thirdparty/rtaudio/"
|
||||
thirdparty_sources = [
|
||||
"RtAudio.cpp",
|
||||
"RtAudio.cpp",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
|
|
|
@ -8,17 +8,17 @@ Import('env')
|
|||
# No check here as already done in drivers/SCsub
|
||||
thirdparty_dir = "#thirdparty/zlib/"
|
||||
thirdparty_sources = [
|
||||
"adler32.c",
|
||||
"compress.c",
|
||||
"crc32.c",
|
||||
"deflate.c",
|
||||
"infback.c",
|
||||
"inffast.c",
|
||||
"inflate.c",
|
||||
"inftrees.c",
|
||||
"trees.c",
|
||||
"uncompr.c",
|
||||
"zutil.c",
|
||||
"adler32.c",
|
||||
"compress.c",
|
||||
"crc32.c",
|
||||
"deflate.c",
|
||||
"infback.c",
|
||||
"inffast.c",
|
||||
"inflate.c",
|
||||
"inftrees.c",
|
||||
"trees.c",
|
||||
"uncompr.c",
|
||||
"zutil.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
|
|
1952
methods.py
1952
methods.py
File diff suppressed because it is too large
Load Diff
|
@ -7,16 +7,16 @@ env_modules = env.Clone()
|
|||
Export('env_modules')
|
||||
|
||||
env.modules_sources=[
|
||||
"register_module_types.cpp",
|
||||
"register_module_types.cpp",
|
||||
]
|
||||
#env.add_source_files(env.modules_sources,"*.cpp")
|
||||
Export('env')
|
||||
|
||||
for x in env.module_list:
|
||||
if (x in env.disabled_modules):
|
||||
continue
|
||||
env_modules.Append(CPPFLAGS=["-DMODULE_"+x.upper()+"_ENABLED"])
|
||||
SConscript(x+"/SCsub")
|
||||
if (x in env.disabled_modules):
|
||||
continue
|
||||
env_modules.Append(CPPFLAGS=["-DMODULE_"+x.upper()+"_ENABLED"])
|
||||
SConscript(x+"/SCsub")
|
||||
|
||||
lib = env_modules.Library("modules",env.modules_sources)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -8,21 +8,21 @@ Import('env_modules')
|
|||
env_enet = env_modules.Clone()
|
||||
|
||||
if (env["enet"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/enet/"
|
||||
thirdparty_sources = [
|
||||
"callbacks.c",
|
||||
"compress.c",
|
||||
"host.c",
|
||||
"list.c",
|
||||
"packet.c",
|
||||
"peer.c",
|
||||
"protocol.c",
|
||||
"unix.c",
|
||||
"win32.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_dir = "#thirdparty/enet/"
|
||||
thirdparty_sources = [
|
||||
"callbacks.c",
|
||||
"compress.c",
|
||||
"host.c",
|
||||
"list.c",
|
||||
"packet.c",
|
||||
"peer.c",
|
||||
"protocol.c",
|
||||
"unix.c",
|
||||
"win32.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_enet.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_enet.Append(CPPPATH = [thirdparty_dir])
|
||||
env_enet.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_enet.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
env_enet.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -9,7 +9,7 @@ env_etc1 = env_modules.Clone()
|
|||
# Not unbundled so far since not widespread as shared library
|
||||
thirdparty_dir = "#thirdparty/rg-etc1/"
|
||||
thirdparty_sources = [
|
||||
"rg_etc1.cpp",
|
||||
"rg_etc1.cpp",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -6,65 +6,65 @@ Import('env')
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["freetype"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/freetype/"
|
||||
thirdparty_sources = [
|
||||
"src/autofit/autofit.c",
|
||||
"src/base/ftapi.c",
|
||||
"src/base/ftbase.c",
|
||||
"src/base/ftbbox.c",
|
||||
"src/base/ftbdf.c",
|
||||
"src/base/ftbitmap.c",
|
||||
"src/base/ftcid.c",
|
||||
"src/base/ftdebug.c",
|
||||
"src/base/ftfntfmt.c",
|
||||
"src/base/ftfstype.c",
|
||||
"src/base/ftgasp.c",
|
||||
"src/base/ftglyph.c",
|
||||
"src/base/ftgxval.c",
|
||||
"src/base/ftinit.c",
|
||||
"src/base/ftlcdfil.c",
|
||||
"src/base/ftmm.c",
|
||||
"src/base/ftotval.c",
|
||||
"src/base/ftpatent.c",
|
||||
"src/base/ftpfr.c",
|
||||
"src/base/ftpic.c",
|
||||
"src/base/ftstroke.c",
|
||||
"src/base/ftsynth.c",
|
||||
"src/base/ftsystem.c",
|
||||
"src/base/fttype1.c",
|
||||
"src/base/ftwinfnt.c",
|
||||
"src/bdf/bdf.c",
|
||||
"src/cache/ftcache.c",
|
||||
"src/cff/cff.c",
|
||||
"src/cid/type1cid.c",
|
||||
"src/gxvalid/gxvalid.c",
|
||||
"src/otvalid/otvalid.c",
|
||||
"src/pcf/pcf.c",
|
||||
"src/pfr/pfr.c",
|
||||
"src/psaux/psaux.c",
|
||||
"src/pshinter/pshinter.c",
|
||||
"src/psnames/psnames.c",
|
||||
"src/raster/raster.c",
|
||||
"src/sfnt/sfnt.c",
|
||||
"src/smooth/smooth.c",
|
||||
"src/truetype/truetype.c",
|
||||
"src/type1/type1.c",
|
||||
"src/type42/type42.c",
|
||||
"src/winfonts/winfnt.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_dir = "#thirdparty/freetype/"
|
||||
thirdparty_sources = [
|
||||
"src/autofit/autofit.c",
|
||||
"src/base/ftapi.c",
|
||||
"src/base/ftbase.c",
|
||||
"src/base/ftbbox.c",
|
||||
"src/base/ftbdf.c",
|
||||
"src/base/ftbitmap.c",
|
||||
"src/base/ftcid.c",
|
||||
"src/base/ftdebug.c",
|
||||
"src/base/ftfntfmt.c",
|
||||
"src/base/ftfstype.c",
|
||||
"src/base/ftgasp.c",
|
||||
"src/base/ftglyph.c",
|
||||
"src/base/ftgxval.c",
|
||||
"src/base/ftinit.c",
|
||||
"src/base/ftlcdfil.c",
|
||||
"src/base/ftmm.c",
|
||||
"src/base/ftotval.c",
|
||||
"src/base/ftpatent.c",
|
||||
"src/base/ftpfr.c",
|
||||
"src/base/ftpic.c",
|
||||
"src/base/ftstroke.c",
|
||||
"src/base/ftsynth.c",
|
||||
"src/base/ftsystem.c",
|
||||
"src/base/fttype1.c",
|
||||
"src/base/ftwinfnt.c",
|
||||
"src/bdf/bdf.c",
|
||||
"src/cache/ftcache.c",
|
||||
"src/cff/cff.c",
|
||||
"src/cid/type1cid.c",
|
||||
"src/gxvalid/gxvalid.c",
|
||||
"src/otvalid/otvalid.c",
|
||||
"src/pcf/pcf.c",
|
||||
"src/pfr/pfr.c",
|
||||
"src/psaux/psaux.c",
|
||||
"src/pshinter/pshinter.c",
|
||||
"src/psnames/psnames.c",
|
||||
"src/raster/raster.c",
|
||||
"src/sfnt/sfnt.c",
|
||||
"src/smooth/smooth.c",
|
||||
"src/truetype/truetype.c",
|
||||
"src/type1/type1.c",
|
||||
"src/type42/type42.c",
|
||||
"src/winfonts/winfnt.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
# Include header for WinRT to fix build issues
|
||||
if "platform" in env and env["platform"] == "winrt":
|
||||
env.Append(CCFLAGS = ['/FI', '"modules/freetype/winrtdef.h"'])
|
||||
# Include header for WinRT to fix build issues
|
||||
if "platform" in env and env["platform"] == "winrt":
|
||||
env.Append(CCFLAGS = ['/FI', '"modules/freetype/winrtdef.h"'])
|
||||
|
||||
env.Append(CPPPATH = [thirdparty_dir, thirdparty_dir + "/include"])
|
||||
env.Append(CPPPATH = [thirdparty_dir, thirdparty_dir + "/include"])
|
||||
|
||||
# also requires libpng headers
|
||||
if (env["libpng"] != "system"): # builtin
|
||||
env.Append(CPPPATH = ["#thirdparty/libpng"])
|
||||
# also requires libpng headers
|
||||
if (env["libpng"] != "system"): # builtin
|
||||
env.Append(CPPPATH = ["#thirdparty/libpng"])
|
||||
|
||||
""" FIXME: Remove this commented code if Windows can handle the monolithic lib
|
||||
""" FIXME: Remove this commented code if Windows can handle the monolithic lib
|
||||
# fix for Windows' shell miserably failing on long lines, split in two libraries
|
||||
half1 = []
|
||||
half2 = []
|
||||
|
@ -80,8 +80,8 @@ if (env["freetype"] != "system"): # builtin
|
|||
env.Append(LIBS = [lib])
|
||||
"""
|
||||
|
||||
lib = env.Library("freetype_builtin", thirdparty_sources)
|
||||
env.Append(LIBS = [lib])
|
||||
lib = env.Library("freetype_builtin", thirdparty_sources)
|
||||
env.Append(LIBS = [lib])
|
||||
|
||||
# Godot source files
|
||||
env.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ env_jpg = env_modules.Clone()
|
|||
# Not unbundled for now as they are not commonly available as shared library
|
||||
thirdparty_dir = "#thirdparty/jpeg-compressor/"
|
||||
thirdparty_sources = [
|
||||
"jpgd.cpp",
|
||||
"jpgd.cpp",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -7,22 +7,22 @@ env_mpc = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libmpcdec"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/libmpcdec/"
|
||||
thirdparty_sources = [
|
||||
"huffman.c",
|
||||
"mpc_bits_reader.c",
|
||||
"mpc_decoder.c",
|
||||
"mpc_demux.c",
|
||||
"mpc_reader.c",
|
||||
"requant.c",
|
||||
"streaminfo.c",
|
||||
"synth_filter.c",
|
||||
]
|
||||
thirdparty_dir = "#thirdparty/libmpcdec/"
|
||||
thirdparty_sources = [
|
||||
"huffman.c",
|
||||
"mpc_bits_reader.c",
|
||||
"mpc_decoder.c",
|
||||
"mpc_demux.c",
|
||||
"mpc_reader.c",
|
||||
"requant.c",
|
||||
"streaminfo.c",
|
||||
"synth_filter.c",
|
||||
]
|
||||
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_mpc.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_mpc.Append(CPPPATH = [thirdparty_dir])
|
||||
env_mpc.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_mpc.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# Godot source files
|
||||
env_mpc.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -7,15 +7,15 @@ env_ogg = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/libogg/"
|
||||
thirdparty_sources = [
|
||||
"bitwise.c",
|
||||
"framing.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_dir = "#thirdparty/libogg/"
|
||||
thirdparty_sources = [
|
||||
"bitwise.c",
|
||||
"framing.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_ogg.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_ogg.Append(CPPPATH = [thirdparty_dir])
|
||||
env_ogg.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_ogg.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# Godot source files
|
||||
env_ogg.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -7,209 +7,209 @@ env_opus = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["opus"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/opus/"
|
||||
thirdparty_dir = "#thirdparty/opus/"
|
||||
|
||||
thirdparty_sources = [
|
||||
"silk/tables_other.c",
|
||||
"silk/sum_sqr_shift.c",
|
||||
"silk/PLC.c",
|
||||
"silk/dec_API.c",
|
||||
"silk/decode_pulses.c",
|
||||
"silk/inner_prod_aligned.c",
|
||||
"silk/init_encoder.c",
|
||||
"silk/interpolate.c",
|
||||
"silk/stereo_encode_pred.c",
|
||||
"silk/decode_frame.c",
|
||||
"silk/NLSF_del_dec_quant.c",
|
||||
"silk/VAD.c",
|
||||
"silk/resampler_private_AR2.c",
|
||||
"silk/NLSF_unpack.c",
|
||||
"silk/resampler_down2.c",
|
||||
"silk/sort.c",
|
||||
"silk/resampler_private_IIR_FIR.c",
|
||||
"silk/resampler_down2_3.c",
|
||||
"silk/resampler_private_up2_HQ.c",
|
||||
"silk/tables_gain.c",
|
||||
"silk/stereo_find_predictor.c",
|
||||
"silk/stereo_quant_pred.c",
|
||||
"silk/NLSF_stabilize.c",
|
||||
"silk/ana_filt_bank_1.c",
|
||||
"silk/check_control_input.c",
|
||||
"silk/bwexpander.c",
|
||||
"silk/A2NLSF.c",
|
||||
"silk/LPC_inv_pred_gain.c",
|
||||
"silk/log2lin.c",
|
||||
"silk/process_NLSFs.c",
|
||||
"silk/sigm_Q15.c",
|
||||
"silk/VQ_WMat_EC.c",
|
||||
"silk/quant_LTP_gains.c",
|
||||
"silk/resampler_private_down_FIR.c",
|
||||
"silk/NLSF_decode.c",
|
||||
"silk/control_codec.c",
|
||||
"silk/NLSF_VQ_weights_laroia.c",
|
||||
"silk/decode_pitch.c",
|
||||
"silk/stereo_decode_pred.c",
|
||||
"silk/tables_pulses_per_block.c",
|
||||
"silk/init_decoder.c",
|
||||
"silk/table_LSF_cos.c",
|
||||
"silk/decode_core.c",
|
||||
"silk/code_signs.c",
|
||||
"silk/enc_API.c",
|
||||
"silk/tables_LTP.c",
|
||||
"silk/pitch_est_tables.c",
|
||||
"silk/biquad_alt.c",
|
||||
"silk/encode_indices.c",
|
||||
"silk/tables_NLSF_CB_WB.c",
|
||||
"silk/debug.c",
|
||||
"silk/decode_parameters.c",
|
||||
"silk/tables_pitch_lag.c",
|
||||
"silk/NLSF2A.c",
|
||||
"silk/resampler.c",
|
||||
"silk/decode_indices.c",
|
||||
"silk/NLSF_VQ.c",
|
||||
"silk/bwexpander_32.c",
|
||||
"silk/tables_NLSF_CB_NB_MB.c",
|
||||
"silk/encode_pulses.c",
|
||||
"silk/NSQ_del_dec.c",
|
||||
"silk/control_SNR.c",
|
||||
"silk/shell_coder.c",
|
||||
"silk/NLSF_encode.c",
|
||||
"silk/stereo_MS_to_LR.c",
|
||||
"silk/stereo_LR_to_MS.c",
|
||||
"silk/HP_variable_cutoff.c",
|
||||
"silk/LPC_analysis_filter.c",
|
||||
"silk/CNG.c",
|
||||
"silk/decoder_set_fs.c",
|
||||
"silk/resampler_rom.c",
|
||||
"silk/control_audio_bandwidth.c",
|
||||
"silk/lin2log.c",
|
||||
"silk/LP_variable_cutoff.c",
|
||||
"silk/NSQ.c",
|
||||
"silk/gain_quant.c",
|
||||
"celt/laplace.c",
|
||||
"celt/vq.c",
|
||||
"celt/quant_bands.c",
|
||||
"celt/kiss_fft.c",
|
||||
"celt/entcode.c",
|
||||
"celt/entenc.c",
|
||||
"celt/celt_lpc.c",
|
||||
"celt/pitch.c",
|
||||
"celt/rate.c",
|
||||
"celt/mathops.c",
|
||||
#"celt/arm/armcpu.c",
|
||||
#"celt/arm/celt_neon_intr.c",
|
||||
#"celt/arm/celt_ne10_mdct.c",
|
||||
#"celt/arm/celt_ne10_fft.c",
|
||||
#"celt/arm/arm_celt_map.c",
|
||||
"celt/celt_encoder.c",
|
||||
"celt/celt.c",
|
||||
"celt/bands.c",
|
||||
"celt/cwrs.c",
|
||||
"celt/entdec.c",
|
||||
"celt/celt_decoder.c",
|
||||
"celt/mdct.c",
|
||||
"celt/modes.c",
|
||||
"repacketizer.c",
|
||||
"mlp_data.c",
|
||||
"opus_multistream.c",
|
||||
"opusfile.c",
|
||||
"opus_encoder.c",
|
||||
"analysis.c",
|
||||
"mlp.c",
|
||||
"info.c",
|
||||
"stream.c",
|
||||
"opus_decoder.c",
|
||||
"internal.c",
|
||||
"wincerts.c",
|
||||
"opus.c",
|
||||
"opus_multistream_encoder.c",
|
||||
"http.c",
|
||||
"opus_multistream_decoder.c"
|
||||
]
|
||||
thirdparty_sources = [
|
||||
"silk/tables_other.c",
|
||||
"silk/sum_sqr_shift.c",
|
||||
"silk/PLC.c",
|
||||
"silk/dec_API.c",
|
||||
"silk/decode_pulses.c",
|
||||
"silk/inner_prod_aligned.c",
|
||||
"silk/init_encoder.c",
|
||||
"silk/interpolate.c",
|
||||
"silk/stereo_encode_pred.c",
|
||||
"silk/decode_frame.c",
|
||||
"silk/NLSF_del_dec_quant.c",
|
||||
"silk/VAD.c",
|
||||
"silk/resampler_private_AR2.c",
|
||||
"silk/NLSF_unpack.c",
|
||||
"silk/resampler_down2.c",
|
||||
"silk/sort.c",
|
||||
"silk/resampler_private_IIR_FIR.c",
|
||||
"silk/resampler_down2_3.c",
|
||||
"silk/resampler_private_up2_HQ.c",
|
||||
"silk/tables_gain.c",
|
||||
"silk/stereo_find_predictor.c",
|
||||
"silk/stereo_quant_pred.c",
|
||||
"silk/NLSF_stabilize.c",
|
||||
"silk/ana_filt_bank_1.c",
|
||||
"silk/check_control_input.c",
|
||||
"silk/bwexpander.c",
|
||||
"silk/A2NLSF.c",
|
||||
"silk/LPC_inv_pred_gain.c",
|
||||
"silk/log2lin.c",
|
||||
"silk/process_NLSFs.c",
|
||||
"silk/sigm_Q15.c",
|
||||
"silk/VQ_WMat_EC.c",
|
||||
"silk/quant_LTP_gains.c",
|
||||
"silk/resampler_private_down_FIR.c",
|
||||
"silk/NLSF_decode.c",
|
||||
"silk/control_codec.c",
|
||||
"silk/NLSF_VQ_weights_laroia.c",
|
||||
"silk/decode_pitch.c",
|
||||
"silk/stereo_decode_pred.c",
|
||||
"silk/tables_pulses_per_block.c",
|
||||
"silk/init_decoder.c",
|
||||
"silk/table_LSF_cos.c",
|
||||
"silk/decode_core.c",
|
||||
"silk/code_signs.c",
|
||||
"silk/enc_API.c",
|
||||
"silk/tables_LTP.c",
|
||||
"silk/pitch_est_tables.c",
|
||||
"silk/biquad_alt.c",
|
||||
"silk/encode_indices.c",
|
||||
"silk/tables_NLSF_CB_WB.c",
|
||||
"silk/debug.c",
|
||||
"silk/decode_parameters.c",
|
||||
"silk/tables_pitch_lag.c",
|
||||
"silk/NLSF2A.c",
|
||||
"silk/resampler.c",
|
||||
"silk/decode_indices.c",
|
||||
"silk/NLSF_VQ.c",
|
||||
"silk/bwexpander_32.c",
|
||||
"silk/tables_NLSF_CB_NB_MB.c",
|
||||
"silk/encode_pulses.c",
|
||||
"silk/NSQ_del_dec.c",
|
||||
"silk/control_SNR.c",
|
||||
"silk/shell_coder.c",
|
||||
"silk/NLSF_encode.c",
|
||||
"silk/stereo_MS_to_LR.c",
|
||||
"silk/stereo_LR_to_MS.c",
|
||||
"silk/HP_variable_cutoff.c",
|
||||
"silk/LPC_analysis_filter.c",
|
||||
"silk/CNG.c",
|
||||
"silk/decoder_set_fs.c",
|
||||
"silk/resampler_rom.c",
|
||||
"silk/control_audio_bandwidth.c",
|
||||
"silk/lin2log.c",
|
||||
"silk/LP_variable_cutoff.c",
|
||||
"silk/NSQ.c",
|
||||
"silk/gain_quant.c",
|
||||
"celt/laplace.c",
|
||||
"celt/vq.c",
|
||||
"celt/quant_bands.c",
|
||||
"celt/kiss_fft.c",
|
||||
"celt/entcode.c",
|
||||
"celt/entenc.c",
|
||||
"celt/celt_lpc.c",
|
||||
"celt/pitch.c",
|
||||
"celt/rate.c",
|
||||
"celt/mathops.c",
|
||||
#"celt/arm/armcpu.c",
|
||||
#"celt/arm/celt_neon_intr.c",
|
||||
#"celt/arm/celt_ne10_mdct.c",
|
||||
#"celt/arm/celt_ne10_fft.c",
|
||||
#"celt/arm/arm_celt_map.c",
|
||||
"celt/celt_encoder.c",
|
||||
"celt/celt.c",
|
||||
"celt/bands.c",
|
||||
"celt/cwrs.c",
|
||||
"celt/entdec.c",
|
||||
"celt/celt_decoder.c",
|
||||
"celt/mdct.c",
|
||||
"celt/modes.c",
|
||||
"repacketizer.c",
|
||||
"mlp_data.c",
|
||||
"opus_multistream.c",
|
||||
"opusfile.c",
|
||||
"opus_encoder.c",
|
||||
"analysis.c",
|
||||
"mlp.c",
|
||||
"info.c",
|
||||
"stream.c",
|
||||
"opus_decoder.c",
|
||||
"internal.c",
|
||||
"wincerts.c",
|
||||
"opus.c",
|
||||
"opus_multistream_encoder.c",
|
||||
"http.c",
|
||||
"opus_multistream_decoder.c"
|
||||
]
|
||||
|
||||
opus_sources_silk = []
|
||||
opus_sources_silk = []
|
||||
|
||||
if("opus_fixed_point" in env and env.opus_fixed_point=="yes"):
|
||||
env_opus.Append(CFLAGS = ["-DFIXED_POINT"])
|
||||
opus_sources_silk = [
|
||||
"silk/fixed/schur64_FIX.c",
|
||||
"silk/fixed/residual_energy16_FIX.c",
|
||||
"silk/fixed/encode_frame_FIX.c",
|
||||
"silk/fixed/regularize_correlations_FIX.c",
|
||||
"silk/fixed/apply_sine_window_FIX.c",
|
||||
"silk/fixed/solve_LS_FIX.c",
|
||||
"silk/fixed/schur_FIX.c",
|
||||
"silk/fixed/pitch_analysis_core_FIX.c",
|
||||
"silk/fixed/noise_shape_analysis_FIX.c",
|
||||
"silk/fixed/find_LTP_FIX.c",
|
||||
"silk/fixed/vector_ops_FIX.c",
|
||||
"silk/fixed/autocorr_FIX.c",
|
||||
"silk/fixed/warped_autocorrelation_FIX.c",
|
||||
"silk/fixed/find_pitch_lags_FIX.c",
|
||||
"silk/fixed/k2a_Q16_FIX.c",
|
||||
"silk/fixed/LTP_scale_ctrl_FIX.c",
|
||||
"silk/fixed/corrMatrix_FIX.c",
|
||||
"silk/fixed/prefilter_FIX.c",
|
||||
"silk/fixed/find_LPC_FIX.c",
|
||||
"silk/fixed/residual_energy_FIX.c",
|
||||
"silk/fixed/process_gains_FIX.c",
|
||||
"silk/fixed/LTP_analysis_filter_FIX.c",
|
||||
"silk/fixed/k2a_FIX.c",
|
||||
"silk/fixed/burg_modified_FIX.c",
|
||||
"silk/fixed/find_pred_coefs_FIX.c"
|
||||
]
|
||||
else:
|
||||
opus_sources_silk = [
|
||||
"silk/float/LTP_scale_ctrl_FLP.c",
|
||||
"silk/float/regularize_correlations_FLP.c",
|
||||
"silk/float/corrMatrix_FLP.c",
|
||||
"silk/float/LPC_analysis_filter_FLP.c",
|
||||
"silk/float/levinsondurbin_FLP.c",
|
||||
"silk/float/schur_FLP.c",
|
||||
"silk/float/scale_vector_FLP.c",
|
||||
"silk/float/apply_sine_window_FLP.c",
|
||||
"silk/float/pitch_analysis_core_FLP.c",
|
||||
"silk/float/wrappers_FLP.c",
|
||||
"silk/float/bwexpander_FLP.c",
|
||||
"silk/float/warped_autocorrelation_FLP.c",
|
||||
"silk/float/solve_LS_FLP.c",
|
||||
"silk/float/find_LPC_FLP.c",
|
||||
"silk/float/autocorrelation_FLP.c",
|
||||
"silk/float/find_pred_coefs_FLP.c",
|
||||
"silk/float/find_pitch_lags_FLP.c",
|
||||
"silk/float/burg_modified_FLP.c",
|
||||
"silk/float/find_LTP_FLP.c",
|
||||
"silk/float/energy_FLP.c",
|
||||
"silk/float/sort_FLP.c",
|
||||
"silk/float/LPC_inv_pred_gain_FLP.c",
|
||||
"silk/float/k2a_FLP.c",
|
||||
"silk/float/noise_shape_analysis_FLP.c",
|
||||
"silk/float/inner_product_FLP.c",
|
||||
"silk/float/process_gains_FLP.c",
|
||||
"silk/float/encode_frame_FLP.c",
|
||||
"silk/float/scale_copy_vector_FLP.c",
|
||||
"silk/float/residual_energy_FLP.c",
|
||||
"silk/float/LTP_analysis_filter_FLP.c",
|
||||
"silk/float/prefilter_FLP.c"
|
||||
]
|
||||
if("opus_fixed_point" in env and env.opus_fixed_point=="yes"):
|
||||
env_opus.Append(CFLAGS = ["-DFIXED_POINT"])
|
||||
opus_sources_silk = [
|
||||
"silk/fixed/schur64_FIX.c",
|
||||
"silk/fixed/residual_energy16_FIX.c",
|
||||
"silk/fixed/encode_frame_FIX.c",
|
||||
"silk/fixed/regularize_correlations_FIX.c",
|
||||
"silk/fixed/apply_sine_window_FIX.c",
|
||||
"silk/fixed/solve_LS_FIX.c",
|
||||
"silk/fixed/schur_FIX.c",
|
||||
"silk/fixed/pitch_analysis_core_FIX.c",
|
||||
"silk/fixed/noise_shape_analysis_FIX.c",
|
||||
"silk/fixed/find_LTP_FIX.c",
|
||||
"silk/fixed/vector_ops_FIX.c",
|
||||
"silk/fixed/autocorr_FIX.c",
|
||||
"silk/fixed/warped_autocorrelation_FIX.c",
|
||||
"silk/fixed/find_pitch_lags_FIX.c",
|
||||
"silk/fixed/k2a_Q16_FIX.c",
|
||||
"silk/fixed/LTP_scale_ctrl_FIX.c",
|
||||
"silk/fixed/corrMatrix_FIX.c",
|
||||
"silk/fixed/prefilter_FIX.c",
|
||||
"silk/fixed/find_LPC_FIX.c",
|
||||
"silk/fixed/residual_energy_FIX.c",
|
||||
"silk/fixed/process_gains_FIX.c",
|
||||
"silk/fixed/LTP_analysis_filter_FIX.c",
|
||||
"silk/fixed/k2a_FIX.c",
|
||||
"silk/fixed/burg_modified_FIX.c",
|
||||
"silk/fixed/find_pred_coefs_FIX.c"
|
||||
]
|
||||
else:
|
||||
opus_sources_silk = [
|
||||
"silk/float/LTP_scale_ctrl_FLP.c",
|
||||
"silk/float/regularize_correlations_FLP.c",
|
||||
"silk/float/corrMatrix_FLP.c",
|
||||
"silk/float/LPC_analysis_filter_FLP.c",
|
||||
"silk/float/levinsondurbin_FLP.c",
|
||||
"silk/float/schur_FLP.c",
|
||||
"silk/float/scale_vector_FLP.c",
|
||||
"silk/float/apply_sine_window_FLP.c",
|
||||
"silk/float/pitch_analysis_core_FLP.c",
|
||||
"silk/float/wrappers_FLP.c",
|
||||
"silk/float/bwexpander_FLP.c",
|
||||
"silk/float/warped_autocorrelation_FLP.c",
|
||||
"silk/float/solve_LS_FLP.c",
|
||||
"silk/float/find_LPC_FLP.c",
|
||||
"silk/float/autocorrelation_FLP.c",
|
||||
"silk/float/find_pred_coefs_FLP.c",
|
||||
"silk/float/find_pitch_lags_FLP.c",
|
||||
"silk/float/burg_modified_FLP.c",
|
||||
"silk/float/find_LTP_FLP.c",
|
||||
"silk/float/energy_FLP.c",
|
||||
"silk/float/sort_FLP.c",
|
||||
"silk/float/LPC_inv_pred_gain_FLP.c",
|
||||
"silk/float/k2a_FLP.c",
|
||||
"silk/float/noise_shape_analysis_FLP.c",
|
||||
"silk/float/inner_product_FLP.c",
|
||||
"silk/float/process_gains_FLP.c",
|
||||
"silk/float/encode_frame_FLP.c",
|
||||
"silk/float/scale_copy_vector_FLP.c",
|
||||
"silk/float/residual_energy_FLP.c",
|
||||
"silk/float/LTP_analysis_filter_FLP.c",
|
||||
"silk/float/prefilter_FLP.c"
|
||||
]
|
||||
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources + opus_sources_silk]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources + opus_sources_silk]
|
||||
|
||||
env_opus.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_opus.Append(CFLAGS=["-DHAVE_CONFIG_H"])
|
||||
env_opus.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_opus.Append(CFLAGS=["-DHAVE_CONFIG_H"])
|
||||
|
||||
thirdparty_include_paths = [
|
||||
"",
|
||||
"celt",
|
||||
"silk",
|
||||
"silk/fixed",
|
||||
"silk/float",
|
||||
]
|
||||
env_opus.Append(CPPPATH = [thirdparty_dir + "/" + dir for dir in thirdparty_include_paths])
|
||||
thirdparty_include_paths = [
|
||||
"",
|
||||
"celt",
|
||||
"silk",
|
||||
"silk/fixed",
|
||||
"silk/float",
|
||||
]
|
||||
env_opus.Append(CPPPATH = [thirdparty_dir + "/" + dir for dir in thirdparty_include_paths])
|
||||
|
||||
# also requires libogg
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_opus.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
# also requires libogg
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_opus.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
|
||||
# Module files
|
||||
env_opus.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -9,11 +9,11 @@ env_pvr = env_modules.Clone()
|
|||
# Not unbundled so far since not widespread as shared library
|
||||
thirdparty_dir = "#thirdparty/pvrtccompressor/"
|
||||
thirdparty_sources = [
|
||||
"BitScale.cpp",
|
||||
"MortonTable.cpp",
|
||||
"PvrTcDecoder.cpp",
|
||||
"PvrTcEncoder.cpp",
|
||||
"PvrTcPacket.cpp",
|
||||
"BitScale.cpp",
|
||||
"MortonTable.cpp",
|
||||
"PvrTcDecoder.cpp",
|
||||
"PvrTcEncoder.cpp",
|
||||
"PvrTcPacket.cpp",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -7,23 +7,23 @@ env_squish = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["squish"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/squish/"
|
||||
thirdparty_sources = [
|
||||
"alpha.cpp",
|
||||
"clusterfit.cpp",
|
||||
"colourblock.cpp",
|
||||
"colourfit.cpp",
|
||||
"colourset.cpp",
|
||||
"maths.cpp",
|
||||
"rangefit.cpp",
|
||||
"singlecolourfit.cpp",
|
||||
"squish.cpp",
|
||||
]
|
||||
thirdparty_dir = "#thirdparty/squish/"
|
||||
thirdparty_sources = [
|
||||
"alpha.cpp",
|
||||
"clusterfit.cpp",
|
||||
"colourblock.cpp",
|
||||
"colourfit.cpp",
|
||||
"colourset.cpp",
|
||||
"maths.cpp",
|
||||
"rangefit.cpp",
|
||||
"singlecolourfit.cpp",
|
||||
"squish.cpp",
|
||||
]
|
||||
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_squish.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_squish.Append(CPPPATH = [thirdparty_dir])
|
||||
env_squish.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_squish.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# Godot source files
|
||||
env_squish.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
# Tools only, disabled for non-tools
|
||||
# TODO: Find a cleaner way to achieve that
|
||||
if (env["tools"] == "no"):
|
||||
env["module_squish_enabled"] = "no"
|
||||
env.disabled_modules.append("squish")
|
||||
# Tools only, disabled for non-tools
|
||||
# TODO: Find a cleaner way to achieve that
|
||||
if (env["tools"] == "no"):
|
||||
env["module_squish_enabled"] = "no"
|
||||
env.disabled_modules.append("squish")
|
||||
|
|
|
@ -7,77 +7,77 @@ env_theora = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libtheora"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/libtheora/"
|
||||
thirdparty_sources = [
|
||||
#"analyze.c",
|
||||
#"apiwrapper.c",
|
||||
"bitpack.c",
|
||||
"cpu.c",
|
||||
#"decapiwrapper.c",
|
||||
"decinfo.c",
|
||||
"decode.c",
|
||||
"dequant.c",
|
||||
#"encapiwrapper.c",
|
||||
#"encfrag.c",
|
||||
#"encinfo.c",
|
||||
#"encode.c",
|
||||
#"encoder_disabled.c",
|
||||
#"enquant.c",
|
||||
#"fdct.c",
|
||||
"fragment.c",
|
||||
"huffdec.c",
|
||||
#"huffenc.c",
|
||||
"idct.c",
|
||||
"info.c",
|
||||
"internal.c",
|
||||
#"mathops.c",
|
||||
#"mcenc.c",
|
||||
"quant.c",
|
||||
#"rate.c",
|
||||
"state.c",
|
||||
#"tokenize.c",
|
||||
]
|
||||
thirdparty_dir = "#thirdparty/libtheora/"
|
||||
thirdparty_sources = [
|
||||
#"analyze.c",
|
||||
#"apiwrapper.c",
|
||||
"bitpack.c",
|
||||
"cpu.c",
|
||||
#"decapiwrapper.c",
|
||||
"decinfo.c",
|
||||
"decode.c",
|
||||
"dequant.c",
|
||||
#"encapiwrapper.c",
|
||||
#"encfrag.c",
|
||||
#"encinfo.c",
|
||||
#"encode.c",
|
||||
#"encoder_disabled.c",
|
||||
#"enquant.c",
|
||||
#"fdct.c",
|
||||
"fragment.c",
|
||||
"huffdec.c",
|
||||
#"huffenc.c",
|
||||
"idct.c",
|
||||
"info.c",
|
||||
"internal.c",
|
||||
#"mathops.c",
|
||||
#"mcenc.c",
|
||||
"quant.c",
|
||||
#"rate.c",
|
||||
"state.c",
|
||||
#"tokenize.c",
|
||||
]
|
||||
|
||||
thirdparty_sources_x86 = [
|
||||
#"x86/mmxencfrag.c",
|
||||
#"x86/mmxfdct.c",
|
||||
"x86/mmxfrag.c",
|
||||
"x86/mmxidct.c",
|
||||
"x86/mmxstate.c",
|
||||
#"x86/sse2fdct.c",
|
||||
#"x86/x86enc.c",
|
||||
"x86/x86state.c",
|
||||
]
|
||||
thirdparty_sources_x86 = [
|
||||
#"x86/mmxencfrag.c",
|
||||
#"x86/mmxfdct.c",
|
||||
"x86/mmxfrag.c",
|
||||
"x86/mmxidct.c",
|
||||
"x86/mmxstate.c",
|
||||
#"x86/sse2fdct.c",
|
||||
#"x86/x86enc.c",
|
||||
"x86/x86state.c",
|
||||
]
|
||||
|
||||
thirdparty_sources_x86_vc = [
|
||||
#"x86_vc/mmxencfrag.c",
|
||||
#"x86_vc/mmxfdct.c",
|
||||
"x86_vc/mmxfrag.c",
|
||||
"x86_vc/mmxidct.c",
|
||||
"x86_vc/mmxstate.c",
|
||||
#"x86_vc/x86enc.c",
|
||||
"x86_vc/x86state.c",
|
||||
]
|
||||
thirdparty_sources_x86_vc = [
|
||||
#"x86_vc/mmxencfrag.c",
|
||||
#"x86_vc/mmxfdct.c",
|
||||
"x86_vc/mmxfrag.c",
|
||||
"x86_vc/mmxidct.c",
|
||||
"x86_vc/mmxstate.c",
|
||||
#"x86_vc/x86enc.c",
|
||||
"x86_vc/x86state.c",
|
||||
]
|
||||
|
||||
if (env["x86_libtheora_opt_gcc"]):
|
||||
thirdparty_sources += thirdparty_sources_x86
|
||||
if (env["x86_libtheora_opt_gcc"]):
|
||||
thirdparty_sources += thirdparty_sources_x86
|
||||
|
||||
if (env["x86_libtheora_opt_vc"]):
|
||||
thirdparty_sources += thirdparty_sources_x86_vc
|
||||
if (env["x86_libtheora_opt_vc"]):
|
||||
thirdparty_sources += thirdparty_sources_x86_vc
|
||||
|
||||
if (env["x86_libtheora_opt_gcc"] or env["x86_libtheora_opt_vc"]):
|
||||
env_theora.Append(CCFLAGS = ["-DOC_X86_ASM"])
|
||||
if (env["x86_libtheora_opt_gcc"] or env["x86_libtheora_opt_vc"]):
|
||||
env_theora.Append(CCFLAGS = ["-DOC_X86_ASM"])
|
||||
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_theora.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_theora.Append(CPPPATH = [thirdparty_dir])
|
||||
env_theora.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_theora.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# also requires libogg and libvorbis
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_theora.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
if (env["libvorbis"] != "system"): # builtin
|
||||
env_theora.Append(CPPPATH = ["#thirdparty/libvorbis"])
|
||||
# also requires libogg and libvorbis
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_theora.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
if (env["libvorbis"] != "system"): # builtin
|
||||
env_theora.Append(CPPPATH = ["#thirdparty/libvorbis"])
|
||||
|
||||
# Godot source files
|
||||
env_theora.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -7,43 +7,43 @@ env_vorbis = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libvorbis"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/libvorbis/"
|
||||
thirdparty_sources = [
|
||||
#"analysis.c",
|
||||
#"barkmel.c",
|
||||
"bitrate.c",
|
||||
"block.c",
|
||||
"codebook.c",
|
||||
"envelope.c",
|
||||
"floor0.c",
|
||||
"floor1.c",
|
||||
"info.c",
|
||||
"lookup.c",
|
||||
"lpc.c",
|
||||
"lsp.c",
|
||||
"mapping0.c",
|
||||
"mdct.c",
|
||||
"psy.c",
|
||||
#"psytune.c",
|
||||
"registry.c",
|
||||
"res0.c",
|
||||
"sharedbook.c",
|
||||
"smallft.c",
|
||||
"synthesis.c",
|
||||
#"tone.c",
|
||||
#"vorbisenc.c",
|
||||
"vorbisfile.c",
|
||||
"window.c",
|
||||
]
|
||||
thirdparty_dir = "#thirdparty/libvorbis/"
|
||||
thirdparty_sources = [
|
||||
#"analysis.c",
|
||||
#"barkmel.c",
|
||||
"bitrate.c",
|
||||
"block.c",
|
||||
"codebook.c",
|
||||
"envelope.c",
|
||||
"floor0.c",
|
||||
"floor1.c",
|
||||
"info.c",
|
||||
"lookup.c",
|
||||
"lpc.c",
|
||||
"lsp.c",
|
||||
"mapping0.c",
|
||||
"mdct.c",
|
||||
"psy.c",
|
||||
#"psytune.c",
|
||||
"registry.c",
|
||||
"res0.c",
|
||||
"sharedbook.c",
|
||||
"smallft.c",
|
||||
"synthesis.c",
|
||||
#"tone.c",
|
||||
#"vorbisenc.c",
|
||||
"vorbisfile.c",
|
||||
"window.c",
|
||||
]
|
||||
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_vorbis.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_vorbis.Append(CPPPATH = [thirdparty_dir])
|
||||
env_vorbis.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_vorbis.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# also requires libogg
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_vorbis.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
# also requires libogg
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_vorbis.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
|
||||
# Godot source files
|
||||
env_vorbis.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -8,10 +8,10 @@ env_webm = env_modules.Clone()
|
|||
# Thirdparty source files
|
||||
thirdparty_libsimplewebm_dir = "#thirdparty/libsimplewebm/"
|
||||
thirdparty_libsimplewebm_sources = [
|
||||
"libwebm/mkvparser/mkvparser.cc",
|
||||
"OpusVorbisDecoder.cpp",
|
||||
"VPXDecoder.cpp",
|
||||
"WebMDemuxer.cpp",
|
||||
"libwebm/mkvparser/mkvparser.cc",
|
||||
"OpusVorbisDecoder.cpp",
|
||||
"VPXDecoder.cpp",
|
||||
"WebMDemuxer.cpp",
|
||||
]
|
||||
thirdparty_libsimplewebm_sources = [thirdparty_libsimplewebm_dir + file for file in thirdparty_libsimplewebm_sources]
|
||||
|
||||
|
@ -20,15 +20,15 @@ env_webm.Append(CPPPATH = [thirdparty_libsimplewebm_dir, thirdparty_libsimpleweb
|
|||
|
||||
# also requires libogg, libvorbis and libopus
|
||||
if (env["libogg"] != "system"): # builtin
|
||||
env_webm.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
env_webm.Append(CPPPATH = ["#thirdparty/libogg"])
|
||||
if (env["libvorbis"] != "system"): # builtin
|
||||
env_webm.Append(CPPPATH = ["#thirdparty/libvorbis"])
|
||||
env_webm.Append(CPPPATH = ["#thirdparty/libvorbis"])
|
||||
if (env["opus"] != "system"): # builtin
|
||||
env_webm.Append(CPPPATH = ["#thirdparty"])
|
||||
env_webm.Append(CPPPATH = ["#thirdparty"])
|
||||
|
||||
if (env["libvpx"] != "system"): # builtin
|
||||
Export('env_webm')
|
||||
SConscript("libvpx/SCsub")
|
||||
Export('env_webm')
|
||||
SConscript("libvpx/SCsub")
|
||||
|
||||
# Godot source files
|
||||
env_webm.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -3,231 +3,231 @@
|
|||
libvpx_dir = "#thirdparty/libvpx/"
|
||||
|
||||
libvpx_sources = [
|
||||
"vp8/vp8_dx_iface.c",
|
||||
"vp8/vp8_dx_iface.c",
|
||||
|
||||
"vp8/common/generic/systemdependent.c",
|
||||
"vp8/common/generic/systemdependent.c",
|
||||
|
||||
"vp8/common/alloccommon.c",
|
||||
"vp8/common/blockd.c",
|
||||
"vp8/common/copy_c.c",
|
||||
"vp8/common/debugmodes.c",
|
||||
"vp8/common/dequantize.c",
|
||||
"vp8/common/entropy.c",
|
||||
"vp8/common/entropymode.c",
|
||||
"vp8/common/entropymv.c",
|
||||
"vp8/common/extend.c",
|
||||
"vp8/common/filter.c",
|
||||
"vp8/common/findnearmv.c",
|
||||
"vp8/common/idct_blk.c",
|
||||
"vp8/common/idctllm.c",
|
||||
"vp8/common/loopfilter_filters.c",
|
||||
"vp8/common/mbpitch.c",
|
||||
"vp8/common/modecont.c",
|
||||
"vp8/common/quant_common.c",
|
||||
"vp8/common/reconinter.c",
|
||||
"vp8/common/reconintra.c",
|
||||
"vp8/common/reconintra4x4.c",
|
||||
"vp8/common/rtcd.c",
|
||||
"vp8/common/setupintrarecon.c",
|
||||
"vp8/common/swapyv12buffer.c",
|
||||
"vp8/common/treecoder.c",
|
||||
"vp8/common/vp8_loopfilter.c",
|
||||
"vp8/common/alloccommon.c",
|
||||
"vp8/common/blockd.c",
|
||||
"vp8/common/copy_c.c",
|
||||
"vp8/common/debugmodes.c",
|
||||
"vp8/common/dequantize.c",
|
||||
"vp8/common/entropy.c",
|
||||
"vp8/common/entropymode.c",
|
||||
"vp8/common/entropymv.c",
|
||||
"vp8/common/extend.c",
|
||||
"vp8/common/filter.c",
|
||||
"vp8/common/findnearmv.c",
|
||||
"vp8/common/idct_blk.c",
|
||||
"vp8/common/idctllm.c",
|
||||
"vp8/common/loopfilter_filters.c",
|
||||
"vp8/common/mbpitch.c",
|
||||
"vp8/common/modecont.c",
|
||||
"vp8/common/quant_common.c",
|
||||
"vp8/common/reconinter.c",
|
||||
"vp8/common/reconintra.c",
|
||||
"vp8/common/reconintra4x4.c",
|
||||
"vp8/common/rtcd.c",
|
||||
"vp8/common/setupintrarecon.c",
|
||||
"vp8/common/swapyv12buffer.c",
|
||||
"vp8/common/treecoder.c",
|
||||
"vp8/common/vp8_loopfilter.c",
|
||||
|
||||
"vp8/decoder/dboolhuff.c",
|
||||
"vp8/decoder/decodeframe.c",
|
||||
"vp8/decoder/decodemv.c",
|
||||
"vp8/decoder/detokenize.c",
|
||||
"vp8/decoder/onyxd_if.c",
|
||||
"vp8/decoder/threading.c",
|
||||
"vp8/decoder/dboolhuff.c",
|
||||
"vp8/decoder/decodeframe.c",
|
||||
"vp8/decoder/decodemv.c",
|
||||
"vp8/decoder/detokenize.c",
|
||||
"vp8/decoder/onyxd_if.c",
|
||||
"vp8/decoder/threading.c",
|
||||
|
||||
|
||||
"vp9/vp9_dx_iface.c",
|
||||
"vp9/vp9_dx_iface.c",
|
||||
|
||||
"vp9/common/vp9_alloccommon.c",
|
||||
"vp9/common/vp9_blockd.c",
|
||||
"vp9/common/vp9_common_data.c",
|
||||
"vp9/common/vp9_debugmodes.c",
|
||||
"vp9/common/vp9_entropy.c",
|
||||
"vp9/common/vp9_entropymode.c",
|
||||
"vp9/common/vp9_entropymv.c",
|
||||
"vp9/common/vp9_filter.c",
|
||||
"vp9/common/vp9_frame_buffers.c",
|
||||
"vp9/common/vp9_idct.c",
|
||||
"vp9/common/vp9_loopfilter.c",
|
||||
"vp9/common/vp9_mvref_common.c",
|
||||
"vp9/common/vp9_pred_common.c",
|
||||
"vp9/common/vp9_quant_common.c",
|
||||
"vp9/common/vp9_reconinter.c",
|
||||
"vp9/common/vp9_reconintra.c",
|
||||
"vp9/common/vp9_rtcd.c",
|
||||
"vp9/common/vp9_scale.c",
|
||||
"vp9/common/vp9_scan.c",
|
||||
"vp9/common/vp9_seg_common.c",
|
||||
"vp9/common/vp9_thread_common.c",
|
||||
"vp9/common/vp9_tile_common.c",
|
||||
"vp9/common/vp9_alloccommon.c",
|
||||
"vp9/common/vp9_blockd.c",
|
||||
"vp9/common/vp9_common_data.c",
|
||||
"vp9/common/vp9_debugmodes.c",
|
||||
"vp9/common/vp9_entropy.c",
|
||||
"vp9/common/vp9_entropymode.c",
|
||||
"vp9/common/vp9_entropymv.c",
|
||||
"vp9/common/vp9_filter.c",
|
||||
"vp9/common/vp9_frame_buffers.c",
|
||||
"vp9/common/vp9_idct.c",
|
||||
"vp9/common/vp9_loopfilter.c",
|
||||
"vp9/common/vp9_mvref_common.c",
|
||||
"vp9/common/vp9_pred_common.c",
|
||||
"vp9/common/vp9_quant_common.c",
|
||||
"vp9/common/vp9_reconinter.c",
|
||||
"vp9/common/vp9_reconintra.c",
|
||||
"vp9/common/vp9_rtcd.c",
|
||||
"vp9/common/vp9_scale.c",
|
||||
"vp9/common/vp9_scan.c",
|
||||
"vp9/common/vp9_seg_common.c",
|
||||
"vp9/common/vp9_thread_common.c",
|
||||
"vp9/common/vp9_tile_common.c",
|
||||
|
||||
"vp9/decoder/vp9_decodeframe.c",
|
||||
"vp9/decoder/vp9_decodemv.c",
|
||||
"vp9/decoder/vp9_decoder.c",
|
||||
"vp9/decoder/vp9_detokenize.c",
|
||||
"vp9/decoder/vp9_dsubexp.c",
|
||||
"vp9/decoder/vp9_dthread.c",
|
||||
"vp9/decoder/vp9_decodeframe.c",
|
||||
"vp9/decoder/vp9_decodemv.c",
|
||||
"vp9/decoder/vp9_decoder.c",
|
||||
"vp9/decoder/vp9_detokenize.c",
|
||||
"vp9/decoder/vp9_dsubexp.c",
|
||||
"vp9/decoder/vp9_dthread.c",
|
||||
|
||||
|
||||
"vpx/src/vpx_codec.c",
|
||||
"vpx/src/vpx_decoder.c",
|
||||
"vpx/src/vpx_image.c",
|
||||
"vpx/src/vpx_psnr.c",
|
||||
"vpx/src/vpx_codec.c",
|
||||
"vpx/src/vpx_decoder.c",
|
||||
"vpx/src/vpx_image.c",
|
||||
"vpx/src/vpx_psnr.c",
|
||||
|
||||
|
||||
"vpx_dsp/bitreader.c",
|
||||
"vpx_dsp/bitreader_buffer.c",
|
||||
"vpx_dsp/intrapred.c",
|
||||
"vpx_dsp/inv_txfm.c",
|
||||
"vpx_dsp/loopfilter.c",
|
||||
"vpx_dsp/prob.c",
|
||||
"vpx_dsp/vpx_convolve.c",
|
||||
"vpx_dsp/vpx_dsp_rtcd.c",
|
||||
"vpx_dsp/bitreader.c",
|
||||
"vpx_dsp/bitreader_buffer.c",
|
||||
"vpx_dsp/intrapred.c",
|
||||
"vpx_dsp/inv_txfm.c",
|
||||
"vpx_dsp/loopfilter.c",
|
||||
"vpx_dsp/prob.c",
|
||||
"vpx_dsp/vpx_convolve.c",
|
||||
"vpx_dsp/vpx_dsp_rtcd.c",
|
||||
|
||||
|
||||
"vpx_mem/vpx_mem.c",
|
||||
"vpx_mem/vpx_mem.c",
|
||||
|
||||
|
||||
"vpx_scale/vpx_scale_rtcd.c",
|
||||
"vpx_scale/vpx_scale_rtcd.c",
|
||||
|
||||
"vpx_scale/generic/yv12config.c",
|
||||
"vpx_scale/generic/yv12extend.c",
|
||||
"vpx_scale/generic/yv12config.c",
|
||||
"vpx_scale/generic/yv12extend.c",
|
||||
|
||||
|
||||
"vpx_util/vpx_thread.c"
|
||||
"vpx_util/vpx_thread.c"
|
||||
]
|
||||
|
||||
libvpx_sources_intrin_x86 = [
|
||||
"vp8/common/x86/filter_x86.c",
|
||||
"vp8/common/x86/loopfilter_x86.c",
|
||||
"vp8/common/x86/vp8_asm_stubs.c",
|
||||
"vp8/common/x86/filter_x86.c",
|
||||
"vp8/common/x86/loopfilter_x86.c",
|
||||
"vp8/common/x86/vp8_asm_stubs.c",
|
||||
|
||||
|
||||
"vpx_dsp/x86/vpx_asm_stubs.c"
|
||||
"vpx_dsp/x86/vpx_asm_stubs.c"
|
||||
]
|
||||
libvpx_sources_intrin_x86_mmx = [
|
||||
"vp8/common/x86/idct_blk_mmx.c",
|
||||
"vp8/common/x86/idct_blk_mmx.c",
|
||||
]
|
||||
libvpx_sources_intrin_x86_sse2 = [
|
||||
"vp8/common/x86/idct_blk_sse2.c",
|
||||
"vp8/common/x86/idct_blk_sse2.c",
|
||||
|
||||
|
||||
"vp9/common/x86/vp9_idct_intrin_sse2.c",
|
||||
"vp9/common/x86/vp9_idct_intrin_sse2.c",
|
||||
|
||||
|
||||
"vpx_dsp/x86/inv_txfm_sse2.c",
|
||||
"vpx_dsp/x86/loopfilter_sse2.c",
|
||||
"vpx_dsp/x86/inv_txfm_sse2.c",
|
||||
"vpx_dsp/x86/loopfilter_sse2.c",
|
||||
]
|
||||
libvpx_sources_intrin_x86_ssse3 = [
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_intrin_ssse3.c"
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_intrin_ssse3.c"
|
||||
]
|
||||
libvpx_sources_intrin_x86_avx2 = [
|
||||
"vpx_dsp/x86/loopfilter_avx2.c",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_intrin_avx2.c"
|
||||
"vpx_dsp/x86/loopfilter_avx2.c",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_intrin_avx2.c"
|
||||
]
|
||||
libvpx_sources_x86asm = [
|
||||
"vp8/common/x86/copy_sse2.asm",
|
||||
"vp8/common/x86/copy_sse3.asm",
|
||||
"vp8/common/x86/dequantize_mmx.asm",
|
||||
"vp8/common/x86/idctllm_mmx.asm",
|
||||
"vp8/common/x86/idctllm_sse2.asm",
|
||||
"vp8/common/x86/iwalsh_mmx.asm",
|
||||
"vp8/common/x86/iwalsh_sse2.asm",
|
||||
"vp8/common/x86/loopfilter_sse2.asm",
|
||||
"vp8/common/x86/recon_mmx.asm",
|
||||
"vp8/common/x86/recon_sse2.asm",
|
||||
"vp8/common/x86/subpixel_mmx.asm",
|
||||
"vp8/common/x86/subpixel_sse2.asm",
|
||||
"vp8/common/x86/subpixel_ssse3.asm",
|
||||
"vp8/common/x86/vp8_loopfilter_mmx.asm",
|
||||
"vp8/common/x86/copy_sse2.asm",
|
||||
"vp8/common/x86/copy_sse3.asm",
|
||||
"vp8/common/x86/dequantize_mmx.asm",
|
||||
"vp8/common/x86/idctllm_mmx.asm",
|
||||
"vp8/common/x86/idctllm_sse2.asm",
|
||||
"vp8/common/x86/iwalsh_mmx.asm",
|
||||
"vp8/common/x86/iwalsh_sse2.asm",
|
||||
"vp8/common/x86/loopfilter_sse2.asm",
|
||||
"vp8/common/x86/recon_mmx.asm",
|
||||
"vp8/common/x86/recon_sse2.asm",
|
||||
"vp8/common/x86/subpixel_mmx.asm",
|
||||
"vp8/common/x86/subpixel_sse2.asm",
|
||||
"vp8/common/x86/subpixel_ssse3.asm",
|
||||
"vp8/common/x86/vp8_loopfilter_mmx.asm",
|
||||
|
||||
|
||||
"vpx_dsp/x86/intrapred_sse2.asm",
|
||||
"vpx_dsp/x86/intrapred_ssse3.asm",
|
||||
"vpx_dsp/x86/inv_wht_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_convolve_copy_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_ssse3.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_bilinear_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_bilinear_ssse3.asm",
|
||||
"vpx_dsp/x86/intrapred_sse2.asm",
|
||||
"vpx_dsp/x86/intrapred_ssse3.asm",
|
||||
"vpx_dsp/x86/inv_wht_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_convolve_copy_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_8t_ssse3.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_bilinear_sse2.asm",
|
||||
"vpx_dsp/x86/vpx_subpixel_bilinear_ssse3.asm",
|
||||
|
||||
|
||||
"vpx_ports/emms.asm"
|
||||
"vpx_ports/emms.asm"
|
||||
]
|
||||
libvpx_sources_x86_64asm = [
|
||||
"vp8/common/x86/loopfilter_block_sse2_x86_64.asm",
|
||||
"vp8/common/x86/loopfilter_block_sse2_x86_64.asm",
|
||||
|
||||
|
||||
"vpx_dsp/x86/inv_txfm_ssse3_x86_64.asm"
|
||||
"vpx_dsp/x86/inv_txfm_ssse3_x86_64.asm"
|
||||
]
|
||||
|
||||
libvpx_sources_arm = [
|
||||
"vpx_ports/arm_cpudetect.c",
|
||||
"vpx_ports/arm_cpudetect.c",
|
||||
|
||||
|
||||
"vp8/common/arm/loopfilter_arm.c",
|
||||
"vp8/common/arm/loopfilter_arm.c",
|
||||
]
|
||||
libvpx_sources_arm_neon = [
|
||||
"vp8/common/arm/neon/bilinearpredict_neon.c",
|
||||
"vp8/common/arm/neon/copymem_neon.c",
|
||||
"vp8/common/arm/neon/dc_only_idct_add_neon.c",
|
||||
"vp8/common/arm/neon/dequant_idct_neon.c",
|
||||
"vp8/common/arm/neon/dequantizeb_neon.c",
|
||||
"vp8/common/arm/neon/idct_blk_neon.c",
|
||||
"vp8/common/arm/neon/idct_dequant_0_2x_neon.c",
|
||||
"vp8/common/arm/neon/idct_dequant_full_2x_neon.c",
|
||||
"vp8/common/arm/neon/iwalsh_neon.c",
|
||||
"vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c",
|
||||
"vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c",
|
||||
"vp8/common/arm/neon/mbloopfilter_neon.c",
|
||||
"vp8/common/arm/neon/shortidct4x4llm_neon.c",
|
||||
"vp8/common/arm/neon/sixtappredict_neon.c",
|
||||
"vp8/common/arm/neon/vp8_loopfilter_neon.c",
|
||||
"vp8/common/arm/neon/bilinearpredict_neon.c",
|
||||
"vp8/common/arm/neon/copymem_neon.c",
|
||||
"vp8/common/arm/neon/dc_only_idct_add_neon.c",
|
||||
"vp8/common/arm/neon/dequant_idct_neon.c",
|
||||
"vp8/common/arm/neon/dequantizeb_neon.c",
|
||||
"vp8/common/arm/neon/idct_blk_neon.c",
|
||||
"vp8/common/arm/neon/idct_dequant_0_2x_neon.c",
|
||||
"vp8/common/arm/neon/idct_dequant_full_2x_neon.c",
|
||||
"vp8/common/arm/neon/iwalsh_neon.c",
|
||||
"vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c",
|
||||
"vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c",
|
||||
"vp8/common/arm/neon/mbloopfilter_neon.c",
|
||||
"vp8/common/arm/neon/shortidct4x4llm_neon.c",
|
||||
"vp8/common/arm/neon/sixtappredict_neon.c",
|
||||
"vp8/common/arm/neon/vp8_loopfilter_neon.c",
|
||||
|
||||
|
||||
"vp9/common/arm/neon/vp9_iht4x4_add_neon.c",
|
||||
"vp9/common/arm/neon/vp9_iht8x8_add_neon.c",
|
||||
"vp9/common/arm/neon/vp9_iht4x4_add_neon.c",
|
||||
"vp9/common/arm/neon/vp9_iht8x8_add_neon.c",
|
||||
|
||||
|
||||
"vpx_dsp/arm/idct16x16_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct16x16_add_neon.c",
|
||||
"vpx_dsp/arm/idct16x16_neon.c",
|
||||
"vpx_dsp/arm/idct32x32_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct32x32_add_neon.c",
|
||||
"vpx_dsp/arm/idct4x4_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct4x4_add_neon.c",
|
||||
"vpx_dsp/arm/idct8x8_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct8x8_add_neon.c",
|
||||
"vpx_dsp/arm/intrapred_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_16_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_4_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_8_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve8_avg_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve8_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_avg_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_copy_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_neon.c"
|
||||
"vpx_dsp/arm/idct16x16_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct16x16_add_neon.c",
|
||||
"vpx_dsp/arm/idct16x16_neon.c",
|
||||
"vpx_dsp/arm/idct32x32_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct32x32_add_neon.c",
|
||||
"vpx_dsp/arm/idct4x4_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct4x4_add_neon.c",
|
||||
"vpx_dsp/arm/idct8x8_1_add_neon.c",
|
||||
"vpx_dsp/arm/idct8x8_add_neon.c",
|
||||
"vpx_dsp/arm/intrapred_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_16_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_4_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_8_neon.c",
|
||||
"vpx_dsp/arm/loopfilter_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve8_avg_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve8_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_avg_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_copy_neon.c",
|
||||
"vpx_dsp/arm/vpx_convolve_neon.c"
|
||||
]
|
||||
libvpx_sources_arm_neon_gas = [
|
||||
"vpx_dsp/arm/gas/intrapred_neon_asm.s",
|
||||
"vpx_dsp/arm/gas/loopfilter_mb_neon.s",
|
||||
"vpx_dsp/arm/gas/save_reg_neon.s"
|
||||
"vpx_dsp/arm/gas/intrapred_neon_asm.s",
|
||||
"vpx_dsp/arm/gas/loopfilter_mb_neon.s",
|
||||
"vpx_dsp/arm/gas/save_reg_neon.s"
|
||||
]
|
||||
libvpx_sources_arm_neon_armasm_ms = [
|
||||
"vpx_dsp/arm/armasm_ms/intrapred_neon_asm.asm",
|
||||
"vpx_dsp/arm/armasm_ms/loopfilter_mb_neon.asm",
|
||||
"vpx_dsp/arm/armasm_ms/save_reg_neon.asm"
|
||||
"vpx_dsp/arm/armasm_ms/intrapred_neon_asm.asm",
|
||||
"vpx_dsp/arm/armasm_ms/loopfilter_mb_neon.asm",
|
||||
"vpx_dsp/arm/armasm_ms/save_reg_neon.asm"
|
||||
]
|
||||
libvpx_sources_arm_neon_gas_apple = [
|
||||
"vpx_dsp/arm/gas_apple/intrapred_neon_asm.s",
|
||||
"vpx_dsp/arm/gas_apple/loopfilter_mb_neon.s",
|
||||
"vpx_dsp/arm/gas_apple/save_reg_neon.s"
|
||||
"vpx_dsp/arm/gas_apple/intrapred_neon_asm.s",
|
||||
"vpx_dsp/arm/gas_apple/loopfilter_mb_neon.s",
|
||||
"vpx_dsp/arm/gas_apple/save_reg_neon.s"
|
||||
]
|
||||
|
||||
libvpx_sources = [libvpx_dir + file for file in libvpx_sources]
|
||||
|
@ -258,133 +258,133 @@ osx_fat = (env["platform"] == 'osx' and cpu_bits == 'fat')
|
|||
webm_cpu_x86 = False
|
||||
webm_cpu_arm = False
|
||||
if env["platform"] == 'winrt':
|
||||
if 'arm' in env["PROGSUFFIX"]:
|
||||
webm_cpu_arm = True
|
||||
else:
|
||||
webm_cpu_x86 = True
|
||||
if 'arm' in env["PROGSUFFIX"]:
|
||||
webm_cpu_arm = True
|
||||
else:
|
||||
webm_cpu_x86 = True
|
||||
else:
|
||||
is_android_x86 = (env["platform"] == 'android' and env["android_arch"] == 'x86')
|
||||
if is_android_x86:
|
||||
cpu_bits = '32'
|
||||
if osx_fat:
|
||||
webm_cpu_x86 = True
|
||||
else:
|
||||
webm_cpu_x86 = (cpu_bits == '32' or cpu_bits == '64') and (env["platform"] == 'windows' or env["platform"] == 'x11' or env["platform"] == 'osx' or env["platform"] == 'haiku' or is_android_x86)
|
||||
webm_cpu_arm = env["platform"] == 'iphone' or env["platform"] == 'bb10' or (env["platform"] == 'android' and env["android_arch"] != 'x86')
|
||||
is_android_x86 = (env["platform"] == 'android' and env["android_arch"] == 'x86')
|
||||
if is_android_x86:
|
||||
cpu_bits = '32'
|
||||
if osx_fat:
|
||||
webm_cpu_x86 = True
|
||||
else:
|
||||
webm_cpu_x86 = (cpu_bits == '32' or cpu_bits == '64') and (env["platform"] == 'windows' or env["platform"] == 'x11' or env["platform"] == 'osx' or env["platform"] == 'haiku' or is_android_x86)
|
||||
webm_cpu_arm = env["platform"] == 'iphone' or env["platform"] == 'bb10' or (env["platform"] == 'android' and env["android_arch"] != 'x86')
|
||||
|
||||
if webm_cpu_x86:
|
||||
import subprocess
|
||||
import os
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
yasm_paths = [
|
||||
"yasm",
|
||||
"../../../yasm",
|
||||
]
|
||||
yasm_paths = [
|
||||
"yasm",
|
||||
"../../../yasm",
|
||||
]
|
||||
|
||||
yasm_found = False
|
||||
yasm_found = False
|
||||
|
||||
devnull = open(os.devnull)
|
||||
for yasm_path in yasm_paths:
|
||||
try:
|
||||
yasm_found = True
|
||||
subprocess.Popen([yasm_path, "--version"], stdout=devnull, stderr=devnull).communicate()
|
||||
except:
|
||||
yasm_found = False
|
||||
if yasm_found:
|
||||
break
|
||||
devnull = open(os.devnull)
|
||||
for yasm_path in yasm_paths:
|
||||
try:
|
||||
yasm_found = True
|
||||
subprocess.Popen([yasm_path, "--version"], stdout=devnull, stderr=devnull).communicate()
|
||||
except:
|
||||
yasm_found = False
|
||||
if yasm_found:
|
||||
break
|
||||
|
||||
if not yasm_found:
|
||||
webm_cpu_x86 = False
|
||||
print "YASM is necessary for WebM SIMD optimizations."
|
||||
if not yasm_found:
|
||||
webm_cpu_x86 = False
|
||||
print "YASM is necessary for WebM SIMD optimizations."
|
||||
|
||||
webm_simd_optimizations = False
|
||||
|
||||
if webm_cpu_x86:
|
||||
if osx_fat:
|
||||
#'osx' platform only: run python script which will compile using 'yasm' command and then merge 32-bit and 64-bit using 'lipo' command
|
||||
env_libvpx["AS"] = 'python modules/webm/libvpx/yasm_osx_fat.py'
|
||||
env_libvpx["ASFLAGS"] = '-I' + libvpx_dir[1:]
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS $TARGET $SOURCES'
|
||||
else:
|
||||
if env["platform"] == 'windows' or env["platform"] == 'winrt':
|
||||
env_libvpx["ASFORMAT"] = 'win'
|
||||
elif env["platform"] == 'osx':
|
||||
env_libvpx["ASFORMAT"] = 'macho'
|
||||
else:
|
||||
env_libvpx["ASFORMAT"] = 'elf'
|
||||
env_libvpx["ASFORMAT"] += cpu_bits
|
||||
if osx_fat:
|
||||
#'osx' platform only: run python script which will compile using 'yasm' command and then merge 32-bit and 64-bit using 'lipo' command
|
||||
env_libvpx["AS"] = 'python modules/webm/libvpx/yasm_osx_fat.py'
|
||||
env_libvpx["ASFLAGS"] = '-I' + libvpx_dir[1:]
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS $TARGET $SOURCES'
|
||||
else:
|
||||
if env["platform"] == 'windows' or env["platform"] == 'winrt':
|
||||
env_libvpx["ASFORMAT"] = 'win'
|
||||
elif env["platform"] == 'osx':
|
||||
env_libvpx["ASFORMAT"] = 'macho'
|
||||
else:
|
||||
env_libvpx["ASFORMAT"] = 'elf'
|
||||
env_libvpx["ASFORMAT"] += cpu_bits
|
||||
|
||||
env_libvpx["AS"] = 'yasm'
|
||||
env_libvpx["ASFLAGS"] = '-I' + libvpx_dir[1:] + ' -f $ASFORMAT -D $ASCPU'
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS -o $TARGET $SOURCES'
|
||||
env_libvpx["AS"] = 'yasm'
|
||||
env_libvpx["ASFLAGS"] = '-I' + libvpx_dir[1:] + ' -f $ASFORMAT -D $ASCPU'
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS -o $TARGET $SOURCES'
|
||||
|
||||
if cpu_bits == '32':
|
||||
env_libvpx["ASCPU"] = 'X86_32'
|
||||
elif cpu_bits == '64':
|
||||
env_libvpx["ASCPU"] = 'X86_64'
|
||||
if cpu_bits == '32':
|
||||
env_libvpx["ASCPU"] = 'X86_32'
|
||||
elif cpu_bits == '64':
|
||||
env_libvpx["ASCPU"] = 'X86_64'
|
||||
|
||||
env_libvpx.Append(CCFLAGS=['-DWEBM_X86ASM'])
|
||||
env_libvpx.Append(CCFLAGS=['-DWEBM_X86ASM'])
|
||||
|
||||
webm_simd_optimizations = True
|
||||
webm_simd_optimizations = True
|
||||
|
||||
if webm_cpu_arm:
|
||||
if env["platform"] == 'iphone':
|
||||
env_libvpx["ASFLAGS"] = '-arch armv7'
|
||||
elif env["platform"] == 'android':
|
||||
env_libvpx["ASFLAGS"] = '-mfpu=neon'
|
||||
elif env["platform"] == 'winrt':
|
||||
env_libvpx["AS"] = 'armasm'
|
||||
env_libvpx["ASFLAGS"] = ''
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS -o $TARGET $SOURCES'
|
||||
if env["platform"] == 'iphone':
|
||||
env_libvpx["ASFLAGS"] = '-arch armv7'
|
||||
elif env["platform"] == 'android':
|
||||
env_libvpx["ASFLAGS"] = '-mfpu=neon'
|
||||
elif env["platform"] == 'winrt':
|
||||
env_libvpx["AS"] = 'armasm'
|
||||
env_libvpx["ASFLAGS"] = ''
|
||||
env_libvpx["ASCOM"] = '$AS $ASFLAGS -o $TARGET $SOURCES'
|
||||
|
||||
env_libvpx.Append(CCFLAGS=['-DWEBM_ARMASM'])
|
||||
env_libvpx.Append(CCFLAGS=['-DWEBM_ARMASM'])
|
||||
|
||||
webm_simd_optimizations = True
|
||||
webm_simd_optimizations = True
|
||||
|
||||
if webm_simd_optimizations == False:
|
||||
print "WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!"
|
||||
print "WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!"
|
||||
|
||||
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources)
|
||||
if webm_cpu_x86:
|
||||
is_clang_or_gcc = ('gcc' in env["CC"]) or ('clang' in env["CC"])
|
||||
is_clang_or_gcc = ('gcc' in env["CC"]) or ('clang' in env["CC"])
|
||||
|
||||
env_libvpx_mmx = env_libvpx.Clone()
|
||||
if cpu_bits == '32' and is_clang_or_gcc:
|
||||
env_libvpx_mmx.Append(CCFLAGS=['-mmmx'])
|
||||
env_libvpx_mmx.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_mmx)
|
||||
env_libvpx_mmx = env_libvpx.Clone()
|
||||
if cpu_bits == '32' and is_clang_or_gcc:
|
||||
env_libvpx_mmx.Append(CCFLAGS=['-mmmx'])
|
||||
env_libvpx_mmx.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_mmx)
|
||||
|
||||
env_libvpx_sse2 = env_libvpx.Clone()
|
||||
if cpu_bits == '32' and is_clang_or_gcc:
|
||||
env_libvpx_sse2.Append(CCFLAGS=['-msse2'])
|
||||
env_libvpx_sse2.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_sse2)
|
||||
env_libvpx_sse2 = env_libvpx.Clone()
|
||||
if cpu_bits == '32' and is_clang_or_gcc:
|
||||
env_libvpx_sse2.Append(CCFLAGS=['-msse2'])
|
||||
env_libvpx_sse2.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_sse2)
|
||||
|
||||
env_libvpx_ssse3 = env_libvpx.Clone()
|
||||
if is_clang_or_gcc:
|
||||
env_libvpx_ssse3.Append(CCFLAGS=['-mssse3'])
|
||||
env_libvpx_ssse3.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_ssse3)
|
||||
env_libvpx_ssse3 = env_libvpx.Clone()
|
||||
if is_clang_or_gcc:
|
||||
env_libvpx_ssse3.Append(CCFLAGS=['-mssse3'])
|
||||
env_libvpx_ssse3.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_ssse3)
|
||||
|
||||
env_libvpx_avx2 = env_libvpx.Clone()
|
||||
if is_clang_or_gcc:
|
||||
env_libvpx_avx2.Append(CCFLAGS=['-mavx2'])
|
||||
env_libvpx_avx2.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_avx2)
|
||||
env_libvpx_avx2 = env_libvpx.Clone()
|
||||
if is_clang_or_gcc:
|
||||
env_libvpx_avx2.Append(CCFLAGS=['-mavx2'])
|
||||
env_libvpx_avx2.add_source_files(env.modules_sources, libvpx_sources_intrin_x86_avx2)
|
||||
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_intrin_x86)
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_intrin_x86)
|
||||
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_x86asm)
|
||||
if cpu_bits == '64' or osx_fat:
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_x86_64asm)
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_x86asm)
|
||||
if cpu_bits == '64' or osx_fat:
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_x86_64asm)
|
||||
elif webm_cpu_arm:
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm)
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm)
|
||||
|
||||
env_libvpx_neon = env_libvpx.Clone()
|
||||
if env["platform"] == 'android' and env["android_arch"] == 'armv6':
|
||||
env_libvpx_neon.Append(CCFLAGS=['-mfpu=neon'])
|
||||
env_libvpx_neon.add_source_files(env.modules_sources, libvpx_sources_arm_neon)
|
||||
env_libvpx_neon = env_libvpx.Clone()
|
||||
if env["platform"] == 'android' and env["android_arch"] == 'armv6':
|
||||
env_libvpx_neon.Append(CCFLAGS=['-mfpu=neon'])
|
||||
env_libvpx_neon.add_source_files(env.modules_sources, libvpx_sources_arm_neon)
|
||||
|
||||
if env["platform"] == 'winrt':
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_armasm_ms)
|
||||
elif env["platform"] == 'iphone':
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas_apple)
|
||||
else:
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas)
|
||||
if env["platform"] == 'winrt':
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_armasm_ms)
|
||||
elif env["platform"] == 'iphone':
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas_apple)
|
||||
else:
|
||||
env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas)
|
||||
|
|
|
@ -14,25 +14,25 @@ lipo_command = ''
|
|||
exit_code = 1
|
||||
|
||||
for arch in ['32', '64']:
|
||||
if arch == '32' and input_file.endswith('x86_64.asm'):
|
||||
can_remove[arch] = False
|
||||
else:
|
||||
command = 'yasm ' + includes + ' -f macho' + arch + ' -D X86_' + arch + ' -o ' + output_file + '.' + arch + ' ' + input_file
|
||||
print(command)
|
||||
if os.system(command) == 0:
|
||||
lipo_command += output_file + '.' + arch + ' '
|
||||
can_remove[arch] = True
|
||||
else:
|
||||
can_remove[arch] = False
|
||||
if arch == '32' and input_file.endswith('x86_64.asm'):
|
||||
can_remove[arch] = False
|
||||
else:
|
||||
command = 'yasm ' + includes + ' -f macho' + arch + ' -D X86_' + arch + ' -o ' + output_file + '.' + arch + ' ' + input_file
|
||||
print(command)
|
||||
if os.system(command) == 0:
|
||||
lipo_command += output_file + '.' + arch + ' '
|
||||
can_remove[arch] = True
|
||||
else:
|
||||
can_remove[arch] = False
|
||||
|
||||
if lipo_command != '':
|
||||
lipo_command = 'lipo -create ' + lipo_command + '-output ' + output_file
|
||||
print(lipo_command)
|
||||
if os.system(lipo_command) == 0:
|
||||
exit_code = 0
|
||||
lipo_command = 'lipo -create ' + lipo_command + '-output ' + output_file
|
||||
print(lipo_command)
|
||||
if os.system(lipo_command) == 0:
|
||||
exit_code = 0
|
||||
|
||||
for arch in ['32', '64']:
|
||||
if can_remove[arch]:
|
||||
os.remove(output_file + '.' + arch)
|
||||
if can_remove[arch]:
|
||||
os.remove(output_file + '.' + arch)
|
||||
|
||||
sys.exit(exit_code)
|
||||
|
|
|
@ -7,115 +7,115 @@ env_webp = env_modules.Clone()
|
|||
|
||||
# Thirdparty source files
|
||||
if (env["libwebp"] != "system"): # builtin
|
||||
thirdparty_dir = "#thirdparty/libwebp/"
|
||||
thirdparty_sources = [
|
||||
"enc/webpenc.c",
|
||||
"enc/near_lossless.c",
|
||||
"enc/frame.c",
|
||||
"enc/alpha.c",
|
||||
"enc/picture_csp.c",
|
||||
"enc/vp8l.c",
|
||||
"enc/picture_psnr.c",
|
||||
"enc/delta_palettization.c",
|
||||
"enc/syntax.c",
|
||||
"enc/backward_references.c",
|
||||
"enc/token.c",
|
||||
"enc/analysis.c",
|
||||
"enc/iterator.c",
|
||||
"enc/picture_tools.c",
|
||||
"enc/picture_rescale.c",
|
||||
"enc/config.c",
|
||||
"enc/tree.c",
|
||||
"enc/cost.c",
|
||||
"enc/picture.c",
|
||||
"enc/quant.c",
|
||||
"enc/filter.c",
|
||||
"enc/histogram.c",
|
||||
"utils/rescaler.c",
|
||||
"utils/filters.c",
|
||||
"utils/quant_levels_dec.c",
|
||||
"utils/huffman.c",
|
||||
"utils/thread.c",
|
||||
"utils/quant_levels.c",
|
||||
"utils/bit_writer.c",
|
||||
"utils/bit_reader.c",
|
||||
"utils/random.c",
|
||||
"utils/utils.c",
|
||||
"utils/huffman_encode.c",
|
||||
"utils/color_cache.c",
|
||||
"mux/muxinternal.c",
|
||||
"mux/muxread.c",
|
||||
"mux/anim_encode.c",
|
||||
"mux/muxedit.c",
|
||||
"dec/webp.c",
|
||||
"dec/frame.c",
|
||||
"dec/alpha.c",
|
||||
"dec/vp8l.c",
|
||||
"dec/io.c",
|
||||
"dec/vp8.c",
|
||||
"dec/idec.c",
|
||||
"dec/tree.c",
|
||||
"dec/buffer.c",
|
||||
"dec/quant.c",
|
||||
"demux/demux.c",
|
||||
"demux/anim_decode.c",
|
||||
"dsp/yuv.c",
|
||||
"dsp/filters_sse2.c",
|
||||
"dsp/dec_sse41.c",
|
||||
"dsp/rescaler.c",
|
||||
"dsp/lossless_sse2.c",
|
||||
"dsp/alpha_processing_sse41.c",
|
||||
"dsp/alpha_processing_sse2.c",
|
||||
"dsp/filters.c",
|
||||
"dsp/upsampling_mips_dsp_r2.c",
|
||||
"dsp/dec_neon.c",
|
||||
"dsp/enc_neon.c",
|
||||
"dsp/lossless_enc_mips32.c",
|
||||
"dsp/lossless_enc_sse2.c",
|
||||
"dsp/upsampling.c",
|
||||
"dsp/lossless_enc_neon.c",
|
||||
"dsp/alpha_processing.c",
|
||||
"dsp/cost_sse2.c",
|
||||
"dsp/dec_mips32.c",
|
||||
"dsp/enc_avx2.c",
|
||||
"dsp/rescaler_mips32.c",
|
||||
"dsp/enc.c",
|
||||
"dsp/lossless_enc_sse41.c",
|
||||
"dsp/cost_mips32.c",
|
||||
"dsp/lossless_mips_dsp_r2.c",
|
||||
"dsp/filters_mips_dsp_r2.c",
|
||||
"dsp/upsampling_neon.c",
|
||||
"dsp/alpha_processing_mips_dsp_r2.c",
|
||||
"dsp/enc_mips_dsp_r2.c",
|
||||
"dsp/lossless.c",
|
||||
"dsp/yuv_mips_dsp_r2.c",
|
||||
"dsp/cost_mips_dsp_r2.c",
|
||||
"dsp/argb.c",
|
||||
"dsp/dec_sse2.c",
|
||||
"dsp/rescaler_sse2.c",
|
||||
"dsp/enc_sse41.c",
|
||||
"dsp/argb_mips_dsp_r2.c",
|
||||
"dsp/lossless_enc_mips_dsp_r2.c",
|
||||
"dsp/dec_clip_tables.c",
|
||||
"dsp/yuv_mips32.c",
|
||||
"dsp/cpu.c",
|
||||
"dsp/dec.c",
|
||||
"dsp/argb_sse2.c",
|
||||
"dsp/lossless_neon.c",
|
||||
"dsp/lossless_enc.c",
|
||||
"dsp/enc_mips32.c",
|
||||
"dsp/cost.c",
|
||||
"dsp/rescaler_mips_dsp_r2.c",
|
||||
"dsp/dec_mips_dsp_r2.c",
|
||||
"dsp/rescaler_neon.c",
|
||||
"dsp/yuv_sse2.c",
|
||||
"dsp/enc_sse2.c",
|
||||
"dsp/upsampling_sse2.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
thirdparty_dir = "#thirdparty/libwebp/"
|
||||
thirdparty_sources = [
|
||||
"enc/webpenc.c",
|
||||
"enc/near_lossless.c",
|
||||
"enc/frame.c",
|
||||
"enc/alpha.c",
|
||||
"enc/picture_csp.c",
|
||||
"enc/vp8l.c",
|
||||
"enc/picture_psnr.c",
|
||||
"enc/delta_palettization.c",
|
||||
"enc/syntax.c",
|
||||
"enc/backward_references.c",
|
||||
"enc/token.c",
|
||||
"enc/analysis.c",
|
||||
"enc/iterator.c",
|
||||
"enc/picture_tools.c",
|
||||
"enc/picture_rescale.c",
|
||||
"enc/config.c",
|
||||
"enc/tree.c",
|
||||
"enc/cost.c",
|
||||
"enc/picture.c",
|
||||
"enc/quant.c",
|
||||
"enc/filter.c",
|
||||
"enc/histogram.c",
|
||||
"utils/rescaler.c",
|
||||
"utils/filters.c",
|
||||
"utils/quant_levels_dec.c",
|
||||
"utils/huffman.c",
|
||||
"utils/thread.c",
|
||||
"utils/quant_levels.c",
|
||||
"utils/bit_writer.c",
|
||||
"utils/bit_reader.c",
|
||||
"utils/random.c",
|
||||
"utils/utils.c",
|
||||
"utils/huffman_encode.c",
|
||||
"utils/color_cache.c",
|
||||
"mux/muxinternal.c",
|
||||
"mux/muxread.c",
|
||||
"mux/anim_encode.c",
|
||||
"mux/muxedit.c",
|
||||
"dec/webp.c",
|
||||
"dec/frame.c",
|
||||
"dec/alpha.c",
|
||||
"dec/vp8l.c",
|
||||
"dec/io.c",
|
||||
"dec/vp8.c",
|
||||
"dec/idec.c",
|
||||
"dec/tree.c",
|
||||
"dec/buffer.c",
|
||||
"dec/quant.c",
|
||||
"demux/demux.c",
|
||||
"demux/anim_decode.c",
|
||||
"dsp/yuv.c",
|
||||
"dsp/filters_sse2.c",
|
||||
"dsp/dec_sse41.c",
|
||||
"dsp/rescaler.c",
|
||||
"dsp/lossless_sse2.c",
|
||||
"dsp/alpha_processing_sse41.c",
|
||||
"dsp/alpha_processing_sse2.c",
|
||||
"dsp/filters.c",
|
||||
"dsp/upsampling_mips_dsp_r2.c",
|
||||
"dsp/dec_neon.c",
|
||||
"dsp/enc_neon.c",
|
||||
"dsp/lossless_enc_mips32.c",
|
||||
"dsp/lossless_enc_sse2.c",
|
||||
"dsp/upsampling.c",
|
||||
"dsp/lossless_enc_neon.c",
|
||||
"dsp/alpha_processing.c",
|
||||
"dsp/cost_sse2.c",
|
||||
"dsp/dec_mips32.c",
|
||||
"dsp/enc_avx2.c",
|
||||
"dsp/rescaler_mips32.c",
|
||||
"dsp/enc.c",
|
||||
"dsp/lossless_enc_sse41.c",
|
||||
"dsp/cost_mips32.c",
|
||||
"dsp/lossless_mips_dsp_r2.c",
|
||||
"dsp/filters_mips_dsp_r2.c",
|
||||
"dsp/upsampling_neon.c",
|
||||
"dsp/alpha_processing_mips_dsp_r2.c",
|
||||
"dsp/enc_mips_dsp_r2.c",
|
||||
"dsp/lossless.c",
|
||||
"dsp/yuv_mips_dsp_r2.c",
|
||||
"dsp/cost_mips_dsp_r2.c",
|
||||
"dsp/argb.c",
|
||||
"dsp/dec_sse2.c",
|
||||
"dsp/rescaler_sse2.c",
|
||||
"dsp/enc_sse41.c",
|
||||
"dsp/argb_mips_dsp_r2.c",
|
||||
"dsp/lossless_enc_mips_dsp_r2.c",
|
||||
"dsp/dec_clip_tables.c",
|
||||
"dsp/yuv_mips32.c",
|
||||
"dsp/cpu.c",
|
||||
"dsp/dec.c",
|
||||
"dsp/argb_sse2.c",
|
||||
"dsp/lossless_neon.c",
|
||||
"dsp/lossless_enc.c",
|
||||
"dsp/enc_mips32.c",
|
||||
"dsp/cost.c",
|
||||
"dsp/rescaler_mips_dsp_r2.c",
|
||||
"dsp/dec_mips_dsp_r2.c",
|
||||
"dsp/rescaler_neon.c",
|
||||
"dsp/yuv_sse2.c",
|
||||
"dsp/enc_sse2.c",
|
||||
"dsp/upsampling_sse2.c",
|
||||
]
|
||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
||||
|
||||
env_webp.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_webp.Append(CPPPATH = [thirdparty_dir])
|
||||
env_webp.add_source_files(env.modules_sources, thirdparty_sources)
|
||||
env_webp.Append(CPPPATH = [thirdparty_dir])
|
||||
|
||||
# Godot source files
|
||||
env_webp.add_source_files(env.modules_sources, "*.cpp")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
def can_build(platform):
|
||||
return True
|
||||
return True
|
||||
|
||||
def configure(env):
|
||||
pass
|
||||
pass
|
||||
|
|
|
@ -6,20 +6,20 @@ Import('env')
|
|||
|
||||
android_files = [
|
||||
|
||||
'os_android.cpp',
|
||||
'godot_android.cpp',
|
||||
'file_access_android.cpp',
|
||||
'dir_access_android.cpp',
|
||||
'audio_driver_opensl.cpp',
|
||||
'file_access_jandroid.cpp',
|
||||
'dir_access_jandroid.cpp',
|
||||
'thread_jandroid.cpp',
|
||||
'audio_driver_jandroid.cpp',
|
||||
'ifaddrs_android.cpp',
|
||||
'android_native_app_glue.c',
|
||||
'java_glue.cpp',
|
||||
'cpu-features.c',
|
||||
'java_class_wrapper.cpp'
|
||||
'os_android.cpp',
|
||||
'godot_android.cpp',
|
||||
'file_access_android.cpp',
|
||||
'dir_access_android.cpp',
|
||||
'audio_driver_opensl.cpp',
|
||||
'file_access_jandroid.cpp',
|
||||
'dir_access_jandroid.cpp',
|
||||
'thread_jandroid.cpp',
|
||||
'audio_driver_jandroid.cpp',
|
||||
'ifaddrs_android.cpp',
|
||||
'android_native_app_glue.c',
|
||||
'java_glue.cpp',
|
||||
'cpu-features.c',
|
||||
'java_class_wrapper.cpp'
|
||||
]
|
||||
|
||||
#env.Depends('#core/math/vector3.h', 'vector3_psp.h')
|
||||
|
@ -28,11 +28,11 @@ android_files = [
|
|||
|
||||
env_android = env.Clone()
|
||||
if env['target'] == "profile":
|
||||
env_android.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
|
||||
env_android.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
|
||||
|
||||
android_objects=[]
|
||||
for x in android_files:
|
||||
android_objects.append( env_android.SharedObject( x ) )
|
||||
android_objects.append( env_android.SharedObject( x ) )
|
||||
|
||||
prog = None
|
||||
|
||||
|
@ -48,43 +48,43 @@ gradle_text = gradle_basein.read()
|
|||
gradle_maven_repos_text=""
|
||||
|
||||
if len(env.android_maven_repos) > 0:
|
||||
gradle_maven_repos_text+="maven {\n"
|
||||
for x in env.android_maven_repos:
|
||||
gradle_maven_repos_text+="\t\t"+x+"\n"
|
||||
gradle_maven_repos_text+="\t}\n"
|
||||
gradle_maven_repos_text+="maven {\n"
|
||||
for x in env.android_maven_repos:
|
||||
gradle_maven_repos_text+="\t\t"+x+"\n"
|
||||
gradle_maven_repos_text+="\t}\n"
|
||||
|
||||
gradle_maven_dependencies_text=""
|
||||
|
||||
for x in env.android_dependencies:
|
||||
gradle_maven_dependencies_text+=x+"\n"
|
||||
gradle_maven_dependencies_text+=x+"\n"
|
||||
|
||||
gradle_java_dirs_text=""
|
||||
|
||||
for x in env.android_java_dirs:
|
||||
gradle_java_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
gradle_java_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
|
||||
|
||||
gradle_res_dirs_text=""
|
||||
|
||||
for x in env.android_res_dirs:
|
||||
gradle_res_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
gradle_res_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
|
||||
gradle_aidl_dirs_text=""
|
||||
|
||||
for x in env.android_aidl_dirs:
|
||||
gradle_aidl_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
gradle_aidl_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
|
||||
gradle_jni_dirs_text=""
|
||||
|
||||
for x in env.android_jni_dirs:
|
||||
gradle_jni_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
gradle_jni_dirs_text+=",'"+x.replace("\\","/")+"'"
|
||||
|
||||
gradle_asset_dirs_text=""
|
||||
|
||||
gradle_default_config_text=""
|
||||
|
||||
for x in env.android_default_config:
|
||||
gradle_default_config_text+=x+"\n\t\t"
|
||||
gradle_default_config_text+=x+"\n\t\t"
|
||||
|
||||
gradle_text = gradle_text.replace("$$GRADLE_REPOSITORY_URLS$$",gradle_maven_repos_text)
|
||||
gradle_text = gradle_text.replace("$$GRADLE_DEPENDENCIES$$",gradle_maven_dependencies_text)
|
||||
|
@ -114,19 +114,19 @@ env_android.SharedLibrary("#bin/libgodot",[android_objects],SHLIBSUFFIX=env["SHL
|
|||
|
||||
lib_arch_dir = ''
|
||||
if env['android_arch'] == 'armv6':
|
||||
lib_arch_dir = 'armeabi'
|
||||
lib_arch_dir = 'armeabi'
|
||||
elif env['android_arch'] == 'armv7':
|
||||
lib_arch_dir = 'armeabi-v7a'
|
||||
lib_arch_dir = 'armeabi-v7a'
|
||||
elif env['android_arch'] == 'x86':
|
||||
lib_arch_dir = 'x86'
|
||||
lib_arch_dir = 'x86'
|
||||
else:
|
||||
print 'WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin'
|
||||
print 'WARN: Architecture not suitable for embedding into APK; keeping .so at \\bin'
|
||||
|
||||
if lib_arch_dir != '':
|
||||
if env['target'] == 'release':
|
||||
lib_type_dir = 'release'
|
||||
else: # release_debug, debug
|
||||
lib_type_dir = 'debug'
|
||||
if env['target'] == 'release':
|
||||
lib_type_dir = 'release'
|
||||
else: # release_debug, debug
|
||||
lib_type_dir = 'debug'
|
||||
|
||||
out_dir = '#platform/android/java/libs/'+lib_type_dir+'/'+lib_arch_dir
|
||||
env_android.Command(out_dir+'/libgodot_android.so', '#bin/libgodot'+env['SHLIBSUFFIX'], Move("$TARGET", "$SOURCE"))
|
||||
out_dir = '#platform/android/java/libs/'+lib_type_dir+'/'+lib_arch_dir
|
||||
env_android.Command(out_dir+'/libgodot_android.so', '#bin/libgodot'+env['SHLIBSUFFIX'], Move("$TARGET", "$SOURCE"))
|
||||
|
|
|
@ -4,247 +4,247 @@ import string
|
|||
import platform
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "Android"
|
||||
return "Android"
|
||||
|
||||
def can_build():
|
||||
|
||||
import os
|
||||
if (not os.environ.has_key("ANDROID_NDK_ROOT")):
|
||||
return False
|
||||
import os
|
||||
if (not os.environ.has_key("ANDROID_NDK_ROOT")):
|
||||
return False
|
||||
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
('ANDROID_NDK_ROOT', 'the path to Android NDK', os.environ.get("ANDROID_NDK_ROOT", 0)),
|
||||
('NDK_TARGET', 'toolchain to use for the NDK',os.environ.get("NDK_TARGET", "arm-linux-androideabi-4.9")),
|
||||
('NDK_TARGET_X86', 'toolchain to use for the NDK x86',os.environ.get("NDK_TARGET_X86", "x86-4.9")),
|
||||
('ndk_platform', 'compile for platform: (android-<api> , example: android-14)',"android-14"),
|
||||
('android_arch', 'select compiler architecture: (armv7/armv6/x86)',"armv7"),
|
||||
('android_neon','enable neon (armv7 only)',"yes"),
|
||||
('android_stl','enable STL support in android port (for modules)',"no")
|
||||
]
|
||||
return [
|
||||
('ANDROID_NDK_ROOT', 'the path to Android NDK', os.environ.get("ANDROID_NDK_ROOT", 0)),
|
||||
('NDK_TARGET', 'toolchain to use for the NDK',os.environ.get("NDK_TARGET", "arm-linux-androideabi-4.9")),
|
||||
('NDK_TARGET_X86', 'toolchain to use for the NDK x86',os.environ.get("NDK_TARGET_X86", "x86-4.9")),
|
||||
('ndk_platform', 'compile for platform: (android-<api> , example: android-14)',"android-14"),
|
||||
('android_arch', 'select compiler architecture: (armv7/armv6/x86)',"armv7"),
|
||||
('android_neon','enable neon (armv7 only)',"yes"),
|
||||
('android_stl','enable STL support in android port (for modules)',"no")
|
||||
]
|
||||
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('openssl', 'builtin'), #use builtin openssl
|
||||
]
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('openssl', 'builtin'), #use builtin openssl
|
||||
]
|
||||
|
||||
|
||||
def create(env):
|
||||
tools = env['TOOLS']
|
||||
if "mingw" in tools:
|
||||
tools.remove('mingw')
|
||||
if "applelink" in tools:
|
||||
tools.remove("applelink")
|
||||
env.Tool('gcc')
|
||||
return env.Clone(tools=tools);
|
||||
tools = env['TOOLS']
|
||||
if "mingw" in tools:
|
||||
tools.remove('mingw')
|
||||
if "applelink" in tools:
|
||||
tools.remove("applelink")
|
||||
env.Tool('gcc')
|
||||
return env.Clone(tools=tools);
|
||||
|
||||
def configure(env):
|
||||
|
||||
# Workaround for MinGW. See:
|
||||
# http://www.scons.org/wiki/LongCmdLinesOnWin32
|
||||
import os
|
||||
if (os.name=="nt"):
|
||||
# Workaround for MinGW. See:
|
||||
# http://www.scons.org/wiki/LongCmdLinesOnWin32
|
||||
import os
|
||||
if (os.name=="nt"):
|
||||
|
||||
import subprocess
|
||||
import subprocess
|
||||
|
||||
def mySubProcess(cmdline,env):
|
||||
#print "SPAWNED : " + cmdline
|
||||
startupinfo = subprocess.STARTUPINFO()
|
||||
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
||||
proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False, env = env)
|
||||
data, err = proc.communicate()
|
||||
rv = proc.wait()
|
||||
if rv:
|
||||
print "====="
|
||||
print err
|
||||
print "====="
|
||||
return rv
|
||||
def mySubProcess(cmdline,env):
|
||||
#print "SPAWNED : " + cmdline
|
||||
startupinfo = subprocess.STARTUPINFO()
|
||||
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
||||
proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False, env = env)
|
||||
data, err = proc.communicate()
|
||||
rv = proc.wait()
|
||||
if rv:
|
||||
print "====="
|
||||
print err
|
||||
print "====="
|
||||
return rv
|
||||
|
||||
def mySpawn(sh, escape, cmd, args, env):
|
||||
def mySpawn(sh, escape, cmd, args, env):
|
||||
|
||||
newargs = ' '.join(args[1:])
|
||||
cmdline = cmd + " " + newargs
|
||||
newargs = ' '.join(args[1:])
|
||||
cmdline = cmd + " " + newargs
|
||||
|
||||
rv=0
|
||||
if len(cmdline) > 32000 and cmd.endswith("ar") :
|
||||
cmdline = cmd + " " + args[1] + " " + args[2] + " "
|
||||
for i in range(3,len(args)) :
|
||||
rv = mySubProcess( cmdline + args[i], env )
|
||||
if rv :
|
||||
break
|
||||
else:
|
||||
rv = mySubProcess( cmdline, env )
|
||||
rv=0
|
||||
if len(cmdline) > 32000 and cmd.endswith("ar") :
|
||||
cmdline = cmd + " " + args[1] + " " + args[2] + " "
|
||||
for i in range(3,len(args)) :
|
||||
rv = mySubProcess( cmdline + args[i], env )
|
||||
if rv :
|
||||
break
|
||||
else:
|
||||
rv = mySubProcess( cmdline, env )
|
||||
|
||||
return rv
|
||||
return rv
|
||||
|
||||
env['SPAWN'] = mySpawn
|
||||
env['SPAWN'] = mySpawn
|
||||
|
||||
ndk_platform=env['ndk_platform']
|
||||
ndk_platform=env['ndk_platform']
|
||||
|
||||
if env['android_arch'] not in ['armv7','armv6','x86']:
|
||||
env['android_arch']='armv7'
|
||||
if env['android_arch'] not in ['armv7','armv6','x86']:
|
||||
env['android_arch']='armv7'
|
||||
|
||||
if env['android_arch']=='x86':
|
||||
env['NDK_TARGET']=env['NDK_TARGET_X86']
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
if env['android_arch']=='x86':
|
||||
env['NDK_TARGET']=env['NDK_TARGET_X86']
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
|
||||
if env['PLATFORM'] == 'win32':
|
||||
env.Tool('gcc')
|
||||
env['SHLIBSUFFIX'] = '.so'
|
||||
if env['PLATFORM'] == 'win32':
|
||||
env.Tool('gcc')
|
||||
env['SHLIBSUFFIX'] = '.so'
|
||||
|
||||
|
||||
neon_text=""
|
||||
if env["android_arch"]=="armv7" and env['android_neon']=='yes':
|
||||
neon_text=" (with neon)"
|
||||
print("Godot Android!!!!! ("+env['android_arch']+")"+neon_text)
|
||||
neon_text=""
|
||||
if env["android_arch"]=="armv7" and env['android_neon']=='yes':
|
||||
neon_text=" (with neon)"
|
||||
print("Godot Android!!!!! ("+env['android_arch']+")"+neon_text)
|
||||
|
||||
env.Append(CPPPATH=['#platform/android'])
|
||||
env.Append(CPPPATH=['#platform/android'])
|
||||
|
||||
if env['android_arch']=='x86':
|
||||
env.extra_suffix=".x86"+env.extra_suffix
|
||||
elif env['android_arch']=='armv6':
|
||||
env.extra_suffix=".armv6"+env.extra_suffix
|
||||
elif env["android_arch"]=="armv7":
|
||||
if env['android_neon']=='yes':
|
||||
env.extra_suffix=".armv7.neon"+env.extra_suffix
|
||||
else:
|
||||
env.extra_suffix=".armv7"+env.extra_suffix
|
||||
if env['android_arch']=='x86':
|
||||
env.extra_suffix=".x86"+env.extra_suffix
|
||||
elif env['android_arch']=='armv6':
|
||||
env.extra_suffix=".armv6"+env.extra_suffix
|
||||
elif env["android_arch"]=="armv7":
|
||||
if env['android_neon']=='yes':
|
||||
env.extra_suffix=".armv7.neon"+env.extra_suffix
|
||||
else:
|
||||
env.extra_suffix=".armv7"+env.extra_suffix
|
||||
|
||||
gcc_path=env["ANDROID_NDK_ROOT"]+"/toolchains/"+env["NDK_TARGET"]+"/prebuilt/";
|
||||
gcc_path=env["ANDROID_NDK_ROOT"]+"/toolchains/"+env["NDK_TARGET"]+"/prebuilt/";
|
||||
|
||||
if (sys.platform.startswith("linux")):
|
||||
if (platform.machine().endswith('64')):
|
||||
gcc_path=gcc_path+"/linux-x86_64/bin"
|
||||
else:
|
||||
gcc_path=gcc_path+"/linux-x86/bin"
|
||||
elif (sys.platform.startswith("darwin")):
|
||||
gcc_path=gcc_path+"/darwin-x86_64/bin"
|
||||
env['SHLINKFLAGS'][1] = '-shared'
|
||||
env['SHLIBSUFFIX'] = '.so'
|
||||
elif (sys.platform.startswith('win')):
|
||||
if (platform.machine().endswith('64')):
|
||||
gcc_path=gcc_path+"/windows-x86_64/bin"
|
||||
else:
|
||||
gcc_path=gcc_path+"/windows-x86/bin"
|
||||
if (sys.platform.startswith("linux")):
|
||||
if (platform.machine().endswith('64')):
|
||||
gcc_path=gcc_path+"/linux-x86_64/bin"
|
||||
else:
|
||||
gcc_path=gcc_path+"/linux-x86/bin"
|
||||
elif (sys.platform.startswith("darwin")):
|
||||
gcc_path=gcc_path+"/darwin-x86_64/bin"
|
||||
env['SHLINKFLAGS'][1] = '-shared'
|
||||
env['SHLIBSUFFIX'] = '.so'
|
||||
elif (sys.platform.startswith('win')):
|
||||
if (platform.machine().endswith('64')):
|
||||
gcc_path=gcc_path+"/windows-x86_64/bin"
|
||||
else:
|
||||
gcc_path=gcc_path+"/windows-x86/bin"
|
||||
|
||||
env['ENV']['PATH'] = gcc_path+":"+env['ENV']['PATH']
|
||||
if env['android_arch']=='x86':
|
||||
env['CC'] = gcc_path+'/i686-linux-android-gcc'
|
||||
env['CXX'] = gcc_path+'/i686-linux-android-g++'
|
||||
env['AR'] = gcc_path+"/i686-linux-android-ar"
|
||||
env['RANLIB'] = gcc_path+"/i686-linux-android-ranlib"
|
||||
env['AS'] = gcc_path+"/i686-linux-android-as"
|
||||
else:
|
||||
env['CC'] = gcc_path+'/arm-linux-androideabi-gcc'
|
||||
env['CXX'] = gcc_path+'/arm-linux-androideabi-g++'
|
||||
env['AR'] = gcc_path+"/arm-linux-androideabi-ar"
|
||||
env['RANLIB'] = gcc_path+"/arm-linux-androideabi-ranlib"
|
||||
env['AS'] = gcc_path+"/arm-linux-androideabi-as"
|
||||
env['ENV']['PATH'] = gcc_path+":"+env['ENV']['PATH']
|
||||
if env['android_arch']=='x86':
|
||||
env['CC'] = gcc_path+'/i686-linux-android-gcc'
|
||||
env['CXX'] = gcc_path+'/i686-linux-android-g++'
|
||||
env['AR'] = gcc_path+"/i686-linux-android-ar"
|
||||
env['RANLIB'] = gcc_path+"/i686-linux-android-ranlib"
|
||||
env['AS'] = gcc_path+"/i686-linux-android-as"
|
||||
else:
|
||||
env['CC'] = gcc_path+'/arm-linux-androideabi-gcc'
|
||||
env['CXX'] = gcc_path+'/arm-linux-androideabi-g++'
|
||||
env['AR'] = gcc_path+"/arm-linux-androideabi-ar"
|
||||
env['RANLIB'] = gcc_path+"/arm-linux-androideabi-ranlib"
|
||||
env['AS'] = gcc_path+"/arm-linux-androideabi-as"
|
||||
|
||||
if env['android_arch']=='x86':
|
||||
env['ARCH'] = 'arch-x86'
|
||||
else:
|
||||
env['ARCH'] = 'arch-arm'
|
||||
if env['android_arch']=='x86':
|
||||
env['ARCH'] = 'arch-x86'
|
||||
else:
|
||||
env['ARCH'] = 'arch-arm'
|
||||
|
||||
import string
|
||||
#include path
|
||||
gcc_include=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH'] +"/usr/include"
|
||||
ld_sysroot=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH']
|
||||
#glue_include=env["ANDROID_NDK_ROOT"]+"/sources/android/native_app_glue"
|
||||
ld_path=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH']+"/usr/lib"
|
||||
env.Append(CPPPATH=[gcc_include])
|
||||
import string
|
||||
#include path
|
||||
gcc_include=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH'] +"/usr/include"
|
||||
ld_sysroot=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH']
|
||||
#glue_include=env["ANDROID_NDK_ROOT"]+"/sources/android/native_app_glue"
|
||||
ld_path=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH']+"/usr/lib"
|
||||
env.Append(CPPPATH=[gcc_include])
|
||||
# env['CCFLAGS'] = string.split('-DNO_THREADS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED ')
|
||||
|
||||
env['neon_enabled']=False
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__GLIBC__ -Wno-psabi -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
elif env["android_arch"]=="armv6":
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_6__ -D__GLIBC__ -Wno-psabi -march=armv6 -mfpu=vfp -mfloat-abi=softfp -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -D__GLIBC__ -Wno-psabi -march=armv7-a -mfloat-abi=softfp -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
if env['android_neon']=='yes':
|
||||
env['neon_enabled']=True
|
||||
env.Append(CCFLAGS=['-mfpu=neon','-D__ARM_NEON__'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-mfpu=vfpv3-d16'])
|
||||
env['neon_enabled']=False
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__GLIBC__ -Wno-psabi -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
elif env["android_arch"]=="armv6":
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_6__ -D__GLIBC__ -Wno-psabi -march=armv6 -mfpu=vfp -mfloat-abi=softfp -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(CCFLAGS=string.split('-DNO_STATVFS -fpic -ffunction-sections -funwind-tables -fstack-protector -fvisibility=hidden -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -D__GLIBC__ -Wno-psabi -march=armv7-a -mfloat-abi=softfp -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED'))
|
||||
if env['android_neon']=='yes':
|
||||
env['neon_enabled']=True
|
||||
env.Append(CCFLAGS=['-mfpu=neon','-D__ARM_NEON__'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-mfpu=vfpv3-d16'])
|
||||
|
||||
env.Append(LDPATH=[ld_path])
|
||||
env.Append(LIBS=['OpenSLES'])
|
||||
env.Append(LDPATH=[ld_path])
|
||||
env.Append(LIBS=['OpenSLES'])
|
||||
# env.Append(LIBS=['c','m','stdc++','log','EGL','GLESv1_CM','GLESv2','OpenSLES','supc++','android'])
|
||||
env.Append(LIBS=['EGL','OpenSLES','android'])
|
||||
env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2', 'z'])
|
||||
env.Append(LIBS=['EGL','OpenSLES','android'])
|
||||
env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2', 'z'])
|
||||
|
||||
env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
|
||||
env.Append(LINKFLAGS=["-Wl,-soname,libgodot_android.so"])
|
||||
env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
|
||||
env.Append(LINKFLAGS=["-Wl,-soname,libgodot_android.so"])
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2', '-ffast-math','-fomit-frame-pointer'])
|
||||
env.Append(CCFLAGS=['-O2', '-ffast-math','-fomit-frame-pointer'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2', '-ffast-math','-DDEBUG_ENABLED'])
|
||||
env.Append(CCFLAGS=['-O2', '-ffast-math','-DDEBUG_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-g1', '-Wall', '-O0', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-g1', '-Wall', '-O0', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
|
||||
|
||||
env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED', '-DNO_FCNTL','-DMPC_FIXED_POINT'])
|
||||
env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED', '-DNO_FCNTL','-DMPC_FIXED_POINT'])
|
||||
# env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT'])
|
||||
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
if (env["android_arch"]=="armv6" or env["android_arch"]=="armv7"):
|
||||
env.Append(CFLAGS=["-DOPUS_ARM_OPT"])
|
||||
env.opus_fixed_point="yes"
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
if (env["android_arch"]=="armv6" or env["android_arch"]=="armv7"):
|
||||
env.Append(CFLAGS=["-DOPUS_ARM_OPT"])
|
||||
env.opus_fixed_point="yes"
|
||||
|
||||
if (env['android_stl']=='yes'):
|
||||
#env.Append(CCFLAGS=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/system/include"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/include"])
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86"])
|
||||
elif env['android_arch']=='armv6':
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi"])
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a"])
|
||||
if (env['android_stl']=='yes'):
|
||||
#env.Append(CCFLAGS=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/system/include"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/include"])
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86"])
|
||||
elif env['android_arch']=='armv6':
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi"])
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include"])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a"])
|
||||
|
||||
env.Append(LIBS=["gnustl_static","supc++"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cpufeatures"])
|
||||
env.Append(LIBS=["gnustl_static","supc++"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cpufeatures"])
|
||||
|
||||
#env.Append(CCFLAGS=["-I"+env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/stlport/stlport"])
|
||||
#env.Append(CCFLAGS=["-I"+env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include"])
|
||||
#env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libstdc++.a"])
|
||||
else:
|
||||
#env.Append(CCFLAGS=["-I"+env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/stlport/stlport"])
|
||||
#env.Append(CCFLAGS=["-I"+env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include"])
|
||||
#env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libstdc++.a"])
|
||||
else:
|
||||
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/include"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cpufeatures"])
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86"])
|
||||
elif env["android_arch"]=="armv6":
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi"])
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a"])
|
||||
env.Append(LIBS=['gnustl_static'])
|
||||
env.Append(CCFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST'])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/include"])
|
||||
env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cpufeatures"])
|
||||
if env['android_arch']=='x86':
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86"])
|
||||
elif env["android_arch"]=="armv6":
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi"])
|
||||
elif env["android_arch"]=="armv7":
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a"])
|
||||
env.Append(LIBS=['gnustl_static'])
|
||||
env.Append(CCFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST'])
|
||||
|
||||
|
||||
import methods
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
import methods
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
|
||||
env.use_windows_spawn_fix()
|
||||
env.use_windows_spawn_fix()
|
||||
|
|
|
@ -4,19 +4,19 @@ Import('env')
|
|||
|
||||
bb10_lib = [
|
||||
|
||||
'bbutil.c',
|
||||
'os_bb10.cpp',
|
||||
'audio_driver_bb10.cpp',
|
||||
'godot_bb10.cpp',
|
||||
'payment_service.cpp',
|
||||
'bbutil.c',
|
||||
'os_bb10.cpp',
|
||||
'audio_driver_bb10.cpp',
|
||||
'godot_bb10.cpp',
|
||||
'payment_service.cpp',
|
||||
]
|
||||
|
||||
env_bps = env.Clone()
|
||||
if env['bb10_payment_service'] == "yes":
|
||||
env_bps.Append(CPPFLAGS=['-DPAYMENT_SERVICE_ENABLED'])
|
||||
env_bps.Append(CPPFLAGS=['-DPAYMENT_SERVICE_ENABLED'])
|
||||
|
||||
if env['bb10_lgles_override'] == "yes":
|
||||
env_bps.Append(CPPFLAGS=['-DBB10_LGLES_OVERRIDE'])
|
||||
env_bps.Append(CPPFLAGS=['-DBB10_LGLES_OVERRIDE'])
|
||||
|
||||
|
||||
prog = None
|
||||
|
|
|
@ -5,85 +5,85 @@ import methods
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "BlackBerry 10"
|
||||
return "BlackBerry 10"
|
||||
|
||||
def can_build():
|
||||
|
||||
import os
|
||||
if (not os.environ.has_key("QNX_TARGET")):
|
||||
return False
|
||||
return True
|
||||
import os
|
||||
if (not os.environ.has_key("QNX_TARGET")):
|
||||
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'),
|
||||
]
|
||||
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'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('module_theora_enabled', 'no'),
|
||||
]
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('module_theora_enabled', 'no'),
|
||||
]
|
||||
|
||||
def configure(env):
|
||||
|
||||
if env['PLATFORM'] == 'win32':
|
||||
env.Tool('mingw')
|
||||
env['SPAWN'] = methods.win32_spawn
|
||||
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['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['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.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['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(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()
|
||||
#env.Append(LINKFLAGS = string.split()
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O3','-DRELEASE_BUILD'])
|
||||
env.Append(CCFLAGS=['-O3','-DRELEASE_BUILD'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-g', '-O0','-DDEBUG_ENABLED', '-D_DEBUG'])
|
||||
env.Append(LINKFLAGS=['-g'])
|
||||
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'])
|
||||
env.Append(LIBS=['bps', 'pps', 'screen', 'socket', 'EGL', 'GLESv2', 'GLESv1_CM', 'm', 'asound'])
|
||||
|
||||
|
|
|
@ -3,25 +3,25 @@
|
|||
Import('env')
|
||||
|
||||
common_haiku = [
|
||||
'os_haiku.cpp',
|
||||
'context_gl_haiku.cpp',
|
||||
'haiku_application.cpp',
|
||||
'haiku_direct_window.cpp',
|
||||
'haiku_gl_view.cpp',
|
||||
'key_mapping_haiku.cpp',
|
||||
'audio_driver_media_kit.cpp'
|
||||
'os_haiku.cpp',
|
||||
'context_gl_haiku.cpp',
|
||||
'haiku_application.cpp',
|
||||
'haiku_direct_window.cpp',
|
||||
'haiku_gl_view.cpp',
|
||||
'key_mapping_haiku.cpp',
|
||||
'audio_driver_media_kit.cpp'
|
||||
]
|
||||
|
||||
target = env.Program(
|
||||
'#bin/godot',
|
||||
['godot_haiku.cpp'] + common_haiku
|
||||
'#bin/godot',
|
||||
['godot_haiku.cpp'] + common_haiku
|
||||
)
|
||||
|
||||
command = env.Command('#bin/godot.rsrc', '#platform/haiku/godot.rdef',
|
||||
['rc -o $TARGET $SOURCE'])
|
||||
['rc -o $TARGET $SOURCE'])
|
||||
|
||||
def addResourcesAction(target = None, source = None, env = None):
|
||||
return env.Execute('xres -o ' + File(target)[0].path + ' bin/godot.rsrc')
|
||||
return env.Execute('xres -o ' + File(target)[0].path + ' bin/godot.rsrc')
|
||||
|
||||
env.AddPostAction(target, addResourcesAction)
|
||||
env.Depends(target, command)
|
||||
|
|
|
@ -2,60 +2,60 @@ import os
|
|||
import sys
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "Haiku"
|
||||
return "Haiku"
|
||||
|
||||
def can_build():
|
||||
if (os.name != "posix"):
|
||||
return False
|
||||
if (os.name != "posix"):
|
||||
return False
|
||||
|
||||
if (sys.platform == "darwin"):
|
||||
return False
|
||||
if (sys.platform == "darwin"):
|
||||
return False
|
||||
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_opts():
|
||||
return [
|
||||
('debug_release', 'Add debug symbols to release version','no')
|
||||
]
|
||||
return [
|
||||
('debug_release', 'Add debug symbols to release version','no')
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
return [
|
||||
]
|
||||
return [
|
||||
]
|
||||
|
||||
def configure(env):
|
||||
is64 = sys.maxsize > 2**32
|
||||
is64 = sys.maxsize > 2**32
|
||||
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
|
||||
env.Append(CPPPATH = ['#platform/haiku'])
|
||||
env.Append(CPPPATH = ['#platform/haiku'])
|
||||
|
||||
env["CC"] = "gcc-x86"
|
||||
env["CXX"] = "g++-x86"
|
||||
env["CC"] = "gcc-x86"
|
||||
env["CXX"] = "g++-x86"
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O3','-ffast-math'])
|
||||
elif (env["target"]=="release_debug"):
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
elif (env["target"]=="debug"):
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
if (env["target"]=="release"):
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O3','-ffast-math'])
|
||||
elif (env["target"]=="release_debug"):
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
elif (env["target"]=="debug"):
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
#env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
|
||||
env.Append(CPPFLAGS = ['-DPTHREAD_NO_RENAME']) # TODO: enable when we have pthread_setname_np
|
||||
env.Append(CPPFLAGS = ['-DOPENGL_ENABLED', '-DMEDIA_KIT_ENABLED'])
|
||||
env.Append(CPPFLAGS = ['-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DGLES_OVER_GL'])
|
||||
env.Append(LIBS = ['be', 'game', 'media', 'network', 'bnetapi', 'z', 'GL'])
|
||||
#env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
|
||||
env.Append(CPPFLAGS = ['-DPTHREAD_NO_RENAME']) # TODO: enable when we have pthread_setname_np
|
||||
env.Append(CPPFLAGS = ['-DOPENGL_ENABLED', '-DMEDIA_KIT_ENABLED'])
|
||||
env.Append(CPPFLAGS = ['-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DGLES_OVER_GL'])
|
||||
env.Append(LIBS = ['be', 'game', 'media', 'network', 'bnetapi', 'z', 'GL'])
|
||||
|
||||
import methods
|
||||
env.Append(BUILDERS = {'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
env.Append(BUILDERS = {'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
env.Append(BUILDERS = {'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
import methods
|
||||
env.Append(BUILDERS = {'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
env.Append(BUILDERS = {'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
env.Append(BUILDERS = {'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl')})
|
||||
|
|
|
@ -4,19 +4,19 @@ Import('env')
|
|||
|
||||
iphone_lib = [
|
||||
|
||||
'os_iphone.cpp',
|
||||
#'rasterizer_iphone.cpp',
|
||||
'audio_driver_iphone.cpp',
|
||||
'sem_iphone.cpp',
|
||||
'gl_view.mm',
|
||||
'main.m',
|
||||
'app_delegate.mm',
|
||||
'view_controller.mm',
|
||||
'game_center.mm',
|
||||
'in_app_store.mm',
|
||||
'icloud.mm',
|
||||
#'Appirater.m',
|
||||
'ios.mm',
|
||||
'os_iphone.cpp',
|
||||
#'rasterizer_iphone.cpp',
|
||||
'audio_driver_iphone.cpp',
|
||||
'sem_iphone.cpp',
|
||||
'gl_view.mm',
|
||||
'main.m',
|
||||
'app_delegate.mm',
|
||||
'view_controller.mm',
|
||||
'game_center.mm',
|
||||
'in_app_store.mm',
|
||||
'icloud.mm',
|
||||
#'Appirater.m',
|
||||
'ios.mm',
|
||||
]
|
||||
|
||||
#env.Depends('#core/math/vector3.h', 'vector3_psp.h')
|
||||
|
@ -27,7 +27,7 @@ env_ios = env.Clone();
|
|||
|
||||
|
||||
if env['ios_gles22_override'] == "yes":
|
||||
env_ios.Append(CPPFLAGS=['-DGLES2_OVERRIDE'])
|
||||
env_ios.Append(CPPFLAGS=['-DGLES2_OVERRIDE'])
|
||||
|
||||
|
||||
#if env['ios_appirater'] == "yes":
|
||||
|
|
|
@ -3,187 +3,187 @@ import sys
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "iOS"
|
||||
return "iOS"
|
||||
|
||||
def can_build():
|
||||
|
||||
import sys
|
||||
import os
|
||||
if sys.platform == 'darwin' or os.environ.has_key("OSXCROSS_IOS"):
|
||||
return True
|
||||
import sys
|
||||
import os
|
||||
if sys.platform == 'darwin' or os.environ.has_key("OSXCROSS_IOS"):
|
||||
return True
|
||||
|
||||
return False
|
||||
return False
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
('IPHONEPLATFORM', 'name of the iphone platform', 'iPhoneOS'),
|
||||
('IPHONEPATH', 'the path to iphone toolchain', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain'),
|
||||
('IPHONESDK', 'path to the iphone SDK', '/Applications/Xcode.app/Contents/Developer/Platforms/${IPHONEPLATFORM}.platform/Developer/SDKs/${IPHONEPLATFORM}.sdk/'),
|
||||
('game_center', 'Support for game center', 'yes'),
|
||||
('store_kit', 'Support for in-app store', 'yes'),
|
||||
('icloud', 'Support for iCloud', 'yes'),
|
||||
('ios_gles22_override', 'Force GLES2.0 on iOS', 'yes'),
|
||||
('ios_appirater', 'Enable Appirater', 'no'),
|
||||
('ios_exceptions', 'Use exceptions when compiling on playbook', 'yes'),
|
||||
('ios_triple', 'Triple for ios toolchain', ''),
|
||||
('ios_sim', 'Build simulator binary', 'no'),
|
||||
]
|
||||
return [
|
||||
('IPHONEPLATFORM', 'name of the iphone platform', 'iPhoneOS'),
|
||||
('IPHONEPATH', 'the path to iphone toolchain', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain'),
|
||||
('IPHONESDK', 'path to the iphone SDK', '/Applications/Xcode.app/Contents/Developer/Platforms/${IPHONEPLATFORM}.platform/Developer/SDKs/${IPHONEPLATFORM}.sdk/'),
|
||||
('game_center', 'Support for game center', 'yes'),
|
||||
('store_kit', 'Support for in-app store', 'yes'),
|
||||
('icloud', 'Support for iCloud', 'yes'),
|
||||
('ios_gles22_override', 'Force GLES2.0 on iOS', 'yes'),
|
||||
('ios_appirater', 'Enable Appirater', 'no'),
|
||||
('ios_exceptions', 'Use exceptions when compiling on playbook', 'yes'),
|
||||
('ios_triple', 'Triple for ios toolchain', ''),
|
||||
('ios_sim', 'Build simulator binary', 'no'),
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('webp', 'yes'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl','builtin'), #use builtin openssl
|
||||
]
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('webp', 'yes'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl','builtin'), #use builtin openssl
|
||||
]
|
||||
|
||||
|
||||
|
||||
def configure(env):
|
||||
|
||||
env.Append(CPPPATH=['#platform/iphone'])
|
||||
env.Append(CPPPATH=['#platform/iphone'])
|
||||
|
||||
env['ENV']['PATH'] = env['IPHONEPATH']+"/Developer/usr/bin/:"+env['ENV']['PATH']
|
||||
env['ENV']['PATH'] = env['IPHONEPATH']+"/Developer/usr/bin/:"+env['ENV']['PATH']
|
||||
|
||||
env['CC'] = '$IPHONEPATH/usr/bin/${ios_triple}clang'
|
||||
env['CXX'] = '$IPHONEPATH/usr/bin/${ios_triple}clang++'
|
||||
env['AR'] = '$IPHONEPATH/usr/bin/${ios_triple}ar'
|
||||
env['RANLIB'] = '$IPHONEPATH/usr/bin/${ios_triple}ranlib'
|
||||
env['CC'] = '$IPHONEPATH/usr/bin/${ios_triple}clang'
|
||||
env['CXX'] = '$IPHONEPATH/usr/bin/${ios_triple}clang++'
|
||||
env['AR'] = '$IPHONEPATH/usr/bin/${ios_triple}ar'
|
||||
env['RANLIB'] = '$IPHONEPATH/usr/bin/${ios_triple}ranlib'
|
||||
|
||||
import string
|
||||
if (env["ios_sim"]=="yes" or env["arch"] == "x86"): # i386, simulator
|
||||
env["arch"]="x86"
|
||||
env["bits"]="32"
|
||||
env['CCFLAGS'] = string.split('-arch i386 -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fasm-blocks -Wall -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -isysroot $IPHONESDK -mios-simulator-version-min=4.3 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"')
|
||||
elif (env["arch"]=="arm64"): # arm64
|
||||
env["bits"] = "64"
|
||||
env['CCFLAGS'] = string.split('-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -fvisibility=hidden -Wno-sign-conversion -MMD -MT dependencies -miphoneos-version-min=5.1.1 -isysroot $IPHONESDK')
|
||||
env.Append(CPPFLAGS=['-DNEED_LONG_INT'])
|
||||
env.Append(CPPFLAGS=['-DLIBYUV_DISABLE_NEON'])
|
||||
else: # armv7
|
||||
env["arch"] = "arm"
|
||||
env["bits"] = "32"
|
||||
env['CCFLAGS'] = string.split('-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=5.1.1 -MMD -MT dependencies -isysroot $IPHONESDK')
|
||||
import string
|
||||
if (env["ios_sim"]=="yes" or env["arch"] == "x86"): # i386, simulator
|
||||
env["arch"]="x86"
|
||||
env["bits"]="32"
|
||||
env['CCFLAGS'] = string.split('-arch i386 -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fasm-blocks -Wall -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -isysroot $IPHONESDK -mios-simulator-version-min=4.3 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"')
|
||||
elif (env["arch"]=="arm64"): # arm64
|
||||
env["bits"] = "64"
|
||||
env['CCFLAGS'] = string.split('-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -fvisibility=hidden -Wno-sign-conversion -MMD -MT dependencies -miphoneos-version-min=5.1.1 -isysroot $IPHONESDK')
|
||||
env.Append(CPPFLAGS=['-DNEED_LONG_INT'])
|
||||
env.Append(CPPFLAGS=['-DLIBYUV_DISABLE_NEON'])
|
||||
else: # armv7
|
||||
env["arch"] = "arm"
|
||||
env["bits"] = "32"
|
||||
env['CCFLAGS'] = string.split('-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=5.1.1 -MMD -MT dependencies -isysroot $IPHONESDK')
|
||||
|
||||
if (env["arch"]=="x86"):
|
||||
env['IPHONEPLATFORM'] = 'iPhoneSimulator'
|
||||
env.Append(LINKFLAGS=['-arch', 'i386', '-mios-simulator-version-min=4.3',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
#'-mmacosx-version-min=10.6',
|
||||
'-Xlinker',
|
||||
'-objc_abi_version',
|
||||
'-Xlinker', '2',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'CoreMedia',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'Security',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-F$IPHONESDK',
|
||||
])
|
||||
elif (env["arch"]=="arm64"):
|
||||
env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
#'-stdlib=libc++',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-framework', 'Security',
|
||||
#'-framework', 'AdSupport',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreMedia',
|
||||
])
|
||||
else:
|
||||
env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-framework', 'Security',
|
||||
#'-framework', 'AdSupport',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreMedia',
|
||||
])
|
||||
if (env["arch"]=="x86"):
|
||||
env['IPHONEPLATFORM'] = 'iPhoneSimulator'
|
||||
env.Append(LINKFLAGS=['-arch', 'i386', '-mios-simulator-version-min=4.3',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
#'-mmacosx-version-min=10.6',
|
||||
'-Xlinker',
|
||||
'-objc_abi_version',
|
||||
'-Xlinker', '2',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'CoreMedia',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'Security',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-F$IPHONESDK',
|
||||
])
|
||||
elif (env["arch"]=="arm64"):
|
||||
env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
#'-stdlib=libc++',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-framework', 'Security',
|
||||
#'-framework', 'AdSupport',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreMedia',
|
||||
])
|
||||
else:
|
||||
env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1',
|
||||
'-isysroot', '$IPHONESDK',
|
||||
'-framework', 'Foundation',
|
||||
'-framework', 'UIKit',
|
||||
'-framework', 'CoreGraphics',
|
||||
'-framework', 'OpenGLES',
|
||||
'-framework', 'QuartzCore',
|
||||
'-framework', 'CoreAudio',
|
||||
'-framework', 'AudioToolbox',
|
||||
'-framework', 'SystemConfiguration',
|
||||
'-framework', 'Security',
|
||||
#'-framework', 'AdSupport',
|
||||
'-framework', 'MediaPlayer',
|
||||
'-framework', 'AVFoundation',
|
||||
'-framework', 'CoreMedia',
|
||||
])
|
||||
|
||||
if env['game_center'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-fblocks', '-DGAME_CENTER_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-framework', 'GameKit'])
|
||||
if env['game_center'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-fblocks', '-DGAME_CENTER_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-framework', 'GameKit'])
|
||||
|
||||
if env['store_kit'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DSTOREKIT_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-framework', 'StoreKit'])
|
||||
if env['store_kit'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DSTOREKIT_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-framework', 'StoreKit'])
|
||||
|
||||
if env['icloud'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DICLOUD_ENABLED'])
|
||||
if env['icloud'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DICLOUD_ENABLED'])
|
||||
|
||||
env.Append(CPPPATH = ['$IPHONESDK/usr/include', '$IPHONESDK/System/Library/Frameworks/OpenGLES.framework/Headers', '$IPHONESDK/System/Library/Frameworks/AudioUnit.framework/Headers'])
|
||||
env.Append(CPPPATH = ['$IPHONESDK/usr/include', '$IPHONESDK/System/Library/Frameworks/OpenGLES.framework/Headers', '$IPHONESDK/System/Library/Frameworks/AudioUnit.framework/Headers'])
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O3', '-DNS_BLOCK_ASSERTIONS=1','-Wall', '-gdwarf-2']) # removed -ffast-math
|
||||
env.Append(LINKFLAGS=['-O3']) #
|
||||
env.Append(CCFLAGS=['-O3', '-DNS_BLOCK_ASSERTIONS=1','-Wall', '-gdwarf-2']) # removed -ffast-math
|
||||
env.Append(LINKFLAGS=['-O3']) #
|
||||
|
||||
elif env["target"] == "release_debug":
|
||||
env.Append(CCFLAGS=['-Os', '-DNS_BLOCK_ASSERTIONS=1','-Wall','-DDEBUG_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-Os'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
|
||||
elif env["target"] == "release_debug":
|
||||
env.Append(CCFLAGS=['-Os', '-DNS_BLOCK_ASSERTIONS=1','-Wall','-DDEBUG_ENABLED'])
|
||||
env.Append(LINKFLAGS=['-Os'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-DDEBUG=1', '-gdwarf-2', '-Wall', '-O0', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-DDEBUG=1', '-gdwarf-2', '-Wall', '-O0', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
elif (env["target"]=="profile"):
|
||||
elif (env["target"]=="profile"):
|
||||
|
||||
env.Append(CCFLAGS=['-g','-pg', '-Os'])
|
||||
env.Append(LINKFLAGS=['-pg'])
|
||||
env.Append(CCFLAGS=['-g','-pg', '-Os'])
|
||||
env.Append(LINKFLAGS=['-pg'])
|
||||
|
||||
if (env["ios_sim"]=="yes"): #TODO: Check if needed?
|
||||
env['ENV']['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
|
||||
env['ENV']['CODESIGN_ALLOCATE'] = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate'
|
||||
env.Append(CPPFLAGS=['-DIPHONE_ENABLED', '-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DMPC_FIXED_POINT'])
|
||||
if (env["ios_sim"]=="yes"): #TODO: Check if needed?
|
||||
env['ENV']['MACOSX_DEPLOYMENT_TARGET'] = '10.6'
|
||||
env['ENV']['CODESIGN_ALLOCATE'] = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate'
|
||||
env.Append(CPPFLAGS=['-DIPHONE_ENABLED', '-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DMPC_FIXED_POINT'])
|
||||
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
env.opus_fixed_point="yes"
|
||||
if env["arch"]=="x86":
|
||||
pass
|
||||
elif(env["arch"]=="arm64"):
|
||||
env.Append(CFLAGS=["-DOPUS_ARM64_OPT"])
|
||||
else:
|
||||
env.Append(CFLAGS=["-DOPUS_ARM_OPT"])
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
env.opus_fixed_point="yes"
|
||||
if env["arch"]=="x86":
|
||||
pass
|
||||
elif(env["arch"]=="arm64"):
|
||||
env.Append(CFLAGS=["-DOPUS_ARM64_OPT"])
|
||||
else:
|
||||
env.Append(CFLAGS=["-DOPUS_ARM_OPT"])
|
||||
|
||||
if env['ios_exceptions'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-fexceptions'])
|
||||
else:
|
||||
env.Append(CPPFLAGS=['-fno-exceptions'])
|
||||
#env['neon_enabled']=True
|
||||
env['S_compiler'] = '$IPHONEPATH/Developer/usr/bin/gcc'
|
||||
if env['ios_exceptions'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-fexceptions'])
|
||||
else:
|
||||
env.Append(CPPFLAGS=['-fno-exceptions'])
|
||||
#env['neon_enabled']=True
|
||||
env['S_compiler'] = '$IPHONEPATH/Developer/usr/bin/gcc'
|
||||
|
||||
import methods
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
import methods
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
|
|
|
@ -3,20 +3,20 @@
|
|||
Import('env')
|
||||
|
||||
javascript_files = [
|
||||
"os_javascript.cpp",
|
||||
"audio_driver_javascript.cpp",
|
||||
"javascript_main.cpp",
|
||||
"audio_server_javascript.cpp",
|
||||
"javascript_eval.cpp"
|
||||
"os_javascript.cpp",
|
||||
"audio_driver_javascript.cpp",
|
||||
"javascript_main.cpp",
|
||||
"audio_server_javascript.cpp",
|
||||
"javascript_eval.cpp"
|
||||
]
|
||||
|
||||
env_javascript = env.Clone()
|
||||
if env['target'] == "profile":
|
||||
env_javascript.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
|
||||
env_javascript.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
|
||||
|
||||
javascript_objects=[]
|
||||
for x in javascript_files:
|
||||
javascript_objects.append( env_javascript.Object( x ) )
|
||||
javascript_objects.append( env_javascript.Object( x ) )
|
||||
|
||||
env.Append(LINKFLAGS=["-s","EXPORTED_FUNCTIONS=\"['_main','_audio_server_mix_function','_main_after_fs_sync']\""])
|
||||
env.Append(LINKFLAGS=["--shell-file",'"platform/javascript/godot_shell.html"'])
|
||||
|
|
|
@ -3,103 +3,103 @@ import sys
|
|||
import string
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "JavaScript"
|
||||
return "JavaScript"
|
||||
|
||||
def can_build():
|
||||
|
||||
import os
|
||||
if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
|
||||
return False
|
||||
return True
|
||||
import os
|
||||
if (not os.environ.has_key("EMSCRIPTEN_ROOT")):
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
['wasm','Compile to WebAssembly','no'],
|
||||
['javascript_eval','Enable JavaScript eval interface','yes'],
|
||||
]
|
||||
return [
|
||||
['wasm','Compile to WebAssembly','no'],
|
||||
['javascript_eval','Enable JavaScript eval interface','yes'],
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('module_etc1_enabled', 'no'),
|
||||
('module_mpc_enabled', 'no'),
|
||||
('module_theora_enabled', 'no'),
|
||||
]
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('module_etc1_enabled', 'no'),
|
||||
('module_mpc_enabled', 'no'),
|
||||
('module_theora_enabled', 'no'),
|
||||
]
|
||||
|
||||
|
||||
|
||||
def configure(env):
|
||||
env['ENV'] = os.environ;
|
||||
env.use_windows_spawn_fix('javascript')
|
||||
env['ENV'] = os.environ;
|
||||
env.use_windows_spawn_fix('javascript')
|
||||
|
||||
env.Append(CPPPATH=['#platform/javascript'])
|
||||
env.Append(CPPPATH=['#platform/javascript'])
|
||||
|
||||
em_path=os.environ["EMSCRIPTEN_ROOT"]
|
||||
em_path=os.environ["EMSCRIPTEN_ROOT"]
|
||||
|
||||
env['ENV']['PATH'] = em_path+":"+env['ENV']['PATH']
|
||||
env['CC'] = em_path+'/emcc'
|
||||
env['CXX'] = em_path+'/emcc'
|
||||
#env['AR'] = em_path+"/emar"
|
||||
env['AR'] = em_path+"/emcc"
|
||||
env['ARFLAGS'] = "-o"
|
||||
env['ENV']['PATH'] = em_path+":"+env['ENV']['PATH']
|
||||
env['CC'] = em_path+'/emcc'
|
||||
env['CXX'] = em_path+'/emcc'
|
||||
#env['AR'] = em_path+"/emar"
|
||||
env['AR'] = em_path+"/emcc"
|
||||
env['ARFLAGS'] = "-o"
|
||||
|
||||
# env['RANLIB'] = em_path+"/emranlib"
|
||||
env['RANLIB'] = em_path + "/emcc"
|
||||
env['OBJSUFFIX'] = '.bc'
|
||||
env['LIBSUFFIX'] = '.bc'
|
||||
env['CCCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
env['CXXCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
env['RANLIB'] = em_path + "/emcc"
|
||||
env['OBJSUFFIX'] = '.bc'
|
||||
env['LIBSUFFIX'] = '.bc'
|
||||
env['CCCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
env['CXXCOM'] = "$CC -o $TARGET $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"
|
||||
|
||||
# env.Append(LIBS=['c','m','stdc++','log','GLESv1_CM','GLESv2'])
|
||||
|
||||
# env["LINKFLAGS"]= string.split(" -g --sysroot="+ld_sysroot+" -Wl,--no-undefined -Wl,-z,noexecstack ")
|
||||
|
||||
if (env["target"]=="release"):
|
||||
env.Append(CCFLAGS=['-O2'])
|
||||
elif (env["target"]=="release_debug"):
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
elif (env["target"]=="debug"):
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
|
||||
#env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-g4', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
|
||||
if (env["target"]=="release"):
|
||||
env.Append(CCFLAGS=['-O2'])
|
||||
elif (env["target"]=="release_debug"):
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
elif (env["target"]=="debug"):
|
||||
env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-O2', '-DDEBUG_ENABLED'])
|
||||
#env.Append(CCFLAGS=['-D_DEBUG', '-Wall', '-g4', '-DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
|
||||
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
env.opus_fixed_point = "yes"
|
||||
# TODO: Move that to opus module's config
|
||||
if("module_opus_enabled" in env and env["module_opus_enabled"] != "no"):
|
||||
env.opus_fixed_point = "yes"
|
||||
|
||||
env.Append(CPPFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST','-fno-rtti'])
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DPTHREAD_NO_RENAME', '-DNO_FCNTL','-DMPC_FIXED_POINT','-DTYPED_METHOD_BIND','-DNO_THREADS'])
|
||||
env.Append(CPPFLAGS=['-DGLES2_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DGLES_NO_CLIENT_ARRAYS'])
|
||||
env.Append(CPPFLAGS=['-s','FULL_ES2=1'])
|
||||
env.Append(CPPFLAGS=["-fno-exceptions",'-DNO_SAFE_CAST','-fno-rtti'])
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_ENABLED', '-DUNIX_ENABLED', '-DPTHREAD_NO_RENAME', '-DNO_FCNTL','-DMPC_FIXED_POINT','-DTYPED_METHOD_BIND','-DNO_THREADS'])
|
||||
env.Append(CPPFLAGS=['-DGLES2_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DGLES_NO_CLIENT_ARRAYS'])
|
||||
env.Append(CPPFLAGS=['-s','FULL_ES2=1'])
|
||||
# env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT'])
|
||||
|
||||
if env['wasm'] == 'yes':
|
||||
env.Append(LINKFLAGS=['-s','BINARYEN=1'])
|
||||
env.Append(LINKFLAGS=['-s','\'BINARYEN_METHOD="native-wasm"\''])
|
||||
env["PROGSUFFIX"]+=".webassembly"
|
||||
else:
|
||||
env.Append(CPPFLAGS=['-s','ASM_JS=1'])
|
||||
env.Append(LINKFLAGS=['-s','ASM_JS=1'])
|
||||
if env['wasm'] == 'yes':
|
||||
env.Append(LINKFLAGS=['-s','BINARYEN=1'])
|
||||
env.Append(LINKFLAGS=['-s','\'BINARYEN_METHOD="native-wasm"\''])
|
||||
env["PROGSUFFIX"]+=".webassembly"
|
||||
else:
|
||||
env.Append(CPPFLAGS=['-s','ASM_JS=1'])
|
||||
env.Append(LINKFLAGS=['-s','ASM_JS=1'])
|
||||
|
||||
if env['javascript_eval'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_EVAL_ENABLED'])
|
||||
if env['javascript_eval'] == 'yes':
|
||||
env.Append(CPPFLAGS=['-DJAVASCRIPT_EVAL_ENABLED'])
|
||||
|
||||
env.Append(LINKFLAGS=['-O2'])
|
||||
#env.Append(LINKFLAGS=['-g4'])
|
||||
env.Append(LINKFLAGS=['-O2'])
|
||||
#env.Append(LINKFLAGS=['-g4'])
|
||||
|
||||
#print "CCCOM is:", env.subst('$CCCOM')
|
||||
#print "P: ", env['p'], " Platofrm: ", env['platform']
|
||||
#print "CCCOM is:", env.subst('$CCCOM')
|
||||
#print "P: ", env['p'], " Platofrm: ", env['platform']
|
||||
|
||||
import methods
|
||||
import methods
|
||||
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
Import('env')
|
||||
|
||||
files = [
|
||||
'os_osx.mm',
|
||||
'godot_main_osx.mm',
|
||||
'audio_driver_osx.cpp',
|
||||
'sem_osx.cpp',
|
||||
# 'context_gl_osx.cpp',
|
||||
'dir_access_osx.mm',
|
||||
'joystick_osx.cpp',
|
||||
]
|
||||
'os_osx.mm',
|
||||
'godot_main_osx.mm',
|
||||
'audio_driver_osx.cpp',
|
||||
'sem_osx.cpp',
|
||||
# 'context_gl_osx.cpp',
|
||||
'dir_access_osx.mm',
|
||||
'joystick_osx.cpp',
|
||||
]
|
||||
|
||||
env.Program('#bin/godot',files)
|
||||
|
|
|
@ -4,99 +4,99 @@ import sys
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "OSX"
|
||||
return "OSX"
|
||||
|
||||
def can_build():
|
||||
|
||||
if (sys.platform == "darwin" or os.environ.has_key("OSXCROSS_ROOT")):
|
||||
return True
|
||||
if (sys.platform == "darwin" or os.environ.has_key("OSXCROSS_ROOT")):
|
||||
return True
|
||||
|
||||
|
||||
return False
|
||||
return False
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
('force_64_bits','Force 64 bits binary','no'),
|
||||
('osxcross_sdk','OSXCross SDK version','darwin14'),
|
||||
return [
|
||||
('force_64_bits','Force 64 bits binary','no'),
|
||||
('osxcross_sdk','OSXCross SDK version','darwin14'),
|
||||
|
||||
]
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
]
|
||||
return [
|
||||
]
|
||||
|
||||
|
||||
|
||||
def configure(env):
|
||||
|
||||
env.Append(CPPPATH=['#platform/osx'])
|
||||
env.Append(CPPPATH=['#platform/osx'])
|
||||
|
||||
if (env["bits"]=="default"):
|
||||
env["bits"]="32"
|
||||
if (env["bits"]=="default"):
|
||||
env["bits"]="32"
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer','-ftree-vectorize','-msse2'])
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer','-ftree-vectorize','-msse2'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-g3', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CCFLAGS=['-g3', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
|
||||
|
||||
if (not os.environ.has_key("OSXCROSS_ROOT")):
|
||||
#regular native build
|
||||
if (env["bits"]=="64"):
|
||||
env.Append(CCFLAGS=['-arch', 'x86_64'])
|
||||
env.Append(LINKFLAGS=['-arch', 'x86_64'])
|
||||
elif (env["bits"]=="32"):
|
||||
env.Append(CCFLAGS=['-arch', 'i386'])
|
||||
env.Append(LINKFLAGS=['-arch', 'i386'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
||||
env.Append(LINKFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
||||
else:
|
||||
#osxcross build
|
||||
root=os.environ.get("OSXCROSS_ROOT",0)
|
||||
if env["bits"]=="64":
|
||||
basecmd=root+"/target/bin/x86_64-apple-"+env["osxcross_sdk"]+"-"
|
||||
else:
|
||||
basecmd=root+"/target/bin/i386-apple-"+env["osxcross_sdk"]+"-"
|
||||
if (not os.environ.has_key("OSXCROSS_ROOT")):
|
||||
#regular native build
|
||||
if (env["bits"]=="64"):
|
||||
env.Append(CCFLAGS=['-arch', 'x86_64'])
|
||||
env.Append(LINKFLAGS=['-arch', 'x86_64'])
|
||||
elif (env["bits"]=="32"):
|
||||
env.Append(CCFLAGS=['-arch', 'i386'])
|
||||
env.Append(LINKFLAGS=['-arch', 'i386'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
||||
env.Append(LINKFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
|
||||
else:
|
||||
#osxcross build
|
||||
root=os.environ.get("OSXCROSS_ROOT",0)
|
||||
if env["bits"]=="64":
|
||||
basecmd=root+"/target/bin/x86_64-apple-"+env["osxcross_sdk"]+"-"
|
||||
else:
|
||||
basecmd=root+"/target/bin/i386-apple-"+env["osxcross_sdk"]+"-"
|
||||
|
||||
|
||||
env['CC'] = basecmd+"cc"
|
||||
env['CXX'] = basecmd+"c++"
|
||||
env['AR'] = basecmd+"ar"
|
||||
env['RANLIB'] = basecmd+"ranlib"
|
||||
env['AS'] = basecmd+"as"
|
||||
env['CC'] = basecmd+"cc"
|
||||
env['CXX'] = basecmd+"c++"
|
||||
env['AR'] = basecmd+"ar"
|
||||
env['RANLIB'] = basecmd+"ranlib"
|
||||
env['AS'] = basecmd+"as"
|
||||
|
||||
|
||||
env.Append(CPPFLAGS=["-DAPPLE_STYLE_KEYS"])
|
||||
env.Append(CPPFLAGS=['-DUNIX_ENABLED','-DGLES2_ENABLED','-DOSX_ENABLED'])
|
||||
env.Append(LIBS=['pthread'])
|
||||
#env.Append(CPPFLAGS=['-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-mmacosx-version-min=10.4'])
|
||||
#env.Append(LINKFLAGS=['-mmacosx-version-min=10.4', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk'])
|
||||
env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-framework', 'OpenGL', '-framework', 'AGL', '-framework', 'AudioUnit','-lz', '-framework', 'IOKit', '-framework', 'ForceFeedback'])
|
||||
env.Append(CPPFLAGS=["-DAPPLE_STYLE_KEYS"])
|
||||
env.Append(CPPFLAGS=['-DUNIX_ENABLED','-DGLES2_ENABLED','-DOSX_ENABLED'])
|
||||
env.Append(LIBS=['pthread'])
|
||||
#env.Append(CPPFLAGS=['-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-mmacosx-version-min=10.4'])
|
||||
#env.Append(LINKFLAGS=['-mmacosx-version-min=10.4', '-isysroot', '/Developer/SDKs/MacOSX10.4u.sdk', '-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk'])
|
||||
env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-framework', 'OpenGL', '-framework', 'AGL', '-framework', 'AudioUnit','-lz', '-framework', 'IOKit', '-framework', 'ForceFeedback'])
|
||||
|
||||
if (env["CXX"]=="clang++"):
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env["CC"]="clang"
|
||||
env["LD"]="clang++"
|
||||
if (env["CXX"]=="clang++"):
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env["CC"]="clang"
|
||||
env["LD"]="clang++"
|
||||
|
||||
import methods
|
||||
import methods
|
||||
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
|
|
|
@ -4,7 +4,7 @@ Import('env')
|
|||
|
||||
|
||||
common_server=[\
|
||||
"os_server.cpp",\
|
||||
"os_server.cpp",\
|
||||
]
|
||||
|
||||
env.Program('#bin/godot_server',['godot_server.cpp']+common_server)
|
||||
|
|
|
@ -4,73 +4,73 @@ import sys
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "Server"
|
||||
return "Server"
|
||||
|
||||
|
||||
def can_build():
|
||||
|
||||
if (os.name!="posix"):
|
||||
return False
|
||||
if (os.name!="posix"):
|
||||
return False
|
||||
|
||||
return True # enabled
|
||||
return True # enabled
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
('use_llvm','Use llvm compiler','no'),
|
||||
('force_32_bits','Force 32 bits binary','no')
|
||||
]
|
||||
return [
|
||||
('use_llvm','Use llvm compiler','no'),
|
||||
('force_32_bits','Force 32 bits binary','no')
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
]
|
||||
return [
|
||||
]
|
||||
|
||||
|
||||
|
||||
def configure(env):
|
||||
|
||||
env.Append(CPPPATH=['#platform/server'])
|
||||
if (env["use_llvm"]=="yes"):
|
||||
env["CC"]="clang"
|
||||
env["CXX"]="clang++"
|
||||
env["LD"]="clang++"
|
||||
env.Append(CPPPATH=['#platform/server'])
|
||||
if (env["use_llvm"]=="yes"):
|
||||
env["CC"]="clang"
|
||||
env["CXX"]="clang++"
|
||||
env["LD"]="clang++"
|
||||
|
||||
is64=sys.maxsize > 2**32
|
||||
is64=sys.maxsize > 2**32
|
||||
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
|
||||
|
||||
#if (env["tools"]=="no"):
|
||||
# #no tools suffix
|
||||
# env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
|
||||
# env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
|
||||
#if (env["tools"]=="no"):
|
||||
# #no tools suffix
|
||||
# env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
|
||||
# env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
|
||||
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer'])
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
env.Append(CPPFLAGS=['-DSERVER_ENABLED','-DUNIX_ENABLED'])
|
||||
env.Append(LIBS=['pthread','z']) #TODO detect linux/BSD!
|
||||
env.Append(CPPFLAGS=['-DSERVER_ENABLED','-DUNIX_ENABLED'])
|
||||
env.Append(LIBS=['pthread','z']) #TODO detect linux/BSD!
|
||||
|
||||
if (env["CXX"]=="clang++"):
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env["CC"]="clang"
|
||||
env["LD"]="clang++"
|
||||
if (env["CXX"]=="clang++"):
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env["CC"]="clang"
|
||||
env["LD"]="clang++"
|
||||
|
||||
|
|
|
@ -4,14 +4,14 @@ Import('env')
|
|||
|
||||
|
||||
common_win=[
|
||||
"context_gl_win.cpp",
|
||||
"os_windows.cpp",
|
||||
"ctxgl_procaddr.cpp",
|
||||
"key_mapping_win.cpp",
|
||||
"tcp_server_winsock.cpp",
|
||||
"packet_peer_udp_winsock.cpp",
|
||||
"stream_peer_winsock.cpp",
|
||||
"joystick.cpp",
|
||||
"context_gl_win.cpp",
|
||||
"os_windows.cpp",
|
||||
"ctxgl_procaddr.cpp",
|
||||
"key_mapping_win.cpp",
|
||||
"tcp_server_winsock.cpp",
|
||||
"packet_peer_udp_winsock.cpp",
|
||||
"stream_peer_winsock.cpp",
|
||||
"joystick.cpp",
|
||||
]
|
||||
|
||||
restarget="godot_res"+env["OBJSUFFIX"]
|
||||
|
@ -24,6 +24,6 @@ env.Program('#bin/godot',['godot_win.cpp']+common_win,PROGSUFFIX=env["PROGSUFFIX
|
|||
|
||||
# Microsoft Visual Studio Project Generation
|
||||
if (env['vsproj'])=="yes":
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/godot_win.cpp"]
|
||||
for x in common_win:
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/" + str(x)]
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/godot_win.cpp"]
|
||||
for x in common_win:
|
||||
env.vs_srcs = env.vs_srcs + ["platform/windows/" + str(x)]
|
||||
|
|
|
@ -100,299 +100,299 @@ import sys
|
|||
import methods
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "Windows"
|
||||
return "Windows"
|
||||
|
||||
def can_build():
|
||||
|
||||
if (os.name=="nt"):
|
||||
#building natively on windows!
|
||||
if ( os.getenv("VCINSTALLDIR") ):
|
||||
return True
|
||||
else:
|
||||
print("\nMSVC not detected, attempting Mingw.")
|
||||
mingw32 = ""
|
||||
mingw64 = ""
|
||||
if ( os.getenv("MINGW32_PREFIX") ) :
|
||||
mingw32 = os.getenv("MINGW32_PREFIX")
|
||||
if ( os.getenv("MINGW64_PREFIX") ) :
|
||||
mingw64 = os.getenv("MINGW64_PREFIX")
|
||||
if (os.name=="nt"):
|
||||
#building natively on windows!
|
||||
if ( os.getenv("VCINSTALLDIR") ):
|
||||
return True
|
||||
else:
|
||||
print("\nMSVC not detected, attempting Mingw.")
|
||||
mingw32 = ""
|
||||
mingw64 = ""
|
||||
if ( os.getenv("MINGW32_PREFIX") ) :
|
||||
mingw32 = os.getenv("MINGW32_PREFIX")
|
||||
if ( os.getenv("MINGW64_PREFIX") ) :
|
||||
mingw64 = os.getenv("MINGW64_PREFIX")
|
||||
|
||||
test = "gcc --version > NUL 2>&1"
|
||||
if os.system(test)!= 0 and os.system(mingw32+test)!=0 and os.system(mingw64+test)!=0 :
|
||||
print("- could not detect gcc.")
|
||||
print("Please, make sure a path to a Mingw /bin directory is accessible into the environment PATH.\n")
|
||||
return False
|
||||
else:
|
||||
print("- gcc detected.")
|
||||
test = "gcc --version > NUL 2>&1"
|
||||
if os.system(test)!= 0 and os.system(mingw32+test)!=0 and os.system(mingw64+test)!=0 :
|
||||
print("- could not detect gcc.")
|
||||
print("Please, make sure a path to a Mingw /bin directory is accessible into the environment PATH.\n")
|
||||
return False
|
||||
else:
|
||||
print("- gcc detected.")
|
||||
|
||||
return True
|
||||
return True
|
||||
|
||||
if (os.name=="posix"):
|
||||
if (os.name=="posix"):
|
||||
|
||||
mingw = "i586-mingw32msvc-"
|
||||
mingw64 = "x86_64-w64-mingw32-"
|
||||
mingw32 = "i686-w64-mingw32-"
|
||||
mingw = "i586-mingw32msvc-"
|
||||
mingw64 = "x86_64-w64-mingw32-"
|
||||
mingw32 = "i686-w64-mingw32-"
|
||||
|
||||
if (os.getenv("MINGW32_PREFIX")):
|
||||
mingw32=os.getenv("MINGW32_PREFIX")
|
||||
mingw = mingw32
|
||||
if (os.getenv("MINGW64_PREFIX")):
|
||||
mingw64=os.getenv("MINGW64_PREFIX")
|
||||
if (os.getenv("MINGW32_PREFIX")):
|
||||
mingw32=os.getenv("MINGW32_PREFIX")
|
||||
mingw = mingw32
|
||||
if (os.getenv("MINGW64_PREFIX")):
|
||||
mingw64=os.getenv("MINGW64_PREFIX")
|
||||
|
||||
test = "gcc --version &>/dev/null"
|
||||
if (os.system(mingw+test) == 0 or os.system(mingw64+test) == 0 or os.system(mingw32+test) == 0):
|
||||
return True
|
||||
test = "gcc --version &>/dev/null"
|
||||
if (os.system(mingw+test) == 0 or os.system(mingw64+test) == 0 or os.system(mingw32+test) == 0):
|
||||
return True
|
||||
|
||||
return False
|
||||
return False
|
||||
|
||||
def get_opts():
|
||||
|
||||
mingw=""
|
||||
mingw32=""
|
||||
mingw64=""
|
||||
if ( os.name == "posix" ):
|
||||
mingw = "i586-mingw32msvc-"
|
||||
mingw32 = "i686-w64-mingw32-"
|
||||
mingw64 = "x86_64-w64-mingw32-"
|
||||
mingw=""
|
||||
mingw32=""
|
||||
mingw64=""
|
||||
if ( os.name == "posix" ):
|
||||
mingw = "i586-mingw32msvc-"
|
||||
mingw32 = "i686-w64-mingw32-"
|
||||
mingw64 = "x86_64-w64-mingw32-"
|
||||
|
||||
if os.system(mingw32+"gcc --version &>/dev/null") != 0 :
|
||||
mingw32 = mingw
|
||||
if os.system(mingw32+"gcc --version &>/dev/null") != 0 :
|
||||
mingw32 = mingw
|
||||
|
||||
if (os.getenv("MINGW32_PREFIX")):
|
||||
mingw32=os.getenv("MINGW32_PREFIX")
|
||||
mingw = mingw32
|
||||
if (os.getenv("MINGW64_PREFIX")):
|
||||
mingw64=os.getenv("MINGW64_PREFIX")
|
||||
if (os.getenv("MINGW32_PREFIX")):
|
||||
mingw32=os.getenv("MINGW32_PREFIX")
|
||||
mingw = mingw32
|
||||
if (os.getenv("MINGW64_PREFIX")):
|
||||
mingw64=os.getenv("MINGW64_PREFIX")
|
||||
|
||||
|
||||
return [
|
||||
('mingw_prefix','Mingw Prefix',mingw32),
|
||||
('mingw_prefix_64','Mingw Prefix 64 bits',mingw64),
|
||||
]
|
||||
return [
|
||||
('mingw_prefix','Mingw Prefix',mingw32),
|
||||
('mingw_prefix_64','Mingw Prefix 64 bits',mingw64),
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl','builtin'), #use builtin openssl
|
||||
]
|
||||
return [
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl','builtin'), #use builtin openssl
|
||||
]
|
||||
|
||||
def build_res_file( target, source, env ):
|
||||
|
||||
cmdbase = ""
|
||||
if (env["bits"] == "32"):
|
||||
cmdbase = env['mingw_prefix']
|
||||
else:
|
||||
cmdbase = env['mingw_prefix_64']
|
||||
CPPPATH = env['CPPPATH']
|
||||
cmdbase = cmdbase + 'windres --include-dir . '
|
||||
import subprocess
|
||||
for x in range(len(source)):
|
||||
cmd = cmdbase + '-i ' + str(source[x]) + ' -o ' + str(target[x])
|
||||
try:
|
||||
out = subprocess.Popen(cmd,shell = True,stderr = subprocess.PIPE).communicate()
|
||||
if len(out[1]):
|
||||
return 1
|
||||
except:
|
||||
return 1
|
||||
return 0
|
||||
cmdbase = ""
|
||||
if (env["bits"] == "32"):
|
||||
cmdbase = env['mingw_prefix']
|
||||
else:
|
||||
cmdbase = env['mingw_prefix_64']
|
||||
CPPPATH = env['CPPPATH']
|
||||
cmdbase = cmdbase + 'windres --include-dir . '
|
||||
import subprocess
|
||||
for x in range(len(source)):
|
||||
cmd = cmdbase + '-i ' + str(source[x]) + ' -o ' + str(target[x])
|
||||
try:
|
||||
out = subprocess.Popen(cmd,shell = True,stderr = subprocess.PIPE).communicate()
|
||||
if len(out[1]):
|
||||
return 1
|
||||
except:
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def configure(env):
|
||||
|
||||
env.Append(CPPPATH=['#platform/windows'])
|
||||
env['is_mingw']=False
|
||||
if (os.name=="nt" and os.getenv("VCINSTALLDIR") ):
|
||||
#build using visual studio
|
||||
env['ENV']['TMP'] = os.environ['TMP']
|
||||
env.Append(CPPPATH=['#platform/windows/include'])
|
||||
env.Append(LIBPATH=['#platform/windows/lib'])
|
||||
env.Append(CPPPATH=['#platform/windows'])
|
||||
env['is_mingw']=False
|
||||
if (os.name=="nt" and os.getenv("VCINSTALLDIR") ):
|
||||
#build using visual studio
|
||||
env['ENV']['TMP'] = os.environ['TMP']
|
||||
env.Append(CPPPATH=['#platform/windows/include'])
|
||||
env.Append(LIBPATH=['#platform/windows/lib'])
|
||||
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['/O2'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
|
||||
env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
|
||||
env.Append(CCFLAGS=['/O2'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
|
||||
env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['/O2','/DDEBUG_ENABLED'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
elif (env["target"]=="debug_release"):
|
||||
env.Append(CCFLAGS=['/O2','/DDEBUG_ENABLED'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
elif (env["target"]=="debug_release"):
|
||||
|
||||
env.Append(CCFLAGS=['/Z7','/Od'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
|
||||
env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
|
||||
env.Append(CCFLAGS=['/Z7','/Od'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
|
||||
env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['/Z7','/DDEBUG_ENABLED','/DDEBUG_MEMORY_ENABLED','/DD3D_DEBUG_INFO','/Od'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
env.Append(CCFLAGS=['/Z7','/DDEBUG_ENABLED','/DDEBUG_MEMORY_ENABLED','/DD3D_DEBUG_INFO','/Od'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
|
||||
|
||||
env.Append(CCFLAGS=['/MT','/Gd','/GR','/nologo'])
|
||||
env.Append(CXXFLAGS=['/TP'])
|
||||
env.Append(CPPFLAGS=['/DMSVC', '/GR', ])
|
||||
env.Append(CCFLAGS=['/I'+os.getenv("WindowsSdkDir")+"/Include"])
|
||||
env.Append(CCFLAGS=['/DWINDOWS_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DRTAUDIO_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DWIN32'])
|
||||
env.Append(CCFLAGS=['/DTYPED_METHOD_BIND'])
|
||||
env.Append(CCFLAGS=['/MT','/Gd','/GR','/nologo'])
|
||||
env.Append(CXXFLAGS=['/TP'])
|
||||
env.Append(CPPFLAGS=['/DMSVC', '/GR', ])
|
||||
env.Append(CCFLAGS=['/I'+os.getenv("WindowsSdkDir")+"/Include"])
|
||||
env.Append(CCFLAGS=['/DWINDOWS_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DRTAUDIO_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DWIN32'])
|
||||
env.Append(CCFLAGS=['/DTYPED_METHOD_BIND'])
|
||||
|
||||
env.Append(CCFLAGS=['/DGLES2_ENABLED'])
|
||||
LIBS=['winmm','opengl32','dsound','kernel32','ole32','oleaut32','user32','gdi32', 'IPHLPAPI','Shlwapi', 'wsock32','Ws2_32', 'shell32','advapi32','dinput8','dxguid']
|
||||
env.Append(LINKFLAGS=[p+env["LIBSUFFIX"] for p in LIBS])
|
||||
env.Append(CCFLAGS=['/DGLES2_ENABLED'])
|
||||
LIBS=['winmm','opengl32','dsound','kernel32','ole32','oleaut32','user32','gdi32', 'IPHLPAPI','Shlwapi', 'wsock32','Ws2_32', 'shell32','advapi32','dinput8','dxguid']
|
||||
env.Append(LINKFLAGS=[p+env["LIBSUFFIX"] for p in LIBS])
|
||||
|
||||
env.Append(LIBPATH=[os.getenv("WindowsSdkDir")+"/Lib"])
|
||||
if (os.getenv("DXSDK_DIR")):
|
||||
DIRECTX_PATH=os.getenv("DXSDK_DIR")
|
||||
else:
|
||||
DIRECTX_PATH="C:/Program Files/Microsoft DirectX SDK (March 2009)"
|
||||
env.Append(LIBPATH=[os.getenv("WindowsSdkDir")+"/Lib"])
|
||||
if (os.getenv("DXSDK_DIR")):
|
||||
DIRECTX_PATH=os.getenv("DXSDK_DIR")
|
||||
else:
|
||||
DIRECTX_PATH="C:/Program Files/Microsoft DirectX SDK (March 2009)"
|
||||
|
||||
if (os.getenv("VCINSTALLDIR")):
|
||||
VC_PATH=os.getenv("VCINSTALLDIR")
|
||||
else:
|
||||
VC_PATH=""
|
||||
if (os.getenv("VCINSTALLDIR")):
|
||||
VC_PATH=os.getenv("VCINSTALLDIR")
|
||||
else:
|
||||
VC_PATH=""
|
||||
|
||||
env.Append(CCFLAGS=["/I" + p for p in os.getenv("INCLUDE").split(";")])
|
||||
env.Append(LIBPATH=[p for p in os.getenv("LIB").split(";")])
|
||||
env.Append(CCFLAGS=["/I"+DIRECTX_PATH+"/Include"])
|
||||
env.Append(LIBPATH=[DIRECTX_PATH+"/Lib/x86"])
|
||||
env['ENV'] = os.environ;
|
||||
env.Append(CCFLAGS=["/I" + p for p in os.getenv("INCLUDE").split(";")])
|
||||
env.Append(LIBPATH=[p for p in os.getenv("LIB").split(";")])
|
||||
env.Append(CCFLAGS=["/I"+DIRECTX_PATH+"/Include"])
|
||||
env.Append(LIBPATH=[DIRECTX_PATH+"/Lib/x86"])
|
||||
env['ENV'] = os.environ;
|
||||
|
||||
# This detection function needs the tools env (that is env['ENV'], not SCons's env), and that is why it's this far bellow in the code
|
||||
compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
|
||||
# This detection function needs the tools env (that is env['ENV'], not SCons's env), and that is why it's this far bellow in the code
|
||||
compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
|
||||
|
||||
# Note: this detection/override code from here onward should be here instead of in SConstruct because it's platform and compiler specific (MSVC/Windows)
|
||||
if(env["bits"] != "default"):
|
||||
print "Error: bits argument is disabled for MSVC"
|
||||
print ("Bits argument is not supported for MSVC compilation. Architecture depends on the Native/Cross Compile Tools Prompt/Developer Console (or Visual Studio settings)"
|
||||
+" that is being used to run SCons. As a consequence, bits argument is disabled. Run scons again without bits argument (example: scons p=windows) and SCons will attempt to detect what MSVC compiler"
|
||||
+" will be executed and inform you.")
|
||||
sys.exit()
|
||||
# Note: this detection/override code from here onward should be here instead of in SConstruct because it's platform and compiler specific (MSVC/Windows)
|
||||
if(env["bits"] != "default"):
|
||||
print "Error: bits argument is disabled for MSVC"
|
||||
print ("Bits argument is not supported for MSVC compilation. Architecture depends on the Native/Cross Compile Tools Prompt/Developer Console (or Visual Studio settings)"
|
||||
+" that is being used to run SCons. As a consequence, bits argument is disabled. Run scons again without bits argument (example: scons p=windows) and SCons will attempt to detect what MSVC compiler"
|
||||
+" will be executed and inform you.")
|
||||
sys.exit()
|
||||
|
||||
# Forcing bits argument because MSVC does not have a flag to set this through SCons... it's different compilers (cl.exe's) called from the propper command prompt
|
||||
# that decide the architecture that is build for. Scons can only detect the os.getenviron (because vsvarsall.bat sets a lot of stuff for cl.exe to work with)
|
||||
env["bits"]="32"
|
||||
env["x86_libtheora_opt_vc"]=True
|
||||
# Forcing bits argument because MSVC does not have a flag to set this through SCons... it's different compilers (cl.exe's) called from the propper command prompt
|
||||
# that decide the architecture that is build for. Scons can only detect the os.getenviron (because vsvarsall.bat sets a lot of stuff for cl.exe to work with)
|
||||
env["bits"]="32"
|
||||
env["x86_libtheora_opt_vc"]=True
|
||||
|
||||
print "Detected MSVC compiler: "+compiler_version_str
|
||||
# If building for 64bit architecture, disable assembly optimisations for 32 bit builds (theora as of writting)... vc compiler for 64bit can not compile _asm
|
||||
if(compiler_version_str == "amd64" or compiler_version_str == "x86_amd64"):
|
||||
env["bits"]="64"
|
||||
env["x86_libtheora_opt_vc"]=False
|
||||
print "Compiled program architecture will be a 64 bit executable (forcing bits=64)."
|
||||
elif (compiler_version_str=="x86" or compiler_version_str == "amd64_x86"):
|
||||
print "Compiled program architecture will be a 32 bit executable. (forcing bits=32)."
|
||||
else:
|
||||
print "Failed to detect MSVC compiler architecture version... Defaulting to 32bit executable settings (forcing bits=32). Compilation attempt will continue, but SCons can not detect for what architecture this build is compiled for. You should check your settings/compilation setup."
|
||||
if env["bits"]=="64":
|
||||
env.Append(CCFLAGS=['/D_WIN64'])
|
||||
print "Detected MSVC compiler: "+compiler_version_str
|
||||
# If building for 64bit architecture, disable assembly optimisations for 32 bit builds (theora as of writting)... vc compiler for 64bit can not compile _asm
|
||||
if(compiler_version_str == "amd64" or compiler_version_str == "x86_amd64"):
|
||||
env["bits"]="64"
|
||||
env["x86_libtheora_opt_vc"]=False
|
||||
print "Compiled program architecture will be a 64 bit executable (forcing bits=64)."
|
||||
elif (compiler_version_str=="x86" or compiler_version_str == "amd64_x86"):
|
||||
print "Compiled program architecture will be a 32 bit executable. (forcing bits=32)."
|
||||
else:
|
||||
print "Failed to detect MSVC compiler architecture version... Defaulting to 32bit executable settings (forcing bits=32). Compilation attempt will continue, but SCons can not detect for what architecture this build is compiled for. You should check your settings/compilation setup."
|
||||
if env["bits"]=="64":
|
||||
env.Append(CCFLAGS=['/D_WIN64'])
|
||||
|
||||
# Incremental linking fix
|
||||
env['BUILDERS']['ProgramOriginal'] = env['BUILDERS']['Program']
|
||||
env['BUILDERS']['Program'] = methods.precious_program
|
||||
# Incremental linking fix
|
||||
env['BUILDERS']['ProgramOriginal'] = env['BUILDERS']['Program']
|
||||
env['BUILDERS']['Program'] = methods.precious_program
|
||||
|
||||
else:
|
||||
else:
|
||||
|
||||
# Workaround for MinGW. See:
|
||||
# http://www.scons.org/wiki/LongCmdLinesOnWin32
|
||||
env.use_windows_spawn_fix()
|
||||
# Workaround for MinGW. See:
|
||||
# http://www.scons.org/wiki/LongCmdLinesOnWin32
|
||||
env.use_windows_spawn_fix()
|
||||
|
||||
#build using mingw
|
||||
if (os.name=="nt"):
|
||||
env['ENV']['TMP'] = os.environ['TMP'] #way to go scons, you can be so stupid sometimes
|
||||
else:
|
||||
env["PROGSUFFIX"]=env["PROGSUFFIX"]+".exe" # for linux cross-compilation
|
||||
#build using mingw
|
||||
if (os.name=="nt"):
|
||||
env['ENV']['TMP'] = os.environ['TMP'] #way to go scons, you can be so stupid sometimes
|
||||
else:
|
||||
env["PROGSUFFIX"]=env["PROGSUFFIX"]+".exe" # for linux cross-compilation
|
||||
|
||||
mingw_prefix=""
|
||||
mingw_prefix=""
|
||||
|
||||
if (env["bits"]=="default"):
|
||||
env["bits"]="32"
|
||||
if (env["bits"]=="default"):
|
||||
env["bits"]="32"
|
||||
|
||||
if (env["bits"]=="32"):
|
||||
env.Append(LINKFLAGS=['-static'])
|
||||
env.Append(LINKFLAGS=['-static-libgcc'])
|
||||
env.Append(LINKFLAGS=['-static-libstdc++'])
|
||||
mingw_prefix=env["mingw_prefix"];
|
||||
else:
|
||||
env.Append(LINKFLAGS=['-static'])
|
||||
mingw_prefix=env["mingw_prefix_64"];
|
||||
if (env["bits"]=="32"):
|
||||
env.Append(LINKFLAGS=['-static'])
|
||||
env.Append(LINKFLAGS=['-static-libgcc'])
|
||||
env.Append(LINKFLAGS=['-static-libstdc++'])
|
||||
mingw_prefix=env["mingw_prefix"];
|
||||
else:
|
||||
env.Append(LINKFLAGS=['-static'])
|
||||
mingw_prefix=env["mingw_prefix_64"];
|
||||
|
||||
nulstr=""
|
||||
nulstr=""
|
||||
|
||||
if (os.name=="posix"):
|
||||
nulstr=">/dev/null"
|
||||
else:
|
||||
nulstr=">nul"
|
||||
if (os.name=="posix"):
|
||||
nulstr=">/dev/null"
|
||||
else:
|
||||
nulstr=">nul"
|
||||
|
||||
|
||||
|
||||
# if os.system(mingw_prefix+"gcc --version"+nulstr)!=0:
|
||||
# #not really super consistent but..
|
||||
# print("Can't find Windows compiler: "+mingw_prefix)
|
||||
# sys.exit(255)
|
||||
# if os.system(mingw_prefix+"gcc --version"+nulstr)!=0:
|
||||
# #not really super consistent but..
|
||||
# print("Can't find Windows compiler: "+mingw_prefix)
|
||||
# sys.exit(255)
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CCFLAGS=['-msse2'])
|
||||
env.Append(CCFLAGS=['-msse2'])
|
||||
|
||||
if (env["bits"]=="64"):
|
||||
env.Append(CCFLAGS=['-O3'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O2'])
|
||||
if (env["bits"]=="64"):
|
||||
env.Append(CCFLAGS=['-O3'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O2'])
|
||||
|
||||
env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
|
||||
env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-g', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CCFLAGS=['-g', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
|
||||
|
||||
env["CC"]=mingw_prefix+"gcc"
|
||||
env['AS']=mingw_prefix+"as"
|
||||
env['CXX'] = mingw_prefix+"g++"
|
||||
env['AR'] = mingw_prefix+"ar"
|
||||
env['RANLIB'] = mingw_prefix+"ranlib"
|
||||
env['LD'] = mingw_prefix+"g++"
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
env["CC"]=mingw_prefix+"gcc"
|
||||
env['AS']=mingw_prefix+"as"
|
||||
env['CXX'] = mingw_prefix+"g++"
|
||||
env['AR'] = mingw_prefix+"ar"
|
||||
env['RANLIB'] = mingw_prefix+"ranlib"
|
||||
env['LD'] = mingw_prefix+"g++"
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
|
||||
#env['CC'] = "winegcc"
|
||||
#env['CXX'] = "wineg++"
|
||||
#env['CC'] = "winegcc"
|
||||
#env['CXX'] = "wineg++"
|
||||
|
||||
env.Append(CCFLAGS=['-DWINDOWS_ENABLED','-mwindows'])
|
||||
env.Append(CPPFLAGS=['-DRTAUDIO_ENABLED'])
|
||||
env.Append(CCFLAGS=['-DGLES2_ENABLED'])
|
||||
env.Append(LIBS=['mingw32','opengl32', 'dsound', 'ole32', 'd3d9','winmm','gdi32','iphlpapi','shlwapi','wsock32','ws2_32','kernel32', 'oleaut32', 'dinput8', 'dxguid'])
|
||||
env.Append(CCFLAGS=['-DWINDOWS_ENABLED','-mwindows'])
|
||||
env.Append(CPPFLAGS=['-DRTAUDIO_ENABLED'])
|
||||
env.Append(CCFLAGS=['-DGLES2_ENABLED'])
|
||||
env.Append(LIBS=['mingw32','opengl32', 'dsound', 'ole32', 'd3d9','winmm','gdi32','iphlpapi','shlwapi','wsock32','ws2_32','kernel32', 'oleaut32', 'dinput8', 'dxguid'])
|
||||
|
||||
# if (env["bits"]=="32"):
|
||||
# env.Append(LIBS=['gcc_s'])
|
||||
# #--with-arch=i686
|
||||
# env.Append(CPPFLAGS=['-march=i686'])
|
||||
# env.Append(LINKFLAGS=['-march=i686'])
|
||||
# if (env["bits"]=="32"):
|
||||
# env.Append(LIBS=['gcc_s'])
|
||||
# #--with-arch=i686
|
||||
# env.Append(CPPFLAGS=['-march=i686'])
|
||||
# env.Append(LINKFLAGS=['-march=i686'])
|
||||
|
||||
|
||||
|
||||
|
||||
#'d3dx9d'
|
||||
env.Append(CPPFLAGS=['-DMINGW_ENABLED'])
|
||||
#env.Append(LINKFLAGS=['-g'])
|
||||
#'d3dx9d'
|
||||
env.Append(CPPFLAGS=['-DMINGW_ENABLED'])
|
||||
#env.Append(LINKFLAGS=['-g'])
|
||||
|
||||
# resrc
|
||||
env['is_mingw']=True
|
||||
env.Append( BUILDERS = { 'RES' : env.Builder(action = build_res_file, suffix = '.o',src_suffix = '.rc') } )
|
||||
# resrc
|
||||
env['is_mingw']=True
|
||||
env.Append( BUILDERS = { 'RES' : env.Builder(action = build_res_file, suffix = '.o',src_suffix = '.rc') } )
|
||||
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
|
|
|
@ -3,21 +3,21 @@
|
|||
Import('env')
|
||||
|
||||
files = [
|
||||
'thread_winrt.cpp',
|
||||
'#platform/windows/tcp_server_winsock.cpp',
|
||||
'#platform/windows/packet_peer_udp_winsock.cpp',
|
||||
'#platform/windows/stream_peer_winsock.cpp',
|
||||
'#platform/windows/key_mapping_win.cpp',
|
||||
'joystick_winrt.cpp',
|
||||
'gl_context_egl.cpp',
|
||||
'app.cpp',
|
||||
'os_winrt.cpp',
|
||||
'thread_winrt.cpp',
|
||||
'#platform/windows/tcp_server_winsock.cpp',
|
||||
'#platform/windows/packet_peer_udp_winsock.cpp',
|
||||
'#platform/windows/stream_peer_winsock.cpp',
|
||||
'#platform/windows/key_mapping_win.cpp',
|
||||
'joystick_winrt.cpp',
|
||||
'gl_context_egl.cpp',
|
||||
'app.cpp',
|
||||
'os_winrt.cpp',
|
||||
]
|
||||
|
||||
if "build_angle" in env and env["build_angle"]:
|
||||
cmd = env.AlwaysBuild(env.ANGLE('libANGLE.lib', None))
|
||||
cmd = env.AlwaysBuild(env.ANGLE('libANGLE.lib', None))
|
||||
|
||||
prog = env.Program('#bin/godot', files)
|
||||
|
||||
if "build_angle" in env and env["build_angle"]:
|
||||
env.Depends(prog, [cmd])
|
||||
env.Depends(prog, [cmd])
|
||||
|
|
|
@ -6,161 +6,161 @@ import methods
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "WinRT"
|
||||
return "WinRT"
|
||||
|
||||
def can_build():
|
||||
if (os.name=="nt"):
|
||||
#building natively on windows!
|
||||
if (os.getenv("VSINSTALLDIR")):
|
||||
if (os.name=="nt"):
|
||||
#building natively on windows!
|
||||
if (os.getenv("VSINSTALLDIR")):
|
||||
|
||||
if (os.getenv("ANGLE_SRC_PATH") == None):
|
||||
return False
|
||||
if (os.getenv("ANGLE_SRC_PATH") == None):
|
||||
return False
|
||||
|
||||
return True
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_opts():
|
||||
return []
|
||||
return []
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl', 'builtin'),
|
||||
('xaudio2', 'yes'),
|
||||
]
|
||||
return [
|
||||
('tools', 'no'),
|
||||
('builtin_zlib', 'yes'),
|
||||
('openssl', 'builtin'),
|
||||
('xaudio2', 'yes'),
|
||||
]
|
||||
|
||||
|
||||
def configure(env):
|
||||
|
||||
if(env["bits"] != "default"):
|
||||
print "Error: bits argument is disabled for MSVC"
|
||||
print ("Bits argument is not supported for MSVC compilation. Architecture depends on the Native/Cross Compile Tools Prompt/Developer Console (or Visual Studio settings)"
|
||||
+" that is being used to run SCons. As a consequence, bits argument is disabled. Run scons again without bits argument (example: scons p=winrt) and SCons will attempt to detect what MSVC compiler"
|
||||
+" will be executed and inform you.")
|
||||
sys.exit()
|
||||
if(env["bits"] != "default"):
|
||||
print "Error: bits argument is disabled for MSVC"
|
||||
print ("Bits argument is not supported for MSVC compilation. Architecture depends on the Native/Cross Compile Tools Prompt/Developer Console (or Visual Studio settings)"
|
||||
+" that is being used to run SCons. As a consequence, bits argument is disabled. Run scons again without bits argument (example: scons p=winrt) and SCons will attempt to detect what MSVC compiler"
|
||||
+" will be executed and inform you.")
|
||||
sys.exit()
|
||||
|
||||
arch = ""
|
||||
env['ENV'] = os.environ;
|
||||
arch = ""
|
||||
env['ENV'] = os.environ;
|
||||
|
||||
# ANGLE
|
||||
angle_root = os.getenv("ANGLE_SRC_PATH")
|
||||
env.Append(CPPPATH=[angle_root + '/include'])
|
||||
jobs = str(env.GetOption("num_jobs"))
|
||||
angle_build_cmd = "msbuild.exe " + angle_root + "/winrt/10/src/angle.sln /nologo /v:m /m:" + jobs + " /p:Configuration=Release /p:Platform="
|
||||
# ANGLE
|
||||
angle_root = os.getenv("ANGLE_SRC_PATH")
|
||||
env.Append(CPPPATH=[angle_root + '/include'])
|
||||
jobs = str(env.GetOption("num_jobs"))
|
||||
angle_build_cmd = "msbuild.exe " + angle_root + "/winrt/10/src/angle.sln /nologo /v:m /m:" + jobs + " /p:Configuration=Release /p:Platform="
|
||||
|
||||
if os.path.isfile(str(os.getenv("ANGLE_SRC_PATH")) + "/winrt/10/src/angle.sln"):
|
||||
env["build_angle"] = True
|
||||
if os.path.isfile(str(os.getenv("ANGLE_SRC_PATH")) + "/winrt/10/src/angle.sln"):
|
||||
env["build_angle"] = True
|
||||
|
||||
if os.getenv('Platform') == "ARM":
|
||||
if os.getenv('Platform') == "ARM":
|
||||
|
||||
print "Compiled program architecture will be an ARM executable. (forcing bits=32)."
|
||||
print "Compiled program architecture will be an ARM executable. (forcing bits=32)."
|
||||
|
||||
arch="arm"
|
||||
env["bits"]="32"
|
||||
env.Append(LINKFLAGS=['/MACHINE:ARM'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/arm'])
|
||||
arch="arm"
|
||||
env["bits"]="32"
|
||||
env.Append(LINKFLAGS=['/MACHINE:ARM'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/arm'])
|
||||
|
||||
angle_build_cmd += "ARM"
|
||||
angle_build_cmd += "ARM"
|
||||
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_ARM/lib'])
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_ARM/lib'])
|
||||
|
||||
else:
|
||||
else:
|
||||
|
||||
compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
|
||||
compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
|
||||
|
||||
if(compiler_version_str == "amd64" or compiler_version_str == "x86_amd64"):
|
||||
env["bits"]="64"
|
||||
print "Compiled program architecture will be a x64 executable (forcing bits=64)."
|
||||
elif (compiler_version_str=="x86" or compiler_version_str == "amd64_x86"):
|
||||
env["bits"]="32"
|
||||
print "Compiled program architecture will be a x86 executable. (forcing bits=32)."
|
||||
else:
|
||||
print "Failed to detect MSVC compiler architecture version... Defaulting to 32bit executable settings (forcing bits=32). Compilation attempt will continue, but SCons can not detect for what architecture this build is compiled for. You should check your settings/compilation setup."
|
||||
env["bits"]="32"
|
||||
if(compiler_version_str == "amd64" or compiler_version_str == "x86_amd64"):
|
||||
env["bits"]="64"
|
||||
print "Compiled program architecture will be a x64 executable (forcing bits=64)."
|
||||
elif (compiler_version_str=="x86" or compiler_version_str == "amd64_x86"):
|
||||
env["bits"]="32"
|
||||
print "Compiled program architecture will be a x86 executable. (forcing bits=32)."
|
||||
else:
|
||||
print "Failed to detect MSVC compiler architecture version... Defaulting to 32bit executable settings (forcing bits=32). Compilation attempt will continue, but SCons can not detect for what architecture this build is compiled for. You should check your settings/compilation setup."
|
||||
env["bits"]="32"
|
||||
|
||||
if (env["bits"] == "32"):
|
||||
arch = "x86"
|
||||
if (env["bits"] == "32"):
|
||||
arch = "x86"
|
||||
|
||||
angle_build_cmd += "Win32"
|
||||
angle_build_cmd += "Win32"
|
||||
|
||||
env.Append(CPPFLAGS=['/DPNG_ABORT=abort'])
|
||||
env.Append(LINKFLAGS=['/MACHINE:X86'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store'])
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_Win32/lib'])
|
||||
env.Append(CPPFLAGS=['/DPNG_ABORT=abort'])
|
||||
env.Append(LINKFLAGS=['/MACHINE:X86'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store'])
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_Win32/lib'])
|
||||
|
||||
else:
|
||||
arch = "x64"
|
||||
else:
|
||||
arch = "x64"
|
||||
|
||||
angle_build_cmd += "x64"
|
||||
angle_build_cmd += "x64"
|
||||
|
||||
env.Append(LINKFLAGS=['/MACHINE:X64'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/amd64'])
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_x64/lib'])
|
||||
env.Append(LINKFLAGS=['/MACHINE:X64'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/amd64'])
|
||||
env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_x64/lib'])
|
||||
|
||||
env.Append(CPPPATH=['#platform/winrt','#drivers/windows'])
|
||||
env.Append(LINKFLAGS=['/MANIFEST:NO', '/NXCOMPAT', '/DYNAMICBASE', '/WINMD', '/APPCONTAINER', '/ERRORREPORT:PROMPT', '/NOLOGO', '/TLBID:1', '/NODEFAULTLIB:"kernel32.lib"', '/NODEFAULTLIB:"ole32.lib"'])
|
||||
env.Append(CPPFLAGS=['/D','__WRL_NO_DEFAULT_LIB__','/D','WIN32'])
|
||||
env.Append(CPPFLAGS=['/FU', os.environ['VCINSTALLDIR'] + 'lib/store/references/platform.winmd'])
|
||||
env.Append(CPPFLAGS=['/AI', os.environ['VCINSTALLDIR'] + 'lib/store/references'])
|
||||
env.Append(CPPPATH=['#platform/winrt','#drivers/windows'])
|
||||
env.Append(LINKFLAGS=['/MANIFEST:NO', '/NXCOMPAT', '/DYNAMICBASE', '/WINMD', '/APPCONTAINER', '/ERRORREPORT:PROMPT', '/NOLOGO', '/TLBID:1', '/NODEFAULTLIB:"kernel32.lib"', '/NODEFAULTLIB:"ole32.lib"'])
|
||||
env.Append(CPPFLAGS=['/D','__WRL_NO_DEFAULT_LIB__','/D','WIN32'])
|
||||
env.Append(CPPFLAGS=['/FU', os.environ['VCINSTALLDIR'] + 'lib/store/references/platform.winmd'])
|
||||
env.Append(CPPFLAGS=['/AI', os.environ['VCINSTALLDIR'] + 'lib/store/references'])
|
||||
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/references'])
|
||||
env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/references'])
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
env.Append(CPPFLAGS=['/O2', '/GL'])
|
||||
env.Append(CPPFLAGS=['/MD'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS', '/LTCG'])
|
||||
env.Append(CPPFLAGS=['/O2', '/GL'])
|
||||
env.Append(CPPFLAGS=['/MD'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS', '/LTCG'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['/O2','/Zi','/DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['/MD'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
env.Append(CCFLAGS=['/O2','/Zi','/DDEBUG_ENABLED'])
|
||||
env.Append(CPPFLAGS=['/MD'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CPPFLAGS=['/MDd'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CPPFLAGS=['/MDd'])
|
||||
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
|
||||
env.Append(LINKFLAGS=['/DEBUG'])
|
||||
|
||||
|
||||
env.Append(CCFLAGS=string.split('/FS /MP /GS /wd"4453" /wd"28204" /wd"4291" /Zc:wchar_t /Gm- /fp:precise /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP" /errorReport:prompt /WX- /Zc:forScope /Gd /EHsc /nologo'))
|
||||
env.Append(CXXFLAGS=string.split('/ZW /FS'))
|
||||
env.Append(CCFLAGS=['/AI', os.environ['VCINSTALLDIR']+'\\vcpackages', '/AI', os.environ['WINDOWSSDKDIR']+'\\References\\CommonConfiguration\\Neutral'])
|
||||
env.Append(CCFLAGS=string.split('/FS /MP /GS /wd"4453" /wd"28204" /wd"4291" /Zc:wchar_t /Gm- /fp:precise /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP" /errorReport:prompt /WX- /Zc:forScope /Gd /EHsc /nologo'))
|
||||
env.Append(CXXFLAGS=string.split('/ZW /FS'))
|
||||
env.Append(CCFLAGS=['/AI', os.environ['VCINSTALLDIR']+'\\vcpackages', '/AI', os.environ['WINDOWSSDKDIR']+'\\References\\CommonConfiguration\\Neutral'])
|
||||
|
||||
|
||||
env["PROGSUFFIX"]="."+arch+env["PROGSUFFIX"]
|
||||
env["OBJSUFFIX"]="."+arch+env["OBJSUFFIX"]
|
||||
env["LIBSUFFIX"]="."+arch+env["LIBSUFFIX"]
|
||||
env["PROGSUFFIX"]="."+arch+env["PROGSUFFIX"]
|
||||
env["OBJSUFFIX"]="."+arch+env["OBJSUFFIX"]
|
||||
env["LIBSUFFIX"]="."+arch+env["LIBSUFFIX"]
|
||||
|
||||
env.Append(CCFLAGS=['/DWINRT_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DWINDOWS_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DTYPED_METHOD_BIND'])
|
||||
env.Append(CCFLAGS=['/DWINRT_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DWINDOWS_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DTYPED_METHOD_BIND'])
|
||||
|
||||
env.Append(CCFLAGS=['/DGLES2_ENABLED','/DGL_GLEXT_PROTOTYPES','/DEGL_EGLEXT_PROTOTYPES','/DANGLE_ENABLED'])
|
||||
env.Append(CCFLAGS=['/DGLES2_ENABLED','/DGL_GLEXT_PROTOTYPES','/DEGL_EGLEXT_PROTOTYPES','/DANGLE_ENABLED'])
|
||||
|
||||
LIBS = [
|
||||
'WindowsApp',
|
||||
'mincore',
|
||||
'libANGLE',
|
||||
'libEGL',
|
||||
'libGLESv2',
|
||||
]
|
||||
env.Append(LINKFLAGS=[p+".lib" for p in LIBS])
|
||||
LIBS = [
|
||||
'WindowsApp',
|
||||
'mincore',
|
||||
'libANGLE',
|
||||
'libEGL',
|
||||
'libGLESv2',
|
||||
]
|
||||
env.Append(LINKFLAGS=[p+".lib" for p in LIBS])
|
||||
|
||||
# Incremental linking fix
|
||||
env['BUILDERS']['ProgramOriginal'] = env['BUILDERS']['Program']
|
||||
env['BUILDERS']['Program'] = methods.precious_program
|
||||
# Incremental linking fix
|
||||
env['BUILDERS']['ProgramOriginal'] = env['BUILDERS']['Program']
|
||||
env['BUILDERS']['Program'] = methods.precious_program
|
||||
|
||||
env.Append( BUILDERS = { 'ANGLE' : env.Builder(action = angle_build_cmd) } )
|
||||
env.Append( BUILDERS = { 'ANGLE' : env.Builder(action = angle_build_cmd) } )
|
||||
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
|
|
|
@ -4,10 +4,10 @@ Import('env')
|
|||
|
||||
|
||||
common_x11=[\
|
||||
"context_gl_x11.cpp",\
|
||||
"os_x11.cpp",\
|
||||
"key_mapping_x11.cpp",\
|
||||
"joystick_linux.cpp",\
|
||||
"context_gl_x11.cpp",\
|
||||
"os_x11.cpp",\
|
||||
"key_mapping_x11.cpp",\
|
||||
"joystick_linux.cpp",\
|
||||
]
|
||||
|
||||
env.Program('#bin/godot',['godot_x11.cpp']+common_x11)
|
||||
|
|
|
@ -5,236 +5,236 @@ import platform
|
|||
|
||||
|
||||
def is_active():
|
||||
return True
|
||||
return True
|
||||
|
||||
def get_name():
|
||||
return "X11"
|
||||
return "X11"
|
||||
|
||||
|
||||
def can_build():
|
||||
|
||||
if (os.name!="posix"):
|
||||
return False
|
||||
if (os.name!="posix"):
|
||||
return False
|
||||
|
||||
if sys.platform == "darwin":
|
||||
return False # no x11 on mac for now
|
||||
if sys.platform == "darwin":
|
||||
return False # no x11 on mac for now
|
||||
|
||||
errorval=os.system("pkg-config --version > /dev/null")
|
||||
errorval=os.system("pkg-config --version > /dev/null")
|
||||
|
||||
if (errorval):
|
||||
print("pkg-config not found.. x11 disabled.")
|
||||
return False
|
||||
if (errorval):
|
||||
print("pkg-config not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
x11_error=os.system("pkg-config x11 --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("X11 not found.. x11 disabled.")
|
||||
return False
|
||||
x11_error=os.system("pkg-config x11 --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("X11 not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
ssl_error=os.system("pkg-config openssl --modversion > /dev/null ")
|
||||
if (ssl_error):
|
||||
print("OpenSSL not found.. x11 disabled.")
|
||||
return False
|
||||
ssl_error=os.system("pkg-config openssl --modversion > /dev/null ")
|
||||
if (ssl_error):
|
||||
print("OpenSSL not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
x11_error=os.system("pkg-config xcursor --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xcursor not found.. x11 disabled.")
|
||||
return False
|
||||
x11_error=os.system("pkg-config xcursor --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xcursor not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
x11_error=os.system("pkg-config xinerama --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xinerama not found.. x11 disabled.")
|
||||
return False
|
||||
x11_error=os.system("pkg-config xinerama --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xinerama not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
x11_error=os.system("pkg-config xrandr --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xrandr not found.. x11 disabled.")
|
||||
return False
|
||||
x11_error=os.system("pkg-config xrandr --modversion > /dev/null ")
|
||||
if (x11_error):
|
||||
print("xrandr not found.. x11 disabled.")
|
||||
return False
|
||||
|
||||
|
||||
return True # X11 enabled
|
||||
return True # X11 enabled
|
||||
|
||||
def get_opts():
|
||||
|
||||
return [
|
||||
('use_llvm','Use llvm compiler','no'),
|
||||
('use_static_cpp','link stdc++ statically','no'),
|
||||
('use_sanitizer','Use llvm compiler sanitize address','no'),
|
||||
('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'),
|
||||
('pulseaudio','Detect & Use pulseaudio','yes'),
|
||||
('udev','Use udev for gamepad connection callbacks','no'),
|
||||
('debug_release', 'Add debug symbols to release version','no'),
|
||||
]
|
||||
return [
|
||||
('use_llvm','Use llvm compiler','no'),
|
||||
('use_static_cpp','link stdc++ statically','no'),
|
||||
('use_sanitizer','Use llvm compiler sanitize address','no'),
|
||||
('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'),
|
||||
('pulseaudio','Detect & Use pulseaudio','yes'),
|
||||
('udev','Use udev for gamepad connection callbacks','no'),
|
||||
('debug_release', 'Add debug symbols to release version','no'),
|
||||
]
|
||||
|
||||
def get_flags():
|
||||
|
||||
return [
|
||||
("openssl", "system"),
|
||||
('freetype', 'system'),
|
||||
('libpng', 'system'),
|
||||
]
|
||||
return [
|
||||
("openssl", "system"),
|
||||
('freetype', 'system'),
|
||||
('libpng', 'system'),
|
||||
]
|
||||
|
||||
|
||||
|
||||
def configure(env):
|
||||
|
||||
is64=sys.maxsize > 2**32
|
||||
is64=sys.maxsize > 2**32
|
||||
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
if (env["bits"]=="default"):
|
||||
if (is64):
|
||||
env["bits"]="64"
|
||||
else:
|
||||
env["bits"]="32"
|
||||
|
||||
env.Append(CPPPATH=['#platform/x11'])
|
||||
if (env["use_llvm"]=="yes"):
|
||||
if 'clang++' not in env['CXX']:
|
||||
env["CC"]="clang"
|
||||
env["CXX"]="clang++"
|
||||
env["LD"]="clang++"
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env.extra_suffix=".llvm"
|
||||
env.Append(CPPPATH=['#platform/x11'])
|
||||
if (env["use_llvm"]=="yes"):
|
||||
if 'clang++' not in env['CXX']:
|
||||
env["CC"]="clang"
|
||||
env["CXX"]="clang++"
|
||||
env["LD"]="clang++"
|
||||
env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
|
||||
env.extra_suffix=".llvm"
|
||||
|
||||
if (env["use_sanitizer"]=="yes"):
|
||||
env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
|
||||
env.Append(LINKFLAGS=['-fsanitize=address'])
|
||||
env.extra_suffix+="s"
|
||||
if (env["use_sanitizer"]=="yes"):
|
||||
env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
|
||||
env.Append(LINKFLAGS=['-fsanitize=address'])
|
||||
env.extra_suffix+="s"
|
||||
|
||||
if (env["use_leak_sanitizer"]=="yes"):
|
||||
env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
|
||||
env.Append(LINKFLAGS=['-fsanitize=address'])
|
||||
env.extra_suffix+="s"
|
||||
if (env["use_leak_sanitizer"]=="yes"):
|
||||
env.Append(CXXFLAGS=['-fsanitize=address','-fno-omit-frame-pointer'])
|
||||
env.Append(LINKFLAGS=['-fsanitize=address'])
|
||||
env.extra_suffix+="s"
|
||||
|
||||
|
||||
#if (env["tools"]=="no"):
|
||||
# #no tools suffix
|
||||
# env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
|
||||
# env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
|
||||
#if (env["tools"]=="no"):
|
||||
# #no tools suffix
|
||||
# env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
|
||||
# env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
|
||||
|
||||
|
||||
if (env["target"]=="release"):
|
||||
if (env["target"]=="release"):
|
||||
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O3','-ffast-math'])
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O3','-ffast-math'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
|
||||
elif (env["target"]=="debug"):
|
||||
elif (env["target"]=="debug"):
|
||||
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
|
||||
|
||||
env.ParseConfig('pkg-config x11 --cflags --libs')
|
||||
env.ParseConfig('pkg-config xinerama --cflags --libs')
|
||||
env.ParseConfig('pkg-config xcursor --cflags --libs')
|
||||
env.ParseConfig('pkg-config xrandr --cflags --libs')
|
||||
env.ParseConfig('pkg-config x11 --cflags --libs')
|
||||
env.ParseConfig('pkg-config xinerama --cflags --libs')
|
||||
env.ParseConfig('pkg-config xcursor --cflags --libs')
|
||||
env.ParseConfig('pkg-config xrandr --cflags --libs')
|
||||
|
||||
if (env["openssl"] == "system"):
|
||||
env.ParseConfig('pkg-config openssl --cflags --libs')
|
||||
if (env["openssl"] == "system"):
|
||||
env.ParseConfig('pkg-config openssl --cflags --libs')
|
||||
|
||||
if (env["libwebp"] == "system"):
|
||||
env.ParseConfig('pkg-config libwebp --cflags --libs')
|
||||
if (env["libwebp"] == "system"):
|
||||
env.ParseConfig('pkg-config libwebp --cflags --libs')
|
||||
|
||||
if (env["freetype"] == "system"):
|
||||
env["libpng"] = "system" # Freetype links against libpng
|
||||
env.ParseConfig('pkg-config freetype2 --cflags --libs')
|
||||
if (env["freetype"] == "system"):
|
||||
env["libpng"] = "system" # Freetype links against libpng
|
||||
env.ParseConfig('pkg-config freetype2 --cflags --libs')
|
||||
|
||||
if (env["libpng"] == "system"):
|
||||
env.ParseConfig('pkg-config libpng --cflags --libs')
|
||||
if (env["libpng"] == "system"):
|
||||
env.ParseConfig('pkg-config libpng --cflags --libs')
|
||||
|
||||
if (env["enet"] == "system"):
|
||||
env.ParseConfig('pkg-config libenet --cflags --libs')
|
||||
if (env["enet"] == "system"):
|
||||
env.ParseConfig('pkg-config libenet --cflags --libs')
|
||||
|
||||
if (env["squish"] == "system" and env["tools"] == "yes"):
|
||||
env.ParseConfig('pkg-config libsquish --cflags --libs')
|
||||
if (env["squish"] == "system" and env["tools"] == "yes"):
|
||||
env.ParseConfig('pkg-config libsquish --cflags --libs')
|
||||
|
||||
# Sound and video libraries
|
||||
# Keep the order as it triggers chained dependencies (ogg needed by others, etc.)
|
||||
# Sound and video libraries
|
||||
# Keep the order as it triggers chained dependencies (ogg needed by others, etc.)
|
||||
|
||||
if (env["libtheora"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system libtheora
|
||||
env["libvorbis"] = "system" # Needed to link against system libtheora
|
||||
env.ParseConfig('pkg-config theora theoradec --cflags --libs')
|
||||
if (env["libtheora"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system libtheora
|
||||
env["libvorbis"] = "system" # Needed to link against system libtheora
|
||||
env.ParseConfig('pkg-config theora theoradec --cflags --libs')
|
||||
|
||||
if (env["libvpx"] == "system"):
|
||||
env.ParseConfig('pkg-config vpx --cflags --libs')
|
||||
if (env["libvpx"] == "system"):
|
||||
env.ParseConfig('pkg-config vpx --cflags --libs')
|
||||
|
||||
if (env["libvorbis"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system libvorbis
|
||||
env.ParseConfig('pkg-config vorbis vorbisfile --cflags --libs')
|
||||
if (env["libvorbis"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system libvorbis
|
||||
env.ParseConfig('pkg-config vorbis vorbisfile --cflags --libs')
|
||||
|
||||
if (env["opus"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system opus
|
||||
env.ParseConfig('pkg-config opus opusfile --cflags --libs')
|
||||
if (env["opus"] == "system"):
|
||||
env["libogg"] = "system" # Needed to link against system opus
|
||||
env.ParseConfig('pkg-config opus opusfile --cflags --libs')
|
||||
|
||||
if (env["libogg"] == "system"):
|
||||
env.ParseConfig('pkg-config ogg --cflags --libs')
|
||||
if (env["libogg"] == "system"):
|
||||
env.ParseConfig('pkg-config ogg --cflags --libs')
|
||||
|
||||
|
||||
env.Append(CPPFLAGS=['-DOPENGL_ENABLED'])
|
||||
env.Append(CPPFLAGS=['-DOPENGL_ENABLED'])
|
||||
|
||||
if (env["glew"] == "system"):
|
||||
env.ParseConfig('pkg-config glew --cflags --libs')
|
||||
if (env["glew"] == "system"):
|
||||
env.ParseConfig('pkg-config glew --cflags --libs')
|
||||
|
||||
if os.system("pkg-config --exists alsa")==0:
|
||||
print("Enabling ALSA")
|
||||
env.Append(CPPFLAGS=["-DALSA_ENABLED"])
|
||||
env.ParseConfig('pkg-config alsa --cflags --libs')
|
||||
else:
|
||||
print("ALSA libraries not found, disabling driver")
|
||||
if os.system("pkg-config --exists alsa")==0:
|
||||
print("Enabling ALSA")
|
||||
env.Append(CPPFLAGS=["-DALSA_ENABLED"])
|
||||
env.ParseConfig('pkg-config alsa --cflags --libs')
|
||||
else:
|
||||
print("ALSA libraries not found, disabling driver")
|
||||
|
||||
if (platform.system() == "Linux"):
|
||||
env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"])
|
||||
if (env["udev"]=="yes"):
|
||||
# pkg-config returns 0 when the lib exists...
|
||||
found_udev = not os.system("pkg-config --exists libudev")
|
||||
if (platform.system() == "Linux"):
|
||||
env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"])
|
||||
if (env["udev"]=="yes"):
|
||||
# pkg-config returns 0 when the lib exists...
|
||||
found_udev = not os.system("pkg-config --exists libudev")
|
||||
|
||||
if (found_udev):
|
||||
print("Enabling udev support")
|
||||
env.Append(CPPFLAGS=["-DUDEV_ENABLED"])
|
||||
env.ParseConfig('pkg-config libudev --cflags --libs')
|
||||
else:
|
||||
print("libudev development libraries not found, disabling udev support")
|
||||
if (found_udev):
|
||||
print("Enabling udev support")
|
||||
env.Append(CPPFLAGS=["-DUDEV_ENABLED"])
|
||||
env.ParseConfig('pkg-config libudev --cflags --libs')
|
||||
else:
|
||||
print("libudev development libraries not found, disabling udev support")
|
||||
|
||||
if (env["pulseaudio"]=="yes"):
|
||||
if not os.system("pkg-config --exists libpulse-simple"):
|
||||
print("Enabling PulseAudio")
|
||||
env.Append(CPPFLAGS=["-DPULSEAUDIO_ENABLED"])
|
||||
env.ParseConfig('pkg-config --cflags --libs libpulse-simple')
|
||||
else:
|
||||
print("PulseAudio development libraries not found, disabling driver")
|
||||
if (env["pulseaudio"]=="yes"):
|
||||
if not os.system("pkg-config --exists libpulse-simple"):
|
||||
print("Enabling PulseAudio")
|
||||
env.Append(CPPFLAGS=["-DPULSEAUDIO_ENABLED"])
|
||||
env.ParseConfig('pkg-config --cflags --libs libpulse-simple')
|
||||
else:
|
||||
print("PulseAudio development libraries not found, disabling driver")
|
||||
|
||||
env.Append(CPPFLAGS=['-DX11_ENABLED','-DUNIX_ENABLED','-DGLES2_ENABLED','-DGLES_OVER_GL'])
|
||||
env.Append(LIBS=['GL', 'pthread', 'z'])
|
||||
if (platform.system() == "Linux"):
|
||||
env.Append(LIBS='dl')
|
||||
#env.Append(CPPFLAGS=['-DMPC_FIXED_POINT'])
|
||||
env.Append(CPPFLAGS=['-DX11_ENABLED','-DUNIX_ENABLED','-DGLES2_ENABLED','-DGLES_OVER_GL'])
|
||||
env.Append(LIBS=['GL', 'pthread', 'z'])
|
||||
if (platform.system() == "Linux"):
|
||||
env.Append(LIBS='dl')
|
||||
#env.Append(CPPFLAGS=['-DMPC_FIXED_POINT'])
|
||||
|
||||
#host compiler is default..
|
||||
|
||||
if (is64 and env["bits"]=="32"):
|
||||
env.Append(CPPFLAGS=['-m32'])
|
||||
env.Append(LINKFLAGS=['-m32','-L/usr/lib/i386-linux-gnu'])
|
||||
elif (not is64 and env["bits"]=="64"):
|
||||
env.Append(CPPFLAGS=['-m64'])
|
||||
env.Append(LINKFLAGS=['-m64','-L/usr/lib/i686-linux-gnu'])
|
||||
if (is64 and env["bits"]=="32"):
|
||||
env.Append(CPPFLAGS=['-m32'])
|
||||
env.Append(LINKFLAGS=['-m32','-L/usr/lib/i386-linux-gnu'])
|
||||
elif (not is64 and env["bits"]=="64"):
|
||||
env.Append(CPPFLAGS=['-m64'])
|
||||
env.Append(LINKFLAGS=['-m64','-L/usr/lib/i686-linux-gnu'])
|
||||
|
||||
|
||||
import methods
|
||||
import methods
|
||||
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
|
||||
#env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
|
||||
|
||||
if (env["use_static_cpp"]=="yes"):
|
||||
env.Append(LINKFLAGS=['-static-libstdc++'])
|
||||
if (env["use_static_cpp"]=="yes"):
|
||||
env.Append(LINKFLAGS=['-static-libstdc++'])
|
||||
|
||||
list_of_x86 = ['x86_64', 'x86', 'i386', 'i586']
|
||||
if any(platform.machine() in s for s in list_of_x86):
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
list_of_x86 = ['x86_64', 'x86', 'i386', 'i586']
|
||||
if any(platform.machine() in s for s in list_of_x86):
|
||||
env["x86_libtheora_opt_gcc"]=True
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ Import('env')
|
|||
|
||||
if (env["disable_3d"]=="yes"):
|
||||
|
||||
env.scene_sources.append("3d/spatial.cpp")
|
||||
env.scene_sources.append("3d/skeleton.cpp")
|
||||
env.scene_sources.append("3d/spatial.cpp")
|
||||
env.scene_sources.append("3d/skeleton.cpp")
|
||||
else:
|
||||
env.add_source_files(env.scene_sources,"*.cpp")
|
||||
env.add_source_files(env.scene_sources,"*.cpp")
|
||||
|
||||
Export('env')
|
||||
|
|
|
@ -22,21 +22,21 @@ f.write("\n\n\n");
|
|||
|
||||
for x in pixmaps:
|
||||
|
||||
var_str=x[:-4]+"_png";
|
||||
var_str=x[:-4]+"_png";
|
||||
|
||||
f.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
f.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
|
||||
pngf=open(x,"rb");
|
||||
pngf=open(x,"rb");
|
||||
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
f.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
f.write(",")
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
f.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
f.write(",")
|
||||
|
||||
f.write("\n};\n\n\n");
|
||||
pngf.close();
|
||||
f.write("\n};\n\n\n");
|
||||
pngf.close();
|
||||
|
||||
#Generate shaders block
|
||||
|
||||
|
@ -48,25 +48,25 @@ f.write("\n\n\n");
|
|||
|
||||
for x in shaders:
|
||||
|
||||
var_str=x[:-4]+"_shader_code";
|
||||
var_str=x[:-4]+"_shader_code";
|
||||
|
||||
f.write("static const char *"+ var_str +"=\n");
|
||||
f.write("static const char *"+ var_str +"=\n");
|
||||
|
||||
sf=open(x,"rb");
|
||||
sf=open(x,"rb");
|
||||
|
||||
|
||||
b=sf.readline();
|
||||
while(b!=""):
|
||||
if (b.endswith("\r\n")):
|
||||
b=b[:-2]
|
||||
if (b.endswith("\n")):
|
||||
b=b[:-1]
|
||||
f.write(" \""+b)
|
||||
b=sf.readline();
|
||||
if (b!=""):
|
||||
f.write("\"\n")
|
||||
b=sf.readline();
|
||||
while(b!=""):
|
||||
if (b.endswith("\r\n")):
|
||||
b=b[:-2]
|
||||
if (b.endswith("\n")):
|
||||
b=b[:-1]
|
||||
f.write(" \""+b)
|
||||
b=sf.readline();
|
||||
if (b!=""):
|
||||
f.write("\"\n")
|
||||
|
||||
f.write("\";\n\n\n");
|
||||
sf.close();
|
||||
f.write("\";\n\n\n");
|
||||
sf.close();
|
||||
|
||||
f.close();
|
||||
|
|
146
tools/SCsub
146
tools/SCsub
|
@ -11,115 +11,115 @@ Export('env')
|
|||
def make_translations_header(target,source,env):
|
||||
|
||||
|
||||
dst = target[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
|
||||
g = open(dst,"wb")
|
||||
g = open(dst,"wb")
|
||||
|
||||
|
||||
""""
|
||||
""""
|
||||
"""
|
||||
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
|
||||
g.write("#define _EDITOR_TRANSLATIONS_H\n")
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
|
||||
g.write("#define _EDITOR_TRANSLATIONS_H\n")
|
||||
|
||||
import zlib
|
||||
import os.path
|
||||
import zlib
|
||||
import os.path
|
||||
|
||||
paths = [node.srcnode().abspath for node in source]
|
||||
sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
|
||||
paths = [node.srcnode().abspath for node in source]
|
||||
sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
|
||||
|
||||
xl_names=[]
|
||||
for i in range(len(sorted_paths)):
|
||||
print("Appending translation: "+sorted_paths[i])
|
||||
f = open(sorted_paths[i],"rb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
buf = zlib.compress(buf)
|
||||
name = os.path.splitext(os.path.basename(sorted_paths[i]))[0]
|
||||
xl_names=[]
|
||||
for i in range(len(sorted_paths)):
|
||||
print("Appending translation: "+sorted_paths[i])
|
||||
f = open(sorted_paths[i],"rb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
buf = zlib.compress(buf)
|
||||
name = os.path.splitext(os.path.basename(sorted_paths[i]))[0]
|
||||
|
||||
#g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n")
|
||||
#g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _translation_"+name+"_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
#g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n")
|
||||
#g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _translation_"+name+"_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
|
||||
g.write("};\n")
|
||||
g.write("};\n")
|
||||
|
||||
xl_names.append([name,len(buf),str(decomp_size)])
|
||||
xl_names.append([name,len(buf),str(decomp_size)])
|
||||
|
||||
g.write("struct EditorTranslationList {\n")
|
||||
g.write("\tconst char* lang;\n");
|
||||
g.write("\tint comp_size;\n");
|
||||
g.write("\tint uncomp_size;\n");
|
||||
g.write("\tconst unsigned char* data;\n");
|
||||
g.write("};\n\n");
|
||||
g.write("static EditorTranslationList _editor_translations[]={\n")
|
||||
for x in xl_names:
|
||||
g.write("\t{ \""+x[0]+"\", "+str(x[1])+", "+str(x[2])+",_translation_"+x[0]+"_compressed},\n")
|
||||
g.write("\t{NULL,0,0,NULL}\n")
|
||||
g.write("};\n")
|
||||
g.write("struct EditorTranslationList {\n")
|
||||
g.write("\tconst char* lang;\n");
|
||||
g.write("\tint comp_size;\n");
|
||||
g.write("\tint uncomp_size;\n");
|
||||
g.write("\tconst unsigned char* data;\n");
|
||||
g.write("};\n\n");
|
||||
g.write("static EditorTranslationList _editor_translations[]={\n")
|
||||
for x in xl_names:
|
||||
g.write("\t{ \""+x[0]+"\", "+str(x[1])+", "+str(x[2])+",_translation_"+x[0]+"_compressed},\n")
|
||||
g.write("\t{NULL,0,0,NULL}\n")
|
||||
g.write("};\n")
|
||||
|
||||
g.write("#endif")
|
||||
g.write("#endif")
|
||||
|
||||
|
||||
def make_fonts_header(target,source,env):
|
||||
|
||||
|
||||
dst = target[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
|
||||
g = open(dst,"wb")
|
||||
g = open(dst,"wb")
|
||||
|
||||
|
||||
""""
|
||||
""""
|
||||
"""
|
||||
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _EDITOR_FONTS_H\n")
|
||||
g.write("#define _EDITOR_FONTS_H\n")
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _EDITOR_FONTS_H\n")
|
||||
g.write("#define _EDITOR_FONTS_H\n")
|
||||
|
||||
#saving uncompressed, since freetype will reference from memory pointer
|
||||
xl_names=[]
|
||||
for i in range(len(source)):
|
||||
print("Appending font: "+source[i].srcnode().abspath)
|
||||
f = open(source[i].srcnode().abspath,"rb")
|
||||
buf = f.read()
|
||||
import os.path
|
||||
#saving uncompressed, since freetype will reference from memory pointer
|
||||
xl_names=[]
|
||||
for i in range(len(source)):
|
||||
print("Appending font: "+source[i].srcnode().abspath)
|
||||
f = open(source[i].srcnode().abspath,"rb")
|
||||
buf = f.read()
|
||||
import os.path
|
||||
|
||||
name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
|
||||
name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
|
||||
|
||||
g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n")
|
||||
g.write("static const unsigned char _font_"+name+"[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n")
|
||||
g.write("static const unsigned char _font_"+name+"[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
|
||||
g.write("};\n")
|
||||
g.write("};\n")
|
||||
|
||||
g.write("#endif")
|
||||
g.write("#endif")
|
||||
|
||||
|
||||
if (env["tools"]!="no"):
|
||||
|
||||
import glob
|
||||
import glob
|
||||
|
||||
dir = env.Dir('.').abspath
|
||||
tlist = glob.glob(dir + "/translations/*.po")
|
||||
dir = env.Dir('.').abspath
|
||||
tlist = glob.glob(dir + "/translations/*.po")
|
||||
|
||||
print("translations: ",tlist)
|
||||
env.Depends('#tools/editor/translations.h',tlist)
|
||||
env.Command('#tools/editor/translations.h',tlist,make_translations_header)
|
||||
print("translations: ",tlist)
|
||||
env.Depends('#tools/editor/translations.h',tlist)
|
||||
env.Command('#tools/editor/translations.h',tlist,make_translations_header)
|
||||
|
||||
flist = glob.glob(dir + "/editor_fonts/*.ttf")
|
||||
flist.append( glob.glob(dir + "/editor_fonts/*.otf") )
|
||||
flist = glob.glob(dir + "/editor_fonts/*.ttf")
|
||||
flist.append( glob.glob(dir + "/editor_fonts/*.otf") )
|
||||
|
||||
print("fonts: ",flist)
|
||||
env.Depends('#tools/editor/builtin_fonts.h',flist)
|
||||
env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header)
|
||||
print("fonts: ",flist)
|
||||
env.Depends('#tools/editor/builtin_fonts.h',flist)
|
||||
env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header)
|
||||
|
||||
SConscript('editor/SCsub');
|
||||
SConscript('collada/SCsub');
|
||||
SConscript('doc/SCsub')
|
||||
SConscript('editor/SCsub');
|
||||
SConscript('collada/SCsub');
|
||||
SConscript('doc/SCsub')
|
||||
|
||||
lib = env.Library("tool",env.tool_sources)
|
||||
lib = env.Library("tool",env.tool_sources)
|
||||
|
||||
env.Prepend(LIBS=[lib])
|
||||
env.Prepend(LIBS=[lib])
|
||||
|
|
|
@ -5,51 +5,51 @@ Import('env')
|
|||
|
||||
def make_doc_header(target,source,env):
|
||||
|
||||
src = source[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
f = open(src,"rb")
|
||||
g = open(dst,"wb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
import zlib
|
||||
buf = zlib.compress(buf)
|
||||
src = source[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
f = open(src,"rb")
|
||||
g = open(dst,"wb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
import zlib
|
||||
buf = zlib.compress(buf)
|
||||
|
||||
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _DOC_DATA_RAW_H\n")
|
||||
g.write("#define _DOC_DATA_RAW_H\n")
|
||||
g.write("static const int _doc_data_compressed_size="+str(len(buf))+";\n")
|
||||
g.write("static const int _doc_data_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _doc_data_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
g.write("};\n")
|
||||
g.write("#endif")
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _DOC_DATA_RAW_H\n")
|
||||
g.write("#define _DOC_DATA_RAW_H\n")
|
||||
g.write("static const int _doc_data_compressed_size="+str(len(buf))+";\n")
|
||||
g.write("static const int _doc_data_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _doc_data_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
g.write("};\n")
|
||||
g.write("#endif")
|
||||
|
||||
|
||||
|
||||
def make_certs_header(target,source,env):
|
||||
|
||||
src = source[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
f = open(src,"rb")
|
||||
g = open(dst,"wb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
import zlib
|
||||
buf = zlib.compress(buf)
|
||||
src = source[0].srcnode().abspath
|
||||
dst = target[0].srcnode().abspath
|
||||
f = open(src,"rb")
|
||||
g = open(dst,"wb")
|
||||
buf = f.read()
|
||||
decomp_size = len(buf)
|
||||
import zlib
|
||||
buf = zlib.compress(buf)
|
||||
|
||||
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _CERTS_RAW_H\n")
|
||||
g.write("#define _CERTS_RAW_H\n")
|
||||
g.write("static const int _certs_compressed_size="+str(len(buf))+";\n")
|
||||
g.write("static const int _certs_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _certs_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
g.write("};\n")
|
||||
g.write("#endif")
|
||||
g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
|
||||
g.write("#ifndef _CERTS_RAW_H\n")
|
||||
g.write("#define _CERTS_RAW_H\n")
|
||||
g.write("static const int _certs_compressed_size="+str(len(buf))+";\n")
|
||||
g.write("static const int _certs_uncompressed_size="+str(decomp_size)+";\n")
|
||||
g.write("static const unsigned char _certs_compressed[]={\n")
|
||||
for i in range(len(buf)):
|
||||
g.write(str(ord(buf[i]))+",\n")
|
||||
g.write("};\n")
|
||||
g.write("#endif")
|
||||
|
||||
|
||||
|
||||
|
@ -59,30 +59,30 @@ def make_certs_header(target,source,env):
|
|||
|
||||
if (env["tools"]=="yes"):
|
||||
|
||||
reg_exporters_inc='#include "register_exporters.h"\n'
|
||||
reg_exporters='void register_exporters() {\n'
|
||||
for e in env.platform_exporters:
|
||||
env.tool_sources.append("#platform/"+e+"/export/export.cpp")
|
||||
reg_exporters+='\tregister_'+e+'_exporter();\n'
|
||||
reg_exporters_inc+='#include "platform/'+e+'/export/export.h"\n'
|
||||
reg_exporters+='}\n'
|
||||
f = open("register_exporters.cpp","wb")
|
||||
f.write(reg_exporters_inc)
|
||||
f.write(reg_exporters)
|
||||
f.close()
|
||||
reg_exporters_inc='#include "register_exporters.h"\n'
|
||||
reg_exporters='void register_exporters() {\n'
|
||||
for e in env.platform_exporters:
|
||||
env.tool_sources.append("#platform/"+e+"/export/export.cpp")
|
||||
reg_exporters+='\tregister_'+e+'_exporter();\n'
|
||||
reg_exporters_inc+='#include "platform/'+e+'/export/export.h"\n'
|
||||
reg_exporters+='}\n'
|
||||
f = open("register_exporters.cpp","wb")
|
||||
f.write(reg_exporters_inc)
|
||||
f.write(reg_exporters)
|
||||
f.close()
|
||||
|
||||
env.Depends("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml")
|
||||
env.Command("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml",make_doc_header)
|
||||
env.Depends("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml")
|
||||
env.Command("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml",make_doc_header)
|
||||
|
||||
env.Depends("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt")
|
||||
env.Command("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt",make_certs_header)
|
||||
env.Depends("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt")
|
||||
env.Command("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt",make_certs_header)
|
||||
|
||||
#make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env)
|
||||
#make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env)
|
||||
|
||||
env.add_source_files(env.tool_sources,"*.cpp")
|
||||
env.add_source_files(env.tool_sources,"*.cpp")
|
||||
|
||||
Export('env')
|
||||
SConscript('icons/SCsub');
|
||||
SConscript('plugins/SCsub');
|
||||
SConscript('fileserver/SCsub');
|
||||
SConscript('io_plugins/SCsub');
|
||||
Export('env')
|
||||
SConscript('icons/SCsub');
|
||||
SConscript('plugins/SCsub');
|
||||
SConscript('fileserver/SCsub');
|
||||
SConscript('io_plugins/SCsub');
|
||||
|
|
|
@ -4,93 +4,93 @@ Import('env')
|
|||
|
||||
def make_editor_icons_action(target, source, env):
|
||||
|
||||
import os
|
||||
import cStringIO
|
||||
import os
|
||||
import cStringIO
|
||||
|
||||
dst = target[0].srcnode().abspath
|
||||
pixmaps = source
|
||||
dst = target[0].srcnode().abspath
|
||||
pixmaps = source
|
||||
|
||||
s = cStringIO.StringIO()
|
||||
s = cStringIO.StringIO()
|
||||
|
||||
s.write("#include \"editor_icons.h\"\n\n")
|
||||
s.write("#include \"editor_scale.h\"\n\n")
|
||||
s.write("#include \"scene/resources/theme.h\"\n\n")
|
||||
s.write("#include \"editor_icons.h\"\n\n")
|
||||
s.write("#include \"editor_scale.h\"\n\n")
|
||||
s.write("#include \"scene/resources/theme.h\"\n\n")
|
||||
|
||||
hidpi_list=[]
|
||||
hidpi_list=[]
|
||||
|
||||
for x in pixmaps:
|
||||
for x in pixmaps:
|
||||
|
||||
x=str(x)
|
||||
var_str=os.path.basename(x)[:-4]+"_png";
|
||||
#print(var_str)
|
||||
x=str(x)
|
||||
var_str=os.path.basename(x)[:-4]+"_png";
|
||||
#print(var_str)
|
||||
|
||||
s.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
s.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
|
||||
pngf=open(x,"rb");
|
||||
pngf=open(x,"rb");
|
||||
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
s.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
s.write(",")
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
s.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
s.write(",")
|
||||
|
||||
s.write("\n};\n\n");
|
||||
s.write("\n};\n\n");
|
||||
|
||||
pngf.close();
|
||||
var_str=os.path.basename(x)[:-4]+"_hidpi_png";
|
||||
try:
|
||||
pngf.close();
|
||||
var_str=os.path.basename(x)[:-4]+"_hidpi_png";
|
||||
try:
|
||||
|
||||
pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x), "rb")
|
||||
pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x), "rb")
|
||||
|
||||
s.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
s.write("static const unsigned char "+ var_str +"[]={\n");
|
||||
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
s.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
s.write(",")
|
||||
b=pngf.read(1);
|
||||
while(len(b)==1):
|
||||
s.write(hex(ord(b)))
|
||||
b=pngf.read(1);
|
||||
if (len(b)==1):
|
||||
s.write(",")
|
||||
|
||||
s.write("\n};\n\n\n");
|
||||
hidpi_list.append(x)
|
||||
s.write("\n};\n\n\n");
|
||||
hidpi_list.append(x)
|
||||
|
||||
except:
|
||||
s.write("static const unsigned char* "+ var_str +"=NULL;\n\n\n");
|
||||
except:
|
||||
s.write("static const unsigned char* "+ var_str +"=NULL;\n\n\n");
|
||||
|
||||
|
||||
|
||||
|
||||
s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n")
|
||||
s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
|
||||
s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n")
|
||||
s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n")
|
||||
s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA); img.expand_x2_hq2x(); use_hidpi_image=true;}\n")
|
||||
s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n")
|
||||
s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
|
||||
s.write("\treturn texture;\n")
|
||||
s.write("}\n\n")
|
||||
s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n")
|
||||
s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
|
||||
s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n")
|
||||
s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n")
|
||||
s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA); img.expand_x2_hq2x(); use_hidpi_image=true;}\n")
|
||||
s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n")
|
||||
s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
|
||||
s.write("\treturn texture;\n")
|
||||
s.write("}\n\n")
|
||||
|
||||
s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n")
|
||||
s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n")
|
||||
|
||||
for x in pixmaps:
|
||||
for x in pixmaps:
|
||||
|
||||
x=os.path.basename(str(x))
|
||||
type=x[5:-4].title().replace("_","");
|
||||
var_str=x[:-4]+"_png";
|
||||
var_str_hidpi=x[:-4]+"_hidpi_png";
|
||||
s.write("\tp_theme->set_icon(\""+type+"\",\"EditorIcons\",make_icon("+var_str+","+var_str_hidpi+"));\n");
|
||||
x=os.path.basename(str(x))
|
||||
type=x[5:-4].title().replace("_","");
|
||||
var_str=x[:-4]+"_png";
|
||||
var_str_hidpi=x[:-4]+"_hidpi_png";
|
||||
s.write("\tp_theme->set_icon(\""+type+"\",\"EditorIcons\",make_icon("+var_str+","+var_str_hidpi+"));\n");
|
||||
|
||||
s.write("\n\n}\n\n");
|
||||
s.write("\n\n}\n\n");
|
||||
|
||||
f = open(dst,"wb")
|
||||
f.write(s.getvalue())
|
||||
f.close()
|
||||
s.close()
|
||||
f = open(dst,"wb")
|
||||
f.write(s.getvalue())
|
||||
f.close()
|
||||
s.close()
|
||||
|
||||
make_editor_icons_builder = Builder(action=make_editor_icons_action,
|
||||
suffix = '.cpp',
|
||||
src_suffix = '.png')
|
||||
suffix = '.cpp',
|
||||
src_suffix = '.png')
|
||||
env['BUILDERS']['MakeEditorIconsBuilder']=make_editor_icons_builder
|
||||
env.Alias('editor_icons',[env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp',Glob("*.png"))])
|
||||
|
||||
|
|
|
@ -34,39 +34,39 @@ f = open("files","rb")
|
|||
fname = f.readline()
|
||||
while (fname!=""):
|
||||
|
||||
fr = open(fname.strip(),"rb")
|
||||
l = fr.readline()
|
||||
bc=False
|
||||
fsingle = fname.strip()
|
||||
fr = open(fname.strip(),"rb")
|
||||
l = fr.readline()
|
||||
bc=False
|
||||
fsingle = fname.strip()
|
||||
|
||||
if (fsingle.find("/")!=-1):
|
||||
fsingle=fsingle[fsingle.rfind("/")+1:]
|
||||
rep_fl="$filename"
|
||||
rep_fi=fsingle
|
||||
len_fl=len(rep_fl)
|
||||
len_fi=len(rep_fi)
|
||||
if (len_fi<len_fl):
|
||||
for x in range(len_fl-len_fi):
|
||||
rep_fi+=" "
|
||||
elif (len_fl<len_fi):
|
||||
for x in range(len_fi-len_fl):
|
||||
rep_fl+=" "
|
||||
if (header.find(rep_fl)!=-1):
|
||||
text=header.replace(rep_fl,rep_fi)
|
||||
else:
|
||||
text=header.replace("$filename",fsingle)
|
||||
if (fsingle.find("/")!=-1):
|
||||
fsingle=fsingle[fsingle.rfind("/")+1:]
|
||||
rep_fl="$filename"
|
||||
rep_fi=fsingle
|
||||
len_fl=len(rep_fl)
|
||||
len_fi=len(rep_fi)
|
||||
if (len_fi<len_fl):
|
||||
for x in range(len_fl-len_fi):
|
||||
rep_fi+=" "
|
||||
elif (len_fl<len_fi):
|
||||
for x in range(len_fi-len_fl):
|
||||
rep_fl+=" "
|
||||
if (header.find(rep_fl)!=-1):
|
||||
text=header.replace(rep_fl,rep_fi)
|
||||
else:
|
||||
text=header.replace("$filename",fsingle)
|
||||
|
||||
|
||||
while (l!=""):
|
||||
if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc):
|
||||
text+=l
|
||||
bc=True
|
||||
l=fr.readline()
|
||||
while (l!=""):
|
||||
if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc):
|
||||
text+=l
|
||||
bc=True
|
||||
l=fr.readline()
|
||||
|
||||
fr.close()
|
||||
fr=open(fname.strip(),"wb")
|
||||
fr.write(text)
|
||||
fr.close()
|
||||
#print(text)
|
||||
fname=f.readline()
|
||||
fr.close()
|
||||
fr=open(fname.strip(),"wb")
|
||||
fr.write(text)
|
||||
fr.close()
|
||||
#print(text)
|
||||
fname=f.readline()
|
||||
|
||||
|
|
|
@ -3,33 +3,33 @@ import os.path
|
|||
import sys
|
||||
|
||||
def tof(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
content = f.read()
|
||||
content = content.replace("0x","")
|
||||
content = content.split(',')
|
||||
for i in range(len(content)):
|
||||
if len(content[i]) == 1: content[i] = "0" + content[i]
|
||||
content = "".join(content)
|
||||
with open(filepath+".file", 'wb') as f:
|
||||
content = f.write(content.decode("hex"))
|
||||
print(os.path.basename(filepath)+".file created.")
|
||||
exit(0)
|
||||
with open(filepath, 'r') as f:
|
||||
content = f.read()
|
||||
content = content.replace("0x","")
|
||||
content = content.split(',')
|
||||
for i in range(len(content)):
|
||||
if len(content[i]) == 1: content[i] = "0" + content[i]
|
||||
content = "".join(content)
|
||||
with open(filepath+".file", 'wb') as f:
|
||||
content = f.write(content.decode("hex"))
|
||||
print(os.path.basename(filepath)+".file created.")
|
||||
exit(0)
|
||||
|
||||
def toa(filepath):
|
||||
with open(filepath, 'rb') as f:
|
||||
content = f.read()
|
||||
content = binascii.hexlify(content)
|
||||
content = [content[i:i+2] for i in range(0, len(content), 2)]
|
||||
content = ",0x".join(content)
|
||||
content = "0x" + content
|
||||
content = content.replace("0x00","0x0")
|
||||
with open(filepath+".array", 'w') as f:
|
||||
content = f.write(content)
|
||||
print(os.path.basename(filepath)+".array created.")
|
||||
exit(0)
|
||||
with open(filepath, 'rb') as f:
|
||||
content = f.read()
|
||||
content = binascii.hexlify(content)
|
||||
content = [content[i:i+2] for i in range(0, len(content), 2)]
|
||||
content = ",0x".join(content)
|
||||
content = "0x" + content
|
||||
content = content.replace("0x00","0x0")
|
||||
with open(filepath+".array", 'w') as f:
|
||||
content = f.write(content)
|
||||
print(os.path.basename(filepath)+".array created.")
|
||||
exit(0)
|
||||
|
||||
def usage():
|
||||
print("========================================================\n\
|
||||
print("========================================================\n\
|
||||
#\n\
|
||||
# Usage: python file-hex-array.py [action] [option]\n\
|
||||
#\n\
|
||||
|
@ -40,13 +40,13 @@ def usage():
|
|||
# Example : python file-hex-array.py toa 1.png\n\
|
||||
#\n\
|
||||
========================================================")
|
||||
exit(1)
|
||||
exit(1)
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
usage()
|
||||
usage()
|
||||
if sys.argv[1] == "toa" and os.path.isfile(sys.argv[2]):
|
||||
toa(sys.argv[2])
|
||||
toa(sys.argv[2])
|
||||
elif sys.argv[1] == "tof" and os.path.isfile(sys.argv[2]):
|
||||
tof(sys.argv[2])
|
||||
tof(sys.argv[2])
|
||||
else:
|
||||
usage()
|
||||
usage()
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import sys
|
||||
|
||||
if (len(sys.argv)!=2):
|
||||
print("Pass me a .fnt argument!")
|
||||
print("Pass me a .fnt argument!")
|
||||
|
||||
f = open(sys.argv[1],"rb")
|
||||
|
||||
|
@ -19,39 +19,39 @@ font_cc=0
|
|||
|
||||
while(l!=""):
|
||||
|
||||
fs = l.strip().find(" ")
|
||||
if (fs==-1):
|
||||
l=f.readline()
|
||||
continue
|
||||
t = l[0:fs]
|
||||
fs = l.strip().find(" ")
|
||||
if (fs==-1):
|
||||
l=f.readline()
|
||||
continue
|
||||
t = l[0:fs]
|
||||
|
||||
dv = l[fs+1:].split(" ")
|
||||
d = {}
|
||||
for x in dv:
|
||||
if (x.find("=")==-1):
|
||||
continue
|
||||
s = x.split("=")
|
||||
d[ s[0] ] = s[1]
|
||||
dv = l[fs+1:].split(" ")
|
||||
d = {}
|
||||
for x in dv:
|
||||
if (x.find("=")==-1):
|
||||
continue
|
||||
s = x.split("=")
|
||||
d[ s[0] ] = s[1]
|
||||
|
||||
|
||||
if (t=="common"):
|
||||
font_height=d["lineHeight"]
|
||||
font_ascent=d["base"]
|
||||
if (t=="common"):
|
||||
font_height=d["lineHeight"]
|
||||
font_ascent=d["base"]
|
||||
|
||||
if (t=="char"):
|
||||
font_chars.append(d["id"])
|
||||
font_chars.append(d["x"])
|
||||
font_chars.append(d["y"])
|
||||
font_chars.append(d["width"])
|
||||
font_chars.append(d["height"])
|
||||
font_chars.append(d["xoffset"])
|
||||
font_chars.append(d["yoffset"])
|
||||
font_chars.append(d["xadvance"])
|
||||
font_cc+=1
|
||||
if (t=="char"):
|
||||
font_chars.append(d["id"])
|
||||
font_chars.append(d["x"])
|
||||
font_chars.append(d["y"])
|
||||
font_chars.append(d["width"])
|
||||
font_chars.append(d["height"])
|
||||
font_chars.append(d["xoffset"])
|
||||
font_chars.append(d["yoffset"])
|
||||
font_chars.append(d["xadvance"])
|
||||
font_cc+=1
|
||||
|
||||
|
||||
|
||||
l = f.readline()
|
||||
l = f.readline()
|
||||
|
||||
|
||||
print("static const int _bi_font_"+name+"_height="+str(font_height)+";")
|
||||
|
@ -60,10 +60,10 @@ print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";")
|
|||
cstr="static const int _bi_font_"+name+"_characters={"
|
||||
for i in range(len(font_chars)):
|
||||
|
||||
c=font_chars[i]
|
||||
if (i>0):
|
||||
cstr+=", "
|
||||
cstr+=c
|
||||
c=font_chars[i]
|
||||
if (i>0):
|
||||
cstr+=", "
|
||||
cstr+=c
|
||||
|
||||
cstr+=("};")
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
import sys
|
||||
|
||||
if (len(sys.argv)<2):
|
||||
print("usage: make_glwrapper.py <headers>")
|
||||
sys.exit(255)
|
||||
print("usage: make_glwrapper.py <headers>")
|
||||
sys.exit(255)
|
||||
|
||||
|
||||
functions=[]
|
||||
|
@ -17,16 +17,16 @@ READ_CONSTANTS=2
|
|||
read_what=READ_TYPES
|
||||
|
||||
for x in (range(len(sys.argv)-1)):
|
||||
f=open(sys.argv[x+1],"r")
|
||||
f=open(sys.argv[x+1],"r")
|
||||
|
||||
while(True):
|
||||
while(True):
|
||||
|
||||
line=f.readline()
|
||||
if (line==""):
|
||||
break
|
||||
line=f.readline()
|
||||
if (line==""):
|
||||
break
|
||||
|
||||
line=line.replace("\n","").strip()
|
||||
"""
|
||||
line=line.replace("\n","").strip()
|
||||
"""
|
||||
if (line.find("[types]")!=-1):
|
||||
read_what=READ_TYPES
|
||||
continue
|
||||
|
@ -38,53 +38,53 @@ for x in (range(len(sys.argv)-1)):
|
|||
continue
|
||||
"""
|
||||
|
||||
if (line.find("#define")!=-1):
|
||||
if (line.find("0x")==-1 and line.find("GL_VERSION")==-1):
|
||||
continue
|
||||
constants.append(line)
|
||||
elif (line.find("typedef")!=-1):
|
||||
if (line.find("(")!=-1 or line.find(")")!=-1 or line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("GL")==-1):
|
||||
continue
|
||||
types.append(line)
|
||||
elif (line.find("APIENTRY")!=-1 and line.find("GLAPI")!=-1):
|
||||
if (line.find("#define")!=-1):
|
||||
if (line.find("0x")==-1 and line.find("GL_VERSION")==-1):
|
||||
continue
|
||||
constants.append(line)
|
||||
elif (line.find("typedef")!=-1):
|
||||
if (line.find("(")!=-1 or line.find(")")!=-1 or line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("GL")==-1):
|
||||
continue
|
||||
types.append(line)
|
||||
elif (line.find("APIENTRY")!=-1 and line.find("GLAPI")!=-1):
|
||||
|
||||
if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1):
|
||||
continue
|
||||
if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1):
|
||||
continue
|
||||
|
||||
line=line.replace("APIENTRY","")
|
||||
line=line.replace("GLAPI","")
|
||||
line=line.replace("APIENTRY","")
|
||||
line=line.replace("GLAPI","")
|
||||
|
||||
glpos=line.find(" gl")
|
||||
if (glpos==-1):
|
||||
glpos=line.find(" gl")
|
||||
if (glpos==-1):
|
||||
|
||||
glpos=line.find("\tgl")
|
||||
if (glpos==-1):
|
||||
continue
|
||||
glpos=line.find("\tgl")
|
||||
if (glpos==-1):
|
||||
continue
|
||||
|
||||
ret=line[:glpos].strip();
|
||||
ret=line[:glpos].strip();
|
||||
|
||||
line=line[glpos:].strip()
|
||||
namepos=line.find("(")
|
||||
line=line[glpos:].strip()
|
||||
namepos=line.find("(")
|
||||
|
||||
if (namepos==-1):
|
||||
continue
|
||||
if (namepos==-1):
|
||||
continue
|
||||
|
||||
name=line[:namepos].strip()
|
||||
line=line[namepos:]
|
||||
name=line[:namepos].strip()
|
||||
line=line[namepos:]
|
||||
|
||||
argpos=line.rfind(")")
|
||||
if (argpos==-1):
|
||||
continue
|
||||
argpos=line.rfind(")")
|
||||
if (argpos==-1):
|
||||
continue
|
||||
|
||||
args=line[1:argpos]
|
||||
args=line[1:argpos]
|
||||
|
||||
funcdata={}
|
||||
funcdata["ret"]=ret
|
||||
funcdata["name"]=name
|
||||
funcdata["args"]=args
|
||||
funcdata={}
|
||||
funcdata["ret"]=ret
|
||||
funcdata["name"]=name
|
||||
funcdata["args"]=args
|
||||
|
||||
functions.append(funcdata)
|
||||
print(funcdata)
|
||||
functions.append(funcdata)
|
||||
print(funcdata)
|
||||
|
||||
|
||||
|
||||
|
@ -137,18 +137,18 @@ f.write("#else\n");
|
|||
f.write("#define GLWRP_APIENTRY \n")
|
||||
f.write("#endif\n\n");
|
||||
for x in types:
|
||||
f.write(x+"\n")
|
||||
f.write(x+"\n")
|
||||
|
||||
f.write("\n\n")
|
||||
|
||||
for x in constants:
|
||||
f.write(x+"\n")
|
||||
f.write(x+"\n")
|
||||
|
||||
f.write("\n\n")
|
||||
|
||||
for x in functions:
|
||||
f.write("extern "+x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+");\n")
|
||||
f.write("#define "+x["name"]+" __wrapper_"+x["name"]+"\n")
|
||||
f.write("extern "+x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+");\n")
|
||||
f.write("#define "+x["name"]+" __wrapper_"+x["name"]+"\n")
|
||||
|
||||
f.write("\n\n")
|
||||
f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n");
|
||||
|
@ -165,14 +165,14 @@ f.write("#include \"glwrapper.h\"\n")
|
|||
f.write("\n\n")
|
||||
|
||||
for x in functions:
|
||||
f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n")
|
||||
f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n")
|
||||
|
||||
f.write("\n\n")
|
||||
f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n")
|
||||
f.write("\n")
|
||||
|
||||
for x in functions:
|
||||
f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n")
|
||||
f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n")
|
||||
|
||||
f.write("\n\n")
|
||||
f.write("}\n")
|
||||
|
|
|
@ -67,20 +67,20 @@ text="""
|
|||
|
||||
for i in range(1,8):
|
||||
|
||||
tp=""
|
||||
p=""
|
||||
t=""
|
||||
for j in range(i):
|
||||
if (j>0):
|
||||
tp+=", "
|
||||
p+=", "
|
||||
t+=", "
|
||||
tp +=("m_arg"+str(j+1)+" p"+str(j+1))
|
||||
p+=("p"+str(j+1))
|
||||
t+=("m_arg"+str(j+1))
|
||||
tp=""
|
||||
p=""
|
||||
t=""
|
||||
for j in range(i):
|
||||
if (j>0):
|
||||
tp+=", "
|
||||
p+=", "
|
||||
t+=", "
|
||||
tp +=("m_arg"+str(j+1)+" p"+str(j+1))
|
||||
p+=("p"+str(j+1))
|
||||
t+=("m_arg"+str(j+1))
|
||||
|
||||
t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i))
|
||||
print(t)
|
||||
t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i))
|
||||
print(t)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import sys
|
|||
arg="memdump.txt"
|
||||
|
||||
if (len(sys.argv)>1):
|
||||
arg=sys.argv[1]
|
||||
arg=sys.argv[1]
|
||||
|
||||
f = open(arg,"rb")
|
||||
|
||||
|
@ -18,18 +18,18 @@ cnt={}
|
|||
|
||||
while(l!=""):
|
||||
|
||||
s=l.split("-")
|
||||
amount = int(s[1])
|
||||
what=s[2]
|
||||
if (what in sum):
|
||||
sum[what]+=amount
|
||||
cnt[what]+=1
|
||||
else:
|
||||
sum[what]=amount
|
||||
cnt[what]=1
|
||||
s=l.split("-")
|
||||
amount = int(s[1])
|
||||
what=s[2]
|
||||
if (what in sum):
|
||||
sum[what]+=amount
|
||||
cnt[what]+=1
|
||||
else:
|
||||
sum[what]=amount
|
||||
cnt[what]=1
|
||||
|
||||
l=f.readline()
|
||||
l=f.readline()
|
||||
|
||||
|
||||
for x in sum:
|
||||
print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x]))
|
||||
print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x]))
|
||||
|
|
|
@ -130,8 +130,8 @@ special_icons = {
|
|||
}
|
||||
|
||||
theme_icons = {
|
||||
'icon_close': dict(output_names=['close', 'close_hl']),
|
||||
'tab_menu': dict(output_names=['tab_menu_hl'])
|
||||
'icon_close': dict(output_names=['close', 'close_hl']),
|
||||
'tab_menu': dict(output_names=['tab_menu_hl'])
|
||||
}
|
||||
|
||||
export_icons()
|
||||
|
|
|
@ -10,27 +10,27 @@ import sys
|
|||
line_nb = False
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
if (arg == "--with-line-nb"):
|
||||
print("Enabling line numbers in the context locations.")
|
||||
line_nb = True
|
||||
else:
|
||||
os.sys.exit("Non supported argument '" + arg + "'. Aborting.")
|
||||
if (arg == "--with-line-nb"):
|
||||
print("Enabling line numbers in the context locations.")
|
||||
line_nb = True
|
||||
else:
|
||||
os.sys.exit("Non supported argument '" + arg + "'. Aborting.")
|
||||
|
||||
|
||||
if (not os.path.exists("tools")):
|
||||
os.sys.exit("ERROR: This script should be started from the root of the git repo.")
|
||||
os.sys.exit("ERROR: This script should be started from the root of the git repo.")
|
||||
|
||||
|
||||
matches = []
|
||||
for root, dirnames, filenames in os.walk('.'):
|
||||
for filename in fnmatch.filter(filenames, '*.cpp'):
|
||||
if (filename.find("collada") != -1):
|
||||
continue
|
||||
matches.append(os.path.join(root, filename))
|
||||
for filename in fnmatch.filter(filenames, '*.h'):
|
||||
if (filename.find("collada") != -1):
|
||||
continue
|
||||
matches.append(os.path.join(root, filename))
|
||||
for filename in fnmatch.filter(filenames, '*.cpp'):
|
||||
if (filename.find("collada") != -1):
|
||||
continue
|
||||
matches.append(os.path.join(root, filename))
|
||||
for filename in fnmatch.filter(filenames, '*.h'):
|
||||
if (filename.find("collada") != -1):
|
||||
continue
|
||||
matches.append(os.path.join(root, filename))
|
||||
matches.sort()
|
||||
|
||||
|
||||
|
@ -55,51 +55,51 @@ print("Updating the tools.pot template...")
|
|||
|
||||
for fname in matches:
|
||||
|
||||
f = open(fname, "rb")
|
||||
f = open(fname, "rb")
|
||||
|
||||
l = f.readline()
|
||||
lc = 1
|
||||
while (l):
|
||||
l = f.readline()
|
||||
lc = 1
|
||||
while (l):
|
||||
|
||||
patterns = ['RTR(\"', 'TTR(\"']
|
||||
idx = 0
|
||||
pos = 0
|
||||
while (pos >= 0):
|
||||
pos = l.find(patterns[idx], pos)
|
||||
if (pos == -1):
|
||||
if (idx < len(patterns) - 1):
|
||||
idx += 1
|
||||
pos = 0
|
||||
continue
|
||||
pos += 5
|
||||
patterns = ['RTR(\"', 'TTR(\"']
|
||||
idx = 0
|
||||
pos = 0
|
||||
while (pos >= 0):
|
||||
pos = l.find(patterns[idx], pos)
|
||||
if (pos == -1):
|
||||
if (idx < len(patterns) - 1):
|
||||
idx += 1
|
||||
pos = 0
|
||||
continue
|
||||
pos += 5
|
||||
|
||||
msg = ""
|
||||
while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')):
|
||||
msg += l[pos]
|
||||
pos += 1
|
||||
msg = ""
|
||||
while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')):
|
||||
msg += l[pos]
|
||||
pos += 1
|
||||
|
||||
location = os.path.relpath(fname).replace('\\','/')
|
||||
if (line_nb):
|
||||
location += ":" + str(lc)
|
||||
location = os.path.relpath(fname).replace('\\','/')
|
||||
if (line_nb):
|
||||
location += ":" + str(lc)
|
||||
|
||||
if (not msg in unique_str):
|
||||
main_po += "\n#: " + location + "\n"
|
||||
main_po += 'msgid "' + msg + '"\n'
|
||||
main_po += 'msgstr ""\n'
|
||||
unique_str.append(msg)
|
||||
unique_loc[msg] = [location]
|
||||
elif (not location in unique_loc[msg]):
|
||||
# Add additional location to previous occurence too
|
||||
msg_pos = main_po.find('\nmsgid "' + msg + '"')
|
||||
if (msg_pos == -1):
|
||||
print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
|
||||
main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:]
|
||||
unique_loc[msg].append(location)
|
||||
if (not msg in unique_str):
|
||||
main_po += "\n#: " + location + "\n"
|
||||
main_po += 'msgid "' + msg + '"\n'
|
||||
main_po += 'msgstr ""\n'
|
||||
unique_str.append(msg)
|
||||
unique_loc[msg] = [location]
|
||||
elif (not location in unique_loc[msg]):
|
||||
# Add additional location to previous occurence too
|
||||
msg_pos = main_po.find('\nmsgid "' + msg + '"')
|
||||
if (msg_pos == -1):
|
||||
print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
|
||||
main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:]
|
||||
unique_loc[msg].append(location)
|
||||
|
||||
l = f.readline()
|
||||
lc += 1
|
||||
l = f.readline()
|
||||
lc += 1
|
||||
|
||||
f.close()
|
||||
f.close()
|
||||
|
||||
|
||||
f = open("tools.pot", "wb")
|
||||
|
@ -107,15 +107,15 @@ f.write(main_po)
|
|||
f.close()
|
||||
|
||||
if (os.name == "posix"):
|
||||
print("Wrapping template at 79 characters for compatibility with Weblate.")
|
||||
os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap")
|
||||
shutil.move("tools.pot.wrap", "tools.pot")
|
||||
print("Wrapping template at 79 characters for compatibility with Weblate.")
|
||||
os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap")
|
||||
shutil.move("tools.pot.wrap", "tools.pot")
|
||||
|
||||
shutil.move("tools.pot", "tools/translations/tools.pot")
|
||||
|
||||
# TODO: Make that in a portable way, if we care; if not, kudos to Unix users
|
||||
if (os.name == "posix"):
|
||||
added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell = True)
|
||||
removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell = True)
|
||||
print("\n# Template changes compared to the staged status:")
|
||||
print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed)))
|
||||
added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell = True)
|
||||
removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell = True)
|
||||
print("\n# Template changes compared to the staged status:")
|
||||
print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed)))
|
||||
|
|
Loading…
Reference in New Issue