summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2016-11-01 00:37:24 +0100
committerGitHub <noreply@github.com>2016-11-01 00:37:24 +0100
commit7e3aa4bd5e500d35401f5f2b15f1da65af12b26d (patch)
tree2d074bb474b4b093c849ad2f6317dcc4ae5784f5
parent681575fa7123592897090c6cce44402c4e45baeb (diff)
parentf34151ff0f91e8f0df8eaf829334b2205eb7da3c (diff)
Merge pull request #6985 from akien-mga/python-pep8
Apply PEP8 to all python files using autopep8
-rw-r--r--SConstruct621
-rw-r--r--bin/SCsub2
-rw-r--r--bin/tests/SCsub8
-rw-r--r--core/SCsub72
-rw-r--r--core/bind/SCsub2
-rw-r--r--core/io/SCsub6
-rw-r--r--core/make_binders.py181
-rw-r--r--core/math/SCsub2
-rw-r--r--core/os/SCsub2
-rw-r--r--doc/tools/doc_merge.py316
-rwxr-xr-xdoc/tools/doc_status.py543
-rw-r--r--doc/tools/makedoku.py543
-rw-r--r--doc/tools/makehtml.py1179
-rw-r--r--doc/tools/makemd.py581
-rw-r--r--doc/tools/makerst.py916
-rw-r--r--drivers/SCsub38
-rw-r--r--drivers/gl_context/SCsub24
-rw-r--r--drivers/gles2/shaders/SCsub10
-rw-r--r--drivers/png/SCsub70
-rw-r--r--drivers/rtaudio/SCsub4
-rw-r--r--drivers/unix/SCsub14
-rw-r--r--drivers/zlib/SCsub24
-rw-r--r--main/SCsub6
-rwxr-xr-xmethods.py2383
-rw-r--r--modules/SCsub16
-rw-r--r--modules/chibi/config.py5
-rw-r--r--modules/cscript/config.py7
-rw-r--r--modules/dds/config.py5
-rw-r--r--modules/enet/SCsub32
-rw-r--r--modules/enet/config.py5
-rw-r--r--modules/etc1/SCsub4
-rw-r--r--modules/etc1/config.py5
-rw-r--r--modules/freetype/SCsub118
-rw-r--r--modules/freetype/config.py5
-rw-r--r--modules/gdscript/config.py7
-rw-r--r--modules/gridmap/config.py7
-rw-r--r--modules/ik/config.py11
-rw-r--r--modules/jpg/SCsub4
-rw-r--r--modules/jpg/config.py5
-rw-r--r--modules/mpc/SCsub30
-rw-r--r--modules/mpc/config.py5
-rw-r--r--modules/ogg/SCsub18
-rw-r--r--modules/ogg/config.py5
-rw-r--r--modules/openssl/SCsub1324
-rw-r--r--modules/openssl/config.py5
-rw-r--r--modules/opus/SCsub394
-rw-r--r--modules/opus/config.py5
-rw-r--r--modules/pbm/config.py5
-rw-r--r--modules/pvr/SCsub12
-rw-r--r--modules/pvr/config.py5
-rw-r--r--modules/regex/config.py3
-rw-r--r--modules/squish/SCsub32
-rw-r--r--modules/squish/config.py13
-rw-r--r--modules/theora/SCsub128
-rw-r--r--modules/theora/config.py5
-rw-r--r--modules/visual_script/config.py7
-rw-r--r--modules/vorbis/SCsub70
-rw-r--r--modules/vorbis/config.py5
-rw-r--r--modules/webm/SCsub28
-rw-r--r--modules/webm/config.py5
-rw-r--r--modules/webm/libvpx/SCsub594
-rw-r--r--modules/webm/libvpx/yasm_osx_fat.py36
-rw-r--r--modules/webp/SCsub218
-rw-r--r--modules/webp/config.py5
-rw-r--r--platform/android/SCsub132
-rw-r--r--platform/android/detect.py427
-rw-r--r--platform/bb10/SCsub14
-rw-r--r--platform/bb10/detect.py118
-rw-r--r--platform/haiku/SCsub25
-rw-r--r--platform/haiku/detect.py96
-rw-r--r--platform/iphone/SCsub36
-rw-r--r--platform/iphone/detect.py339
-rw-r--r--platform/javascript/SCsub40
-rw-r--r--platform/javascript/detect.py142
-rw-r--r--platform/osx/SCsub18
-rw-r--r--platform/osx/detect.py126
-rw-r--r--platform/server/SCsub6
-rw-r--r--platform/server/detect.py83
-rw-r--r--platform/windows/SCsub32
-rw-r--r--platform/windows/detect.py543
-rw-r--r--platform/winrt/SCsub22
-rw-r--r--platform/winrt/detect.py222
-rw-r--r--platform/x11/SCsub12
-rw-r--r--platform/x11/detect.py384
-rw-r--r--scene/2d/SCsub2
-rw-r--r--scene/3d/SCsub8
-rw-r--r--scene/SCsub22
-rw-r--r--scene/animation/SCsub2
-rw-r--r--scene/audio/SCsub2
-rw-r--r--scene/gui/SCsub2
-rw-r--r--scene/io/SCsub2
-rw-r--r--scene/main/SCsub2
-rw-r--r--scene/resources/SCsub6
-rw-r--r--scene/resources/default_theme/SCsub2
-rw-r--r--scene/resources/default_theme/make_header.py83
-rw-r--r--servers/SCsub18
-rw-r--r--servers/audio/SCsub2
-rw-r--r--servers/physics/SCsub2
-rw-r--r--servers/physics/joints/SCsub2
-rw-r--r--servers/physics_2d/SCsub2
-rw-r--r--servers/spatial_sound/SCsub2
-rw-r--r--servers/spatial_sound_2d/SCsub2
-rw-r--r--servers/visual/SCsub2
-rw-r--r--tools/SCsub168
-rw-r--r--tools/collada/SCsub2
-rw-r--r--tools/doc/SCsub2
-rw-r--r--tools/editor/SCsub158
-rw-r--r--tools/editor/fileserver/SCsub2
-rw-r--r--tools/editor/icons/SCsub128
-rw-r--r--tools/editor/io_plugins/SCsub2
-rw-r--r--tools/editor/plugins/SCsub2
-rw-r--r--tools/scripts/addheader.py70
-rwxr-xr-xtools/scripts/file-hex-array.py60
-rw-r--r--tools/scripts/make_bmfhdr.py111
-rw-r--r--tools/scripts/make_glwrapper.py143
-rw-r--r--tools/scripts/makeargs.py36
-rw-r--r--tools/scripts/memsort.py36
-rw-r--r--tools/scripts/svgs_2_pngs.py45
-rwxr-xr-xtools/translations/extract.py132
-rw-r--r--version.py10
120 files changed, 7376 insertions, 7453 deletions
diff --git a/SConstruct b/SConstruct
index 70816d82b8..0d8a84b6e8 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-EnsureSConsVersion(0,14);
+EnsureSConsVersion(0, 14)
import string
@@ -14,85 +14,84 @@ methods.update_version()
# scan possible build platforms
-platform_list = [] # list of platforms
-platform_opts = {} # options for each platform
-platform_flags = {} # flags for each platform
+platform_list = [] # list of platforms
+platform_opts = {} # options for each platform
+platform_flags = {} # flags for each platform
-active_platforms=[]
-active_platform_ids=[]
-platform_exporters=[]
-global_defaults=[]
+active_platforms = []
+active_platform_ids = []
+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()
+module_list = methods.detect_modules()
-#print "Detected Platforms: "+str(platform_list)
+# print "Detected Platforms: "+str(platform_list)
-methods.save_active_platforms(active_platforms,active_platform_ids)
+methods.save_active_platforms(active_platforms, active_platform_ids)
-custom_tools=['default']
+custom_tools = ['default']
platform_arg = ARGUMENTS.get("platform", ARGUMENTS.get("p", False))
-if (os.name=="posix"):
- pass
-elif (os.name=="nt"):
- if ( os.getenv("VCINSTALLDIR")==None or platform_arg=="android"):
- custom_tools=['mingw']
+if (os.name == "posix"):
+ pass
+elif (os.name == "nt"):
+ if (os.getenv("VCINSTALLDIR") == None or platform_arg == "android"):
+ custom_tools = ['mingw']
-env_base=Environment(tools=custom_tools);
+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
-env_base.android_maven_repos=[]
-env_base.android_dependencies=[]
-env_base.android_java_dirs=[]
-env_base.android_res_dirs=[]
-env_base.android_aidl_dirs=[]
-env_base.android_jni_dirs=[]
-env_base.android_default_config=[]
-env_base.android_manifest_chunk=""
-env_base.android_permission_chunk=""
-env_base.android_appattributes_chunk=""
-env_base.disabled_modules=[]
-env_base.use_ptrcall=False
-env_base.split_drivers=False
-
-
-
-env_base.__class__.android_add_maven_repository=methods.android_add_maven_repository
-env_base.__class__.android_add_dependency=methods.android_add_dependency
-env_base.__class__.android_add_java_dir=methods.android_add_java_dir
-env_base.__class__.android_add_res_dir=methods.android_add_res_dir
-env_base.__class__.android_add_aidl_dir=methods.android_add_aidl_dir
-env_base.__class__.android_add_jni_dir=methods.android_add_jni_dir
-env_base.__class__.android_add_default_config=methods.android_add_default_config
+env_base.global_defaults = global_defaults
+env_base.android_maven_repos = []
+env_base.android_dependencies = []
+env_base.android_java_dirs = []
+env_base.android_res_dirs = []
+env_base.android_aidl_dirs = []
+env_base.android_jni_dirs = []
+env_base.android_default_config = []
+env_base.android_manifest_chunk = ""
+env_base.android_permission_chunk = ""
+env_base.android_appattributes_chunk = ""
+env_base.disabled_modules = []
+env_base.use_ptrcall = False
+env_base.split_drivers = False
+
+
+env_base.__class__.android_add_maven_repository = methods.android_add_maven_repository
+env_base.__class__.android_add_dependency = methods.android_add_dependency
+env_base.__class__.android_add_java_dir = methods.android_add_java_dir
+env_base.__class__.android_add_res_dir = methods.android_add_res_dir
+env_base.__class__.android_add_aidl_dir = methods.android_add_aidl_dir
+env_base.__class__.android_add_jni_dir = methods.android_add_jni_dir
+env_base.__class__.android_add_default_config = methods.android_add_default_config
env_base.__class__.android_add_to_manifest = methods.android_add_to_manifest
env_base.__class__.android_add_to_permissions = methods.android_add_to_permissions
env_base.__class__.android_add_to_attributes = methods.android_add_to_attributes
@@ -102,75 +101,75 @@ env_base.__class__.add_source_files = methods.add_source_files
env_base.__class__.use_windows_spawn_fix = methods.use_windows_spawn_fix
env_base.__class__.split_lib = methods.split_lib
-env_base["x86_libtheora_opt_gcc"]=False
-env_base["x86_libtheora_opt_vc"]=False
+env_base["x86_libtheora_opt_gcc"] = False
+env_base["x86_libtheora_opt_vc"] = False
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 = Variables(customs, ARGUMENTS)
opts.Add('target', 'Compile Target (debug/release_debug/release).', "debug")
opts.Add('arch', 'Platform dependent architecture (arm/arm64/x86/x64/mips/etc)', "")
opts.Add('bits', 'Compile Target Bits (default/32/64/fat).', "default")
-opts.Add('platform','Platform: '+str(platform_list)+'.',"")
-opts.Add('p','Platform (same as platform=).',"")
-opts.Add('tools','Build Tools (Including Editor): (yes/no)','yes')
-opts.Add('gdscript','Build GDSCript support: (yes/no)','yes')
-opts.Add('libogg','Ogg library for ogg container support (system/builtin)','builtin')
-opts.Add('libvorbis','Ogg Vorbis library for vorbis support (system/builtin)','builtin')
-opts.Add('libtheora','Theora library for theora module (system/builtin)','builtin')
-opts.Add('libvpx','VPX library for webm module (system/builtin)','builtin')
-opts.Add('opus','Opus and opusfile library for Opus format support: (system/builtin)','builtin')
-opts.Add('minizip','Build Minizip Archive Support: (yes/no)','yes')
-opts.Add('squish','Squish library for BC Texture Compression in editor (system/builtin)','builtin')
-opts.Add('freetype','Freetype library for TTF support via freetype module (system/builtin)','builtin')
-opts.Add('xml','XML Save/Load support (yes/no)','yes')
-opts.Add('libpng','libpng library for image loader support (system/builtin)','builtin')
-opts.Add('libwebp','libwebp library for webp module (system/builtin)','builtin')
-opts.Add('openssl','OpenSSL library for openssl module (system/builtin)','builtin')
-opts.Add('libmpcdec','libmpcdec library for mpc module (system/builtin)','builtin')
-opts.Add('enet','ENet library (system/builtin)','builtin')
-opts.Add('glew','GLEW library for the gl_context (system/builtin)','builtin')
-opts.Add('xaudio2','XAudio2 audio driver (yes/no)','no')
+opts.Add('platform', 'Platform: ' + str(platform_list) + '.', "")
+opts.Add('p', 'Platform (same as platform=).', "")
+opts.Add('tools', 'Build Tools (Including Editor): (yes/no)', 'yes')
+opts.Add('gdscript', 'Build GDSCript support: (yes/no)', 'yes')
+opts.Add('libogg', 'Ogg library for ogg container support (system/builtin)', 'builtin')
+opts.Add('libvorbis', 'Ogg Vorbis library for vorbis support (system/builtin)', 'builtin')
+opts.Add('libtheora', 'Theora library for theora module (system/builtin)', 'builtin')
+opts.Add('libvpx', 'VPX library for webm module (system/builtin)', 'builtin')
+opts.Add('opus', 'Opus and opusfile library for Opus format support: (system/builtin)', 'builtin')
+opts.Add('minizip', 'Build Minizip Archive Support: (yes/no)', 'yes')
+opts.Add('squish', 'Squish library for BC Texture Compression in editor (system/builtin)', 'builtin')
+opts.Add('freetype', 'Freetype library for TTF support via freetype module (system/builtin)', 'builtin')
+opts.Add('xml', 'XML Save/Load support (yes/no)', 'yes')
+opts.Add('libpng', 'libpng library for image loader support (system/builtin)', 'builtin')
+opts.Add('libwebp', 'libwebp library for webp module (system/builtin)', 'builtin')
+opts.Add('openssl', 'OpenSSL library for openssl module (system/builtin)', 'builtin')
+opts.Add('libmpcdec', 'libmpcdec library for mpc module (system/builtin)', 'builtin')
+opts.Add('enet', 'ENet library (system/builtin)', 'builtin')
+opts.Add('glew', 'GLEW library for the gl_context (system/builtin)', 'builtin')
+opts.Add('xaudio2', 'XAudio2 audio driver (yes/no)', 'no')
opts.Add("CXX", "C++ Compiler")
opts.Add("CC", "C Compiler")
-opts.Add("CCFLAGS", "Custom flags for the C/C++ compiler");
-opts.Add("CFLAGS", "Custom flags for the C compiler");
-opts.Add("LINKFLAGS", "Custom flags for the linker");
-opts.Add('unix_global_settings_path', 'unix-specific path to system-wide settings. Currently only used by templates.','')
+opts.Add("CCFLAGS", "Custom flags for the C/C++ compiler")
+opts.Add("CFLAGS", "Custom flags for the C compiler")
+opts.Add("LINKFLAGS", "Custom flags for the linker")
+opts.Add('unix_global_settings_path', 'unix-specific path to system-wide settings. Currently only used by templates.', '')
opts.Add('disable_3d', 'Disable 3D nodes for smaller executable (yes/no)', "no")
opts.Add('disable_advanced_gui', 'Disable advance 3D gui nodes and behaviors (yes/no)', "no")
opts.Add('verbose', 'Enable verbose output for the compilation (yes/no)', 'yes')
-opts.Add('deprecated','Enable deprecated features (yes/no)','yes')
+opts.Add('deprecated', 'Enable deprecated features (yes/no)', 'yes')
opts.Add('extra_suffix', 'Custom extra suffix added to the base filename of all generated binary files.', '')
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
+opts.Update(env_base) # update environment
+Help(opts.GenerateHelpText(env_base)) # generate help
# add default include paths
-env_base.Append(CPPPATH=['#core','#core/math','#tools','#drivers','#'])
+env_base.Append(CPPPATH=['#core', '#core/math', '#tools', '#drivers', '#'])
# configure ENV for platform
-env_base.platform_exporters=platform_exporters
+env_base.platform_exporters = platform_exporters
"""
sys.path.append("./platform/"+env_base["platform"])
@@ -180,227 +179,223 @@ sys.path.remove("./platform/"+env_base["platform"])
sys.modules.pop('detect')
"""
-if (env_base['target']=='debug'):
- env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC']);
- env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
+if (env_base['target'] == 'debug'):
+ env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
+ env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
-if (env_base['deprecated']!='no'):
- env_base.Append(CPPFLAGS=['-DENABLE_DEPRECATED']);
+if (env_base['deprecated'] != 'no'):
+ env_base.Append(CPPFLAGS=['-DENABLE_DEPRECATED'])
env_base.platforms = {}
-selected_platform =""
+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()
-
- 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
-
- env.extra_suffix=""
-
- if env["extra_suffix"] != '' :
- env.extra_suffix += '.'+env["extra_suffix"]
-
- CCFLAGS = env.get('CCFLAGS', '')
- env['CCFLAGS'] = ''
-
- env.Append(CCFLAGS=string.split(str(CCFLAGS)))
-
- CFLAGS = env.get('CFLAGS', '')
- env['CFLAGS'] = ''
-
- env.Append(CFLAGS=string.split(str(CFLAGS)))
-
- LINKFLAGS = env.get('LINKFLAGS', '')
- env['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]
-
- #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']
-
- 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"
-
- 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"
-
- 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
-
- 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')
-
-
- 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')
-
-
- if (env.use_ptrcall):
- env.Append(CPPFLAGS=['-DPTRCALL_ENABLED']);
-
- # 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['minizip'] == 'yes'):
- env.Append(CPPFLAGS=['-DMINIZIP_ENABLED'])
-
- if (env['xml']=='yes'):
- env.Append(CPPFLAGS=['-DXML_ENABLED'])
-
- if (env['verbose']=='no'):
- methods.no_verbose(sys,env)
-
- Export('env')
-
- #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("modules/SCsub")
- SConscript("main/SCsub")
-
- SConscript("platform/"+selected_platform+"/SCsub"); # build selected platform
-
- # 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)
-
- # 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'
-
- # 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)
+ 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 = []
+
+ 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 = ""
+
+ if env["extra_suffix"] != '':
+ env.extra_suffix += '.' + env["extra_suffix"]
+
+ CCFLAGS = env.get('CCFLAGS', '')
+ env['CCFLAGS'] = ''
+
+ env.Append(CCFLAGS=string.split(str(CCFLAGS)))
+
+ CFLAGS = env.get('CFLAGS', '')
+ env['CFLAGS'] = ''
+
+ env.Append(CFLAGS=string.split(str(CFLAGS)))
+
+ LINKFLAGS = env.get('LINKFLAGS', '')
+ env['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]
+
+ # 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']
+
+ 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"
+
+ 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"
+
+ 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
+
+ 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')
+
+ 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')
+
+ if (env.use_ptrcall):
+ env.Append(CPPFLAGS=['-DPTRCALL_ENABLED'])
+
+ # 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['minizip'] == 'yes'):
+ env.Append(CPPFLAGS=['-DMINIZIP_ENABLED'])
+
+ if (env['xml'] == 'yes'):
+ env.Append(CPPFLAGS=['-DXML_ENABLED'])
+
+ if (env['verbose'] == 'no'):
+ methods.no_verbose(sys, env)
+
+ Export('env')
+
+ # 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("modules/SCsub")
+ SConscript("main/SCsub")
+
+ SConscript("platform/" + selected_platform + "/SCsub") # build selected platform
+
+ # 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)
+
+ # 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'
+
+ # 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>")
diff --git a/bin/SCsub b/bin/SCsub
index 6b29a44fd9..52f7e3bb39 100644
--- a/bin/SCsub
+++ b/bin/SCsub
@@ -3,4 +3,4 @@
Import('env')
Export('env')
-SConscript('tests/SCsub');
+SConscript('tests/SCsub')
diff --git a/bin/tests/SCsub b/bin/tests/SCsub
index 26687599e1..03495c0649 100644
--- a/bin/tests/SCsub
+++ b/bin/tests/SCsub
@@ -2,13 +2,13 @@
Import('env')
-env.tests_sources=[]
-env.add_source_files(env.tests_sources,"*.cpp")
+env.tests_sources = []
+env.add_source_files(env.tests_sources, "*.cpp")
Export('env')
-#SConscript('math/SCsub');
+# SConscript('math/SCsub');
-lib = env.Library("tests",env.tests_sources)
+lib = env.Library("tests", env.tests_sources)
env.Prepend(LIBS=[lib])
diff --git a/core/SCsub b/core/SCsub
index cbed2e4f35..caae3a1c9b 100644
--- a/core/SCsub
+++ b/core/SCsub
@@ -2,66 +2,66 @@
Import('env')
-env.core_sources=[]
+env.core_sources = []
-gd_call=""
-gd_inc=""
+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
-gd_cpp+="void Globals::register_global_defaults() {\n"+gd_call+"\n}\n"
+gd_cpp = '#include "globals.h"\n'
+gd_cpp += gd_inc
+gd_cpp += "void Globals::register_global_defaults() {\n" + gd_call + "\n}\n"
-f = open("global_defaults.cpp","wb")
+f = open("global_defaults.cpp", "wb")
f.write(gd_cpp)
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:
-
- 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)
+ 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)
f = open("script_encryption_key.cpp", "wb")
f.write("#include \"globals.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
f.close()
-env.add_source_files(env.core_sources,"*.cpp")
+env.add_source_files(env.core_sources, "*.cpp")
Export('env')
import make_binders
-env.Command(['method_bind.inc','method_bind_ext.inc'], 'make_binders.py', make_binders.run)
+env.Command(['method_bind.inc', 'method_bind_ext.inc'], 'make_binders.py', make_binders.run)
-SConscript('os/SCsub');
-SConscript('math/SCsub');
-SConscript('io/SCsub');
-SConscript('bind/SCsub');
+SConscript('os/SCsub')
+SConscript('math/SCsub')
+SConscript('io/SCsub')
+SConscript('bind/SCsub')
-lib = env.Library("core",env.core_sources)
+lib = env.Library("core", env.core_sources)
env.Prepend(LIBS=[lib])
diff --git a/core/bind/SCsub b/core/bind/SCsub
index c2731d60e6..4efc902717 100644
--- a/core/bind/SCsub
+++ b/core/bind/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.core_sources,"*.cpp")
+env.add_source_files(env.core_sources, "*.cpp")
Export('env')
diff --git a/core/io/SCsub b/core/io/SCsub
index 48cc9a5275..6789aa8bc6 100644
--- a/core/io/SCsub
+++ b/core/io/SCsub
@@ -2,8 +2,8 @@
Import('env')
-env.add_source_files(env.core_sources,"*.cpp")
-env.add_source_files(env.core_sources,"*.c")
-#env.core_sources.append("io/fastlz.c")
+env.add_source_files(env.core_sources, "*.cpp")
+env.add_source_files(env.core_sources, "*.c")
+# env.core_sources.append("io/fastlz.c")
Export('env')
diff --git a/core/make_binders.py b/core/make_binders.py
index 7584722965..ef71c4264b 100644
--- a/core/make_binders.py
+++ b/core/make_binders.py
@@ -1,7 +1,7 @@
# -*- coding: ibm850 -*-
-template_typed="""
+template_typed = """
#ifdef TYPED_METHOD_BIND
template<class T $ifret ,class R$ $ifargs ,$ $arg, class P@$>
class MethodBind$argc$$ifret R$$ifconst C$ : public MethodBind {
@@ -77,7 +77,7 @@ MethodBind* create_method_bind($ifret R$ $ifnoret void$ (T::*p_method)($arg, P@$
#endif
"""
-template="""
+template = """
#ifndef TYPED_METHOD_BIND
$iftempl template<$ $ifret class R$ $ifretargs ,$ $arg, class P@$ $iftempl >$
class MethodBind$argc$$ifret R$$ifconst C$ : public MethodBind {
@@ -166,96 +166,95 @@ 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=""
-
- 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 (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
-
- return outtext
+def make_version(template, nargs, argmax, const, ret):
+
+ 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 = ""
+
+ 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))
+
+ from_pos = end + 1
+
+ return outtext
def run(target, source, env):
- versions=10
- versions_ext=6
- text=""
- text_ext=""
-
- 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
-
-
- f=open(target[0].path,"w")
- f.write(text)
- f.close()
-
- f=open(target[1].path,"w")
- f.write(text_ext)
- f.close()
+ versions = 10
+ versions_ext = 6
+ text = ""
+ text_ext = ""
+
+ 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
+
+ f = open(target[0].path, "w")
+ f.write(text)
+ f.close()
+
+ f = open(target[1].path, "w")
+ f.write(text_ext)
+ f.close()
diff --git a/core/math/SCsub b/core/math/SCsub
index c2731d60e6..4efc902717 100644
--- a/core/math/SCsub
+++ b/core/math/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.core_sources,"*.cpp")
+env.add_source_files(env.core_sources, "*.cpp")
Export('env')
diff --git a/core/os/SCsub b/core/os/SCsub
index c2731d60e6..4efc902717 100644
--- a/core/os/SCsub
+++ b/core/os/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.core_sources,"*.cpp")
+env.add_source_files(env.core_sources, "*.cpp")
Export('env')
diff --git a/doc/tools/doc_merge.py b/doc/tools/doc_merge.py
index 536770bee4..57ac4bdcdd 100644
--- a/doc/tools/doc_merge.py
+++ b/doc/tools/doc_merge.py
@@ -6,206 +6,210 @@ import xml.etree.ElementTree as ET
tree = ET.parse(sys.argv[1])
-old_doc=tree.getroot()
+old_doc = tree.getroot()
tree = ET.parse(sys.argv[2])
-new_doc=tree.getroot()
+new_doc = tree.getroot()
-f = file(sys.argv[3],"wb")
-tab=0
+f = file(sys.argv[3], "wb")
+tab = 0
-old_classes={}
+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")
-def write_string(_f, text,newline=True):
- for t in range(tab):
- _f.write("\t")
- _f.write(text)
- if (newline):
- _f.write("\n")
def escape(ret):
- ret=ret.replace("&","&amp;");
- ret=ret.replace("<","&gt;");
- ret=ret.replace(">","&lt;");
- ret=ret.replace("'","&apos;");
- ret=ret.replace("\"","&quot;");
- return ret
+ ret = ret.replace("&", "&amp;")
+ ret = ret.replace("<", "&gt;")
+ ret = ret.replace(">", "&lt;")
+ ret = ret.replace("'", "&apos;")
+ ret = ret.replace("\"", "&quot;")
+ return ret
def inc_tab():
- global tab
- tab+=1
+ global tab
+ tab += 1
+
def dec_tab():
- 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
-
-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
-
- 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
-
- 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
+ global tab
+ tab -= 1
+
+write_string(f, '<?xml version="1.0" encoding="UTF-8" ?>')
+write_string(f, '<doc version="' + new_doc.attrib["version"] + '">')
-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
+def get_tag(node, name):
+ tag = ""
+ if (name in node.attrib):
+ tag = ' ' + name + '="' + escape(node.attrib[name]) + '" '
+ return tag
- 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>")
+def find_method_descr(old_class, name):
- 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()))
+ 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
- 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()))
+def find_signal_descr(old_class, name):
- write_string(f,"</description>")
+ 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
- methods = c.find("methods")
- if(methods!=None and len(list(methods))>0):
+ return None
- write_string(f,"<methods>")
- inc_tab()
- for m in list(methods):
- qualifiers=get_tag(m,"qualifiers")
+def find_constant_descr(old_class, name):
- write_string(f,'<method name="'+escape(m.attrib["name"])+'" ' +qualifiers+'>')
- inc_tab()
+ 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
- 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")
+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
- write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'"' +default+'>');
- write_string(f,'</argument>');
+ category = get_tag(c, "category")
+ inherits = get_tag(c, "inherits")
+ write_string(f, '<class name="' + class_name + '" ' + category + inherits + '>')
+ inc_tab()
- 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, "<brief_description>")
- write_string(f,'</description>');
- dec_tab()
- write_string(f,"</method>")
- dec_tab()
- write_string(f,"</methods>")
+ 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()))
- signals = c.find("signals")
- if(signals!=None and len(list(signals))>0):
+ write_string(f, "</brief_description>")
- write_string(f,"<signals>")
- inc_tab()
+ 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()))
- for m in list(signals):
+ write_string(f, "</description>")
- write_string(f,'<signal name="'+escape(m.attrib["name"])+'">')
- inc_tab()
+ methods = c.find("methods")
+ if(methods != None and len(list(methods)) > 0):
- for a in list(m):
- if (a.tag=="argument"):
+ write_string(f, "<methods>")
+ inc_tab()
- write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'">');
- write_string(f,'</argument>');
+ for m in list(methods):
+ qualifiers = get_tag(m, "qualifiers")
- 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, '<method name="' + escape(m.attrib["name"]) + '" ' + qualifiers + '>')
+ inc_tab()
- constants = c.find("constants")
- if(constants!=None and len(list(constants))>0):
+ 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"):
- write_string(f,"<constants>")
- inc_tab()
+ default = get_tag(a, "default")
- for m in list(constants):
+ 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,'<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, '<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())))
- dec_tab()
- write_string(f,"</constants>")
+ write_string(f, '</description>')
+ dec_tab()
+ write_string(f, "</method>")
+ dec_tab()
+ write_string(f, "</methods>")
- dec_tab()
- write_string(f,"</class>")
+ signals = c.find("signals")
+ if(signals != None and len(list(signals)) > 0):
-for c in list(old_doc):
- old_classes[c.attrib["name"]]=c
+ write_string(f, "<signals>")
+ inc_tab()
-for c in list(new_doc):
- write_class(c)
-write_string(f,'</doc>\n')
+ for m in list(signals):
+
+ write_string(f, '<signal name="' + escape(m.attrib["name"]) + '">')
+ inc_tab()
+
+ 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, '<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):
+
+ write_string(f, "<constants>")
+ inc_tab()
+
+ 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>")
+
+ dec_tab()
+ write_string(f, "</constants>")
+
+ dec_tab()
+ write_string(f, "</class>")
+
+for c in list(old_doc):
+ old_classes[c.attrib["name"]] = c
+
+for c in list(new_doc):
+ write_class(c)
+write_string(f, '</doc>\n')
diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py
index f0ede405ce..e05bcd63e7 100755
--- a/doc/tools/doc_status.py
+++ b/doc/tools/doc_status.py
@@ -11,233 +11,235 @@ 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
-
################################################################################
# Utils #
################################################################################
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))
+def nonescape_len(s):
+ return len(ansi_escape.sub('', s))
+
################################################################################
# Classes #
################################################################################
class ClassStatusProgress:
- 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 increment(self, described):
- if described:
- self.described += 1
- self.total += 1
-
- 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_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 __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 increment(self, described):
+ if described:
+ self.described += 1
+ self.total += 1
+
+ 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_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 __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 __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 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 __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 make_output(self):
- output = {}
- output['name'] = color('name', self.name)
+ 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
- ok_string = color('part_good', 'OK')
- missing_string = color('part_big_problem', 'MISSING')
+ def make_output(self):
+ output = {}
+ output['name'] = color('name', self.name)
- output['brief_description'] = ok_string if self.has_brief_description else missing_string
- output['description'] = ok_string if self.has_description else missing_string
+ ok_string = color('part_good', 'OK')
+ missing_string = color('part_big_problem', 'MISSING')
- description_progress = ClassStatusProgress(
- (self.has_brief_description + self.has_description) * overall_progress_description_weigth,
- 2 * overall_progress_description_weigth
- )
- items_progress = ClassStatusProgress()
+ output['brief_description'] = ok_string if self.has_brief_description else missing_string
+ output['description'] = ok_string if self.has_description else missing_string
- for k in ['methods', 'constants', 'members', 'signals']:
- items_progress += self.progresses[k]
- output[k] = self.progresses[k].to_configured_colored_string()
+ description_progress = ClassStatusProgress(
+ (self.has_brief_description + self.has_description) * overall_progress_description_weigth,
+ 2 * overall_progress_description_weigth
+ )
+ items_progress = ClassStatusProgress()
- output['items'] = items_progress.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['overall'] = (description_progress + items_progress).to_colored_string('{percent}%', '{pad_percent}{s}')
+ output['items'] = items_progress.to_configured_colored_string()
- 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()))
+ output['overall'] = (description_progress + items_progress).to_colored_string('{percent}%', '{pad_percent}{s}')
- if flags['s'] and not flags['g'] and self.is_ok():
- output['comment'] = color('part_good', 'ALL OK')
+ 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()))
- return output
+ if flags['s'] and not flags['g'] and self.is_ok():
+ output['comment'] = color('part_good', 'ALL OK')
- def generate_for_class(c):
- status = ClassStatus()
- status.name = c.attrib['name']
- for tag in list(c):
+ return output
- if tag.tag == 'brief_description':
- status.has_brief_description = len(tag.text.strip()) > 0
+ def generate_for_class(c):
+ status = ClassStatus()
+ status.name = c.attrib['name']
+ for tag in list(c):
- elif tag.tag == 'description':
- status.has_description = len(tag.text.strip()) > 0
+ if tag.tag == 'brief_description':
+ status.has_brief_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 == 'description':
+ status.has_description = len(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 ['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 ['theme_items']:
- pass #Ignore those tags, since they seem to lack description at all
+ elif tag.tag in ['constants', 'members']:
+ for sub_tag in list(tag):
+ status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0)
- else:
- print(tag.tag, tag.attrib)
+ elif tag.tag in ['theme_items']:
+ pass # Ignore those tags, since they seem to lack description at all
- return status
+ else:
+ print(tag.tag, tag.attrib)
+ return status
################################################################################
@@ -248,31 +250,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,29 +282,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))
-
- 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)
-
+ 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)
################################################################################
@@ -313,26 +314,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,34 +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)
-
- c = classes[cn]
- validate_tag(c, 'class')
- status = ClassStatus.generate_for_class(c)
+ if not cn in classes:
+ print('Cannot find class ' + cn + '!')
+ sys.exit(255)
- if flags['b'] and status.is_ok():
- continue
- if flags['g'] and not status.is_ok():
- continue
+ c = classes[cn]
+ validate_tag(c, 'class')
+ status = ClassStatus.generate_for_class(c)
- 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 flags['b'] and status.is_ok():
+ continue
+ if flags['g'] and not status.is_ok():
+ continue
- if 'comment' in out and out['comment'] != '':
- row.append(out['comment'])
-
- table.append(row)
+ 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'])
+ table.append(row)
################################################################################
@@ -381,50 +379,49 @@ 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') + '!')
diff --git a/doc/tools/makedoku.py b/doc/tools/makedoku.py
index 7c3ca29af8..ad3bfd791d 100644
--- a/doc/tools/makedoku.py
+++ b/doc/tools/makedoku.py
@@ -8,308 +8,295 @@ 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)
+def validate_tag(elem, tag):
+ if (elem.tag != tag):
+ print("Tag mismatch, expected '" + tag + "', got " + elem.tag)
+ sys.exit(255)
-class_names=[]
-classes={}
+class_names = []
+classes = {}
-def make_class_list(class_list,columns):
+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
+ classname = fit_columns[c][r]
+ initial = classname[0]
+ if (classname in indexers):
+ s += "**" + initial + "**|"
+ else:
+ s += " |"
- for r in range(0,row_max):
- s="|"
- for c in range(0,columns):
- if (r>=len(fit_columns[c])):
- continue
+ s += "[[" + classname.lower() + "|" + classname + "]]|"
- classname = fit_columns[c][r]
- initial=classname[0]
- if (classname in indexers):
- s+="**"+initial+"**|"
- else:
- s+=" |"
-
- 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
-
- 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]
-
- 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+"]"
-
-
- text=pre_text+tag_text+post_text
- pos=len(pre_text)+len(tag_text)
-
- #tnode = ET.SubElement(parent,"div")
- #tnode.text=text
- return text
+ pos = 0
+ while(True):
+ pos = text.find("[", pos)
+ if (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]
+
+ 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 + "]"
+
+ text = pre_text + tag_text + post_text
+ pos = len(pre_text) + len(tag_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
-
-
-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
-
- 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 (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"]+"]]"
-
- s+="**(**"
- argfound=False
- for a in mdata["argidx"]:
- arg=mdata[a]
- if (a<0):
- continue
- if (a>0):
- s+=", "
- else:
- s+=" "
+ 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
+
+ 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 (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"] + "]]"
- s+=make_type(arg.attrib["type"])
- if ("name" in arg.attrib):
- s+=" "+arg.attrib["name"]
- else:
- s+=" arg"+str(a)
+ s += "**(**"
+ argfound = False
+ for a in mdata["argidx"]:
+ arg = mdata[a]
+ if (a < 0):
+ continue
+ if (a > 0):
+ s += ", "
+ else:
+ s += " "
- if ("default" in arg.attrib):
- s+="="+arg.attrib["default"]
+ 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"]
- 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"]
-
- f=open(name.lower()+".txt","wb")
-
- 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")
-
- 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")
-
- 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)
-
- members = node.find("members")
-
- 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")
-
-
-
- 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")
-
- methods = node.find("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")
-
-
-
-
-
- """
+ name = node.attrib["name"]
+
+ f = open(name.lower() + ".txt", "wb")
+
+ 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")
+
+ 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")
+
+ 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)
+
+ members = node.find("members")
+
+ 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")
+
+ 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")
+
+ methods = node.find("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")
+
+ """
div=ET.Element("div")
div.attrib["class"]="class";
@@ -487,28 +474,26 @@ 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()
-make_class_list(class_names,4)
+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)
diff --git a/doc/tools/makehtml.py b/doc/tools/makehtml.py
index b0a8cbda88..3ecb8220cb 100644
--- a/doc/tools/makehtml.py
+++ b/doc/tools/makehtml.py
@@ -6,676 +6,647 @@ import xml.etree.ElementTree as ET
from xml.sax.saxutils import escape, unescape
html_escape_table = {
- '"': "&quot;",
- "'": "&apos;"
+ '"': "&quot;",
+ "'": "&apos;"
}
-html_unescape_table = {v:k for k, v in html_escape_table.items()}
+html_unescape_table = {v: k for k, v in html_escape_table.items()}
+
def html_escape(text):
- return escape(text, html_escape_table)
+ return escape(text, html_escape_table)
+
def html_unescape(text):
- return unescape(text, html_unescape_table)
+ return unescape(text, html_unescape_table)
input_list = []
-single_page=True
+single_page = True
for arg in sys.argv[1:]:
- if arg[:1] == "-":
- if arg[1:] == "multipage":
- single_page = False
- if arg[1:] == "singlepage":
- single_page = True
- else:
- input_list.append(arg)
+ if arg[:1] == "-":
+ if arg[1:] == "multipage":
+ single_page = False
+ if arg[1:] == "singlepage":
+ single_page = True
+ else:
+ input_list.append(arg)
if len(input_list) < 1:
- print("usage: makehtml.py <classes.xml>")
- sys.exit(0)
+ print("usage: makehtml.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)
+def validate_tag(elem, tag):
+ if (elem.tag != tag):
+ print("Tag mismatch, expected '" + tag + "', got " + elem.tag)
+ sys.exit(255)
-def make_html_bottom(body):
- #make_html_top(body,True)
- ET.SubElement(body,"hr")
- copyright = ET.SubElement(body,"span")
- copyright.text = "Copyright 2008-2010 Codenix SRL"
-
-def make_html_top(body,bottom=False):
-
- if (bottom):
- ET.SubElement(body,"hr")
-
- table = ET.SubElement(body,"table")
- table.attrib["class"]="top_table"
- tr = ET.SubElement(table,"tr")
- td = ET.SubElement(tr,"td")
- td.attrib["class"]="top_table"
-
- img = ET.SubElement(td,"image")
- img.attrib["src"]="images/logo.png"
- td = ET.SubElement(tr,"td")
- td.attrib["class"]="top_table"
- a = ET.SubElement(td,"a")
- a.attrib["href"]="index.html"
- a.text="Index"
- td = ET.SubElement(tr,"td")
- td.attrib["class"]="top_table"
- a = ET.SubElement(td,"a")
- a.attrib["href"]="alphabetical.html"
- a.text="Classes"
- td = ET.SubElement(tr,"td")
- td.attrib["class"]="top_table"
- a = ET.SubElement(td,"a")
- a.attrib["href"]="category.html"
- a.text="Categories"
- td = ET.SubElement(tr,"td")
- a = ET.SubElement(td,"a")
- a.attrib["href"]="inheritance.html"
- a.text="Inheritance"
- if (not bottom):
- ET.SubElement(body,"hr")
-
-
-
-
-def make_html_class_list(class_list,columns):
-
- div=ET.Element("div")
- div.attrib["class"]="ClassList";
-
- h1=ET.SubElement(div,"h2")
- h1.text="Alphabetical Class List"
-
- table=ET.SubElement(div,"table")
- table.attrib["class"]="class_table"
- table.attrib["width"]="100%"
- 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+=[[]]
-
- indexers=[]
- last_initial=""
-
- idx=0
- for n in class_list:
- col = int(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
-
- 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):
- tr = ET.SubElement(table,"tr")
- for c in range(0,columns):
- tdi = ET.SubElement(tr,"td")
- tdi.attrib["align"]="right"
- td = ET.SubElement(tr,"td")
- if (r>=len(fit_columns[c])):
- continue
-
- classname = fit_columns[c][r]
- print(classname)
- if (classname in indexers):
-
- span = ET.SubElement(tdi, "span")
- span.attrib["class"] = "class_index_letter"
- span.text = classname[:1].upper()
- if (single_page):
- link="#"+classname
+def make_html_bottom(body):
+ # make_html_top(body,True)
+ ET.SubElement(body, "hr")
+ copyright = ET.SubElement(body, "span")
+ copyright.text = "Copyright 2008-2010 Codenix SRL"
+
+
+def make_html_top(body, bottom=False):
+
+ if (bottom):
+ ET.SubElement(body, "hr")
+
+ table = ET.SubElement(body, "table")
+ table.attrib["class"] = "top_table"
+ tr = ET.SubElement(table, "tr")
+ td = ET.SubElement(tr, "td")
+ td.attrib["class"] = "top_table"
+
+ img = ET.SubElement(td, "image")
+ img.attrib["src"] = "images/logo.png"
+ td = ET.SubElement(tr, "td")
+ td.attrib["class"] = "top_table"
+ a = ET.SubElement(td, "a")
+ a.attrib["href"] = "index.html"
+ a.text = "Index"
+ td = ET.SubElement(tr, "td")
+ td.attrib["class"] = "top_table"
+ a = ET.SubElement(td, "a")
+ a.attrib["href"] = "alphabetical.html"
+ a.text = "Classes"
+ td = ET.SubElement(tr, "td")
+ td.attrib["class"] = "top_table"
+ a = ET.SubElement(td, "a")
+ a.attrib["href"] = "category.html"
+ a.text = "Categories"
+ td = ET.SubElement(tr, "td")
+ a = ET.SubElement(td, "a")
+ a.attrib["href"] = "inheritance.html"
+ a.text = "Inheritance"
+ if (not bottom):
+ ET.SubElement(body, "hr")
+
+
+def make_html_class_list(class_list, columns):
+
+ div = ET.Element("div")
+ div.attrib["class"] = "ClassList"
+
+ h1 = ET.SubElement(div, "h2")
+ h1.text = "Alphabetical Class List"
+
+ table = ET.SubElement(div, "table")
+ table.attrib["class"] = "class_table"
+ table.attrib["width"] = "100%"
+ 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 += [[]]
+
+ indexers = []
+ last_initial = ""
+
+ idx = 0
+ for n in class_list:
+ col = int(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
+
+ 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):
+ tr = ET.SubElement(table, "tr")
+ for c in range(0, columns):
+ tdi = ET.SubElement(tr, "td")
+ tdi.attrib["align"] = "right"
+ td = ET.SubElement(tr, "td")
+ if (r >= len(fit_columns[c])):
+ continue
+
+ classname = fit_columns[c][r]
+ print(classname)
+ if (classname in indexers):
+
+ span = ET.SubElement(tdi, "span")
+ span.attrib["class"] = "class_index_letter"
+ span.text = classname[:1].upper()
+
+ if (single_page):
+ link = "#" + classname
+ else:
+ link = classname + ".html"
+
+ a = ET.SubElement(td, "a")
+ a.attrib["href"] = link
+ a.text = classname
+
+ if (not single_page):
+ cat_class_list = ET.Element("html")
+ csscc = ET.SubElement(cat_class_list, "link")
+ csscc.attrib["href"] = "main.css"
+ csscc.attrib["rel"] = "stylesheet"
+ csscc.attrib["type"] = "text/css"
+ bodycc = ET.SubElement(cat_class_list, "body")
+ make_html_top(bodycc)
+
+ cat_class_parent = bodycc
else:
- link=classname+".html"
-
- a=ET.SubElement(td,"a")
- a.attrib["href"]=link
- a.text=classname
-
-
- if (not single_page):
- cat_class_list=ET.Element("html")
- csscc = ET.SubElement(cat_class_list, "link")
- csscc.attrib["href"] = "main.css"
- csscc.attrib["rel"] = "stylesheet"
- csscc.attrib["type"] = "text/css"
- bodycc = ET.SubElement(cat_class_list, "body")
- make_html_top(bodycc)
-
- cat_class_parent=bodycc
- else:
- cat_class_parent=div
-
-
-
-
- h1=ET.SubElement(cat_class_parent,"h2")
- h1.text="Class List By Category"
-
- class_cat_table={}
- class_cat_list=[]
-
- for c in class_list:
- clss = classes[c]
- if ("category" in clss.attrib):
- class_cat=clss.attrib["category"]
- else:
- class_cat="Core"
- if (class_cat.find("/")!=-1):
- class_cat=class_cat[class_cat.rfind("/")+1:]
- if (not class_cat in class_cat_list):
- class_cat_list.append(class_cat)
- class_cat_table[class_cat]=[]
- class_cat_table[class_cat].append(c)
-
- class_cat_list.sort()
-
- ct = ET.SubElement(cat_class_parent,"table")
- for cl in class_cat_list:
- l = class_cat_table[cl]
- l.sort()
- tr = ET.SubElement(ct,"tr")
- tr.attrib["class"]="category_title"
- td = ET.SubElement(ct,"td")
- td.attrib["class"]="category_title"
-
- a = ET.SubElement(td,"a")
- a.attrib["class"]="category_title"
- a.text=cl
- a.attrib["name"]="CATEGORY_"+cl
-
- td = ET.SubElement(ct,"td")
- td.attrib["class"]="category_title"
-
- for clt in l:
- tr = ET.SubElement(ct,"tr")
- td = ET.SubElement(ct,"td")
- make_type(clt,td)
- clss=classes[clt]
- bd = clss.find("brief_description")
- bdtext=""
- if (bd!=None):
- bdtext=bd.text
- td = ET.SubElement(ct,"td")
- td.text=bdtext
-
- if (not single_page):
- make_html_bottom(bodycc)
- catet_out = ET.ElementTree(cat_class_list)
- catet_out.write("category.html")
-
-
- if (not single_page):
- inh_class_list=ET.Element("html")
- cssic = ET.SubElement(inh_class_list, "link")
- cssic.attrib["href"] = "main.css"
- cssic.attrib["rel"] = "stylesheet"
- cssic.attrib["type"] = "text/css"
- bodyic = ET.SubElement(inh_class_list, "body")
- make_html_top(bodyic)
- inh_class_parent=bodyic
- else:
- inh_class_parent=div
-
-
-
-
- h1=ET.SubElement(inh_class_parent,"h2")
- h1.text="Class List By Inheritance"
-
- itemlist = ET.SubElement(inh_class_parent,"list")
-
- class_inh_table={}
-
- def add_class(clss):
- if (clss.attrib["name"] in class_inh_table):
- return #already added
- parent_list=None
-
- if ("inherits" in clss.attrib):
- inhc = clss.attrib["inherits"]
- if (not (inhc in class_inh_table)):
- add_class(classes[inhc])
-
- parent_list = class_inh_table[inhc].find("div")
- if (parent_list == None):
- parent_div = ET.SubElement(class_inh_table[inhc],"div")
- parent_list = ET.SubElement(parent_div,"list")
- parent_div.attrib["class"]="inh_class_list"
+ cat_class_parent = div
+
+ h1 = ET.SubElement(cat_class_parent, "h2")
+ h1.text = "Class List By Category"
+
+ class_cat_table = {}
+ class_cat_list = []
+
+ for c in class_list:
+ clss = classes[c]
+ if ("category" in clss.attrib):
+ class_cat = clss.attrib["category"]
+ else:
+ class_cat = "Core"
+ if (class_cat.find("/") != -1):
+ class_cat = class_cat[class_cat.rfind("/") + 1:]
+ if (not class_cat in class_cat_list):
+ class_cat_list.append(class_cat)
+ class_cat_table[class_cat] = []
+ class_cat_table[class_cat].append(c)
+
+ class_cat_list.sort()
+
+ ct = ET.SubElement(cat_class_parent, "table")
+ for cl in class_cat_list:
+ l = class_cat_table[cl]
+ l.sort()
+ tr = ET.SubElement(ct, "tr")
+ tr.attrib["class"] = "category_title"
+ td = ET.SubElement(ct, "td")
+ td.attrib["class"] = "category_title"
+
+ a = ET.SubElement(td, "a")
+ a.attrib["class"] = "category_title"
+ a.text = cl
+ a.attrib["name"] = "CATEGORY_" + cl
+
+ td = ET.SubElement(ct, "td")
+ td.attrib["class"] = "category_title"
+
+ for clt in l:
+ tr = ET.SubElement(ct, "tr")
+ td = ET.SubElement(ct, "td")
+ make_type(clt, td)
+ clss = classes[clt]
+ bd = clss.find("brief_description")
+ bdtext = ""
+ if (bd != None):
+ bdtext = bd.text
+ td = ET.SubElement(ct, "td")
+ td.text = bdtext
+
+ if (not single_page):
+ make_html_bottom(bodycc)
+ catet_out = ET.ElementTree(cat_class_list)
+ catet_out.write("category.html")
+
+ if (not single_page):
+ inh_class_list = ET.Element("html")
+ cssic = ET.SubElement(inh_class_list, "link")
+ cssic.attrib["href"] = "main.css"
+ cssic.attrib["rel"] = "stylesheet"
+ cssic.attrib["type"] = "text/css"
+ bodyic = ET.SubElement(inh_class_list, "body")
+ make_html_top(bodyic)
+ inh_class_parent = bodyic
else:
- parent_list = parent_list.find("list")
+ inh_class_parent = div
+ h1 = ET.SubElement(inh_class_parent, "h2")
+ h1.text = "Class List By Inheritance"
- else:
- parent_list=itemlist
-
- item = ET.SubElement(parent_list,"li")
-# item.attrib["class"]="inh_class_list"
- class_inh_table[clss.attrib["name"]]=item
- make_type(clss.attrib["name"],item)
-
-
- for c in class_list:
- add_class(classes[c])
-
- if (not single_page):
- make_html_bottom(bodyic)
- catet_out = ET.ElementTree(inh_class_list)
- catet_out.write("inheritance.html")
+ itemlist = ET.SubElement(inh_class_parent, "list")
+ class_inh_table = {}
+ def add_class(clss):
+ if (clss.attrib["name"] in class_inh_table):
+ return # already added
+ parent_list = None
+ if ("inherits" in clss.attrib):
+ inhc = clss.attrib["inherits"]
+ if (not (inhc in class_inh_table)):
+ add_class(classes[inhc])
+ parent_list = class_inh_table[inhc].find("div")
+ if (parent_list == None):
+ parent_div = ET.SubElement(class_inh_table[inhc], "div")
+ parent_list = ET.SubElement(parent_div, "list")
+ parent_div.attrib["class"] = "inh_class_list"
+ else:
+ parent_list = parent_list.find("list")
- #h1=ET.SubElement(div,"h2")
- #h1.text="Class List By Inheritance"
+ else:
+ parent_list = itemlist
- return div
-
-
-def make_type(p_type,p_parent):
- if (p_type=="RefPtr"):
- p_type="Resource"
-
- if (p_type in class_names):
- a=ET.SubElement(p_parent,"a")
- a.attrib["class"]="datatype_existing"
- a.text=p_type+" "
- if (single_page):
- a.attrib["href"]="#"+p_type
- else:
- a.attrib["href"]=p_type+".html"
- else:
- span=ET.SubElement(p_parent,"span")
- span.attrib["class"]="datatype"
- span.text=p_type+" "
+ item = ET.SubElement(parent_list, "li")
+# item.attrib["class"]="inh_class_list"
+ class_inh_table[clss.attrib["name"]] = item
+ make_type(clss.attrib["name"], item)
+ for c in class_list:
+ add_class(classes[c])
+ if (not single_page):
+ make_html_bottom(bodyic)
+ catet_out = ET.ElementTree(inh_class_list)
+ catet_out.write("inheritance.html")
-def make_text_def(class_name,parent,text):
- text = html_escape(text)
- pos=0
- while(True):
- pos = text.find("[",pos)
- if (pos==-1):
- break
+ # h1=ET.SubElement(div,"h2")
+ #h1.text="Class List By Inheritance"
- endq_pos=text.find("]",pos+1)
- if (endq_pos==-1):
- break
+ return div
- pre_text=text[:pos]
- post_text=text[endq_pos+1:]
- tag_text=text[pos+1:endq_pos]
- if (tag_text in class_names):
- if (single_page):
- tag_text='<a href="#'+tag_text+'">'+tag_text+'</a>'
- else:
- tag_text='<a href="'+tag_text+'.html">'+tag_text+'</a>'
- 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:]
+def make_type(p_type, p_parent):
+ if (p_type == "RefPtr"):
+ p_type = "Resource"
- if (not single_page and param.find(".")!=-1):
- class_param,method_param=param.split(".")
- tag_text=tag_text='<a href="'+class_param+'.html#'+class_param+"_"+method_param+'">'+class_param+'.'+method_param+'()</a>'
+ if (p_type in class_names):
+ a = ET.SubElement(p_parent, "a")
+ a.attrib["class"] = "datatype_existing"
+ a.text = p_type + " "
+ if (single_page):
+ a.attrib["href"] = "#" + p_type
+ else:
+ a.attrib["href"] = p_type + ".html"
else:
- tag_text=tag_text='<a href="#'+class_name+"_"+param+'">'+class_name+'.'+param+'()</a>'
- elif (cmd.find("image=")==0):
- print("found image: "+cmd)
- tag_text="<img src="+cmd[6:]+"/>"
- elif (cmd.find("url=")==0):
- tag_text="<a href="+cmd[4:]+">"
- elif (cmd=="/url"):
- tag_text="</a>"
- elif (cmd=="center"):
- tag_text="<div align=\"center\">"
- elif (cmd=="/center"):
- tag_text="</div>"
- elif (cmd=="br"):
- tag_text="<br/>"
- elif (cmd=="i" or cmd=="/i" or cmd=="b" or cmd=="/b" or cmd=="u" or cmd=="/u"):
- tag_text="<"+tag_text+">" #html direct mapping
- else:
- tag_text="["+tag_text+"]"
-
-
- text=pre_text+tag_text+post_text
- pos=len(pre_text)+len(tag_text)
-
- #tnode = ET.SubElement(parent,"div")
- #tnode.text=text
- text="<div class=\"description\">"+text+"</div>"
- try:
- tnode=ET.XML(text)
- parent.append(tnode)
- except:
- print("Error parsing description text: '"+text+"'")
- sys.exit(255)
-
-
- return tnode
-
-
-
-
-def make_method_def(name,m,declare,event=False):
-
- mdata={}
-
-
- if (not declare):
- div=ET.Element("tr")
- div.attrib["class"]="method"
- ret_parent=ET.SubElement(div,"td")
- ret_parent.attrib["align"]="right"
- func_parent=ET.SubElement(div,"td")
- else:
- div=ET.Element("div")
- div.attrib["class"]="method"
- ret_parent=div
- func_parent=div
-
- mdata["argidx"]=[]
- mdata["name"]=m.attrib["name"]
- qualifiers=""
- if ("qualifiers" in m.attrib):
- qualifiers=m.attrib["qualifiers"]
-
- args=list(m)
- 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
-
- if (not event):
- if (-1 in mdata["argidx"]):
- make_type(mdata[-1].attrib["type"],ret_parent)
- mdata["argidx"].remove(-1)
- else:
- make_type("void",ret_parent)
-
- span=ET.SubElement(func_parent,"span")
- if (declare):
- span.attrib["class"]="funcdecl"
- a=ET.SubElement(span,"a")
- a.attrib["name"]=name+"_"+m.attrib["name"]
- a.text=name+"::"+m.attrib["name"]
- else:
- span.attrib["class"]="identifier funcdef"
- a=ET.SubElement(span,"a")
- a.attrib["href"]="#"+name+"_"+m.attrib["name"]
- a.text=m.attrib["name"]
-
- span=ET.SubElement(func_parent,"span")
- span.attrib["class"]="symbol"
- span.text=" ("
-
- for a in mdata["argidx"]:
- arg=mdata[a]
- if (a>0):
- span=ET.SubElement(func_parent,"span")
- span.text=", "
- else:
- span=ET.SubElement(func_parent,"span")
- span.text=" "
-
-
- make_type(arg.attrib["type"],func_parent)
-
- span=ET.SubElement(func_parent,"span")
- span.text=arg.attrib["name"]
- if ("default" in arg.attrib):
- span.text=span.text+"="+arg.attrib["default"]
-
-
- span=ET.SubElement(func_parent,"span")
- span.attrib["class"]="symbol"
- if (len(mdata["argidx"])):
- span.text=" )"
- else:
- span.text=")"
-
- if (qualifiers):
- span=ET.SubElement(func_parent,"span")
- span.attrib["class"]="qualifier"
- span.text=" "+qualifiers
-
- return div
-
-
-def make_html_class(node):
-
- div=ET.Element("div")
- div.attrib["class"]="class";
-
- a=ET.SubElement(div,"a")
- a.attrib["name"]=node.attrib["name"]
+ span = ET.SubElement(p_parent, "span")
+ span.attrib["class"] = "datatype"
+ span.text = p_type + " "
+
+
+def make_text_def(class_name, parent, text):
+ text = html_escape(text)
+ pos = 0
+ while(True):
+ pos = text.find("[", pos)
+ if (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]
+
+ if (tag_text in class_names):
+ if (single_page):
+ tag_text = '<a href="#' + tag_text + '">' + tag_text + '</a>'
+ else:
+ tag_text = '<a href="' + tag_text + '.html">' + tag_text + '</a>'
+ 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 (not single_page and param.find(".") != -1):
+ class_param, method_param = param.split(".")
+ tag_text = tag_text = '<a href="' + class_param + '.html#' + class_param + "_" + method_param + '">' + class_param + '.' + method_param + '()</a>'
+ else:
+ tag_text = tag_text = '<a href="#' + class_name + "_" + param + '">' + class_name + '.' + param + '()</a>'
+ elif (cmd.find("image=") == 0):
+ print("found image: " + cmd)
+ tag_text = "<img src=" + cmd[6:] + "/>"
+ elif (cmd.find("url=") == 0):
+ tag_text = "<a href=" + cmd[4:] + ">"
+ elif (cmd == "/url"):
+ tag_text = "</a>"
+ elif (cmd == "center"):
+ tag_text = "<div align=\"center\">"
+ elif (cmd == "/center"):
+ tag_text = "</div>"
+ elif (cmd == "br"):
+ tag_text = "<br/>"
+ elif (cmd == "i" or cmd == "/i" or cmd == "b" or cmd == "/b" or cmd == "u" or cmd == "/u"):
+ tag_text = "<" + tag_text + ">" # html direct mapping
+ else:
+ tag_text = "[" + tag_text + "]"
+
+ text = pre_text + tag_text + post_text
+ pos = len(pre_text) + len(tag_text)
+
+ #tnode = ET.SubElement(parent,"div")
+ # tnode.text=text
+ text = "<div class=\"description\">" + text + "</div>"
+ try:
+ tnode = ET.XML(text)
+ parent.append(tnode)
+ except:
+ print("Error parsing description text: '" + text + "'")
+ sys.exit(255)
+
+ return tnode
+
+
+def make_method_def(name, m, declare, event=False):
+
+ mdata = {}
+
+ if (not declare):
+ div = ET.Element("tr")
+ div.attrib["class"] = "method"
+ ret_parent = ET.SubElement(div, "td")
+ ret_parent.attrib["align"] = "right"
+ func_parent = ET.SubElement(div, "td")
+ else:
+ div = ET.Element("div")
+ div.attrib["class"] = "method"
+ ret_parent = div
+ func_parent = div
+
+ mdata["argidx"] = []
+ mdata["name"] = m.attrib["name"]
+ qualifiers = ""
+ if ("qualifiers" in m.attrib):
+ qualifiers = m.attrib["qualifiers"]
+
+ args = list(m)
+ 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
+
+ if (not event):
+ if (-1 in mdata["argidx"]):
+ make_type(mdata[-1].attrib["type"], ret_parent)
+ mdata["argidx"].remove(-1)
+ else:
+ make_type("void", ret_parent)
+
+ span = ET.SubElement(func_parent, "span")
+ if (declare):
+ span.attrib["class"] = "funcdecl"
+ a = ET.SubElement(span, "a")
+ a.attrib["name"] = name + "_" + m.attrib["name"]
+ a.text = name + "::" + m.attrib["name"]
+ else:
+ span.attrib["class"] = "identifier funcdef"
+ a = ET.SubElement(span, "a")
+ a.attrib["href"] = "#" + name + "_" + m.attrib["name"]
+ a.text = m.attrib["name"]
+
+ span = ET.SubElement(func_parent, "span")
+ span.attrib["class"] = "symbol"
+ span.text = " ("
+
+ for a in mdata["argidx"]:
+ arg = mdata[a]
+ if (a > 0):
+ span = ET.SubElement(func_parent, "span")
+ span.text = ", "
+ else:
+ span = ET.SubElement(func_parent, "span")
+ span.text = " "
+
+ make_type(arg.attrib["type"], func_parent)
+
+ span = ET.SubElement(func_parent, "span")
+ span.text = arg.attrib["name"]
+ if ("default" in arg.attrib):
+ span.text = span.text + "=" + arg.attrib["default"]
+
+ span = ET.SubElement(func_parent, "span")
+ span.attrib["class"] = "symbol"
+ if (len(mdata["argidx"])):
+ span.text = " )"
+ else:
+ span.text = ")"
- h3=ET.SubElement(a,"h3")
- h3.attrib["class"]="title class_title"
- h3.text=node.attrib["name"]
+ if (qualifiers):
+ span = ET.SubElement(func_parent, "span")
+ span.attrib["class"] = "qualifier"
+ span.text = " " + qualifiers
- briefd = node.find("brief_description")
- if (briefd!=None):
- div2=ET.SubElement(div,"div")
- div2.attrib["class"]="description class_description"
- div2.text=briefd.text
+ return div
- if ("inherits" in node.attrib):
- ET.SubElement(div,"br")
- div2=ET.SubElement(div,"div")
- div2.attrib["class"]="inheritance";
+def make_html_class(node):
- span=ET.SubElement(div2,"span")
- span.text="Inherits: "
+ div = ET.Element("div")
+ div.attrib["class"] = "class"
- make_type(node.attrib["inherits"],div2)
+ a = ET.SubElement(div, "a")
+ a.attrib["name"] = node.attrib["name"]
- if ("category" in node.attrib):
- ET.SubElement(div,"br")
+ h3 = ET.SubElement(a, "h3")
+ h3.attrib["class"] = "title class_title"
+ h3.text = node.attrib["name"]
- div3=ET.SubElement(div,"div")
- div3.attrib["class"]="category";
+ briefd = node.find("brief_description")
+ if (briefd != None):
+ div2 = ET.SubElement(div, "div")
+ div2.attrib["class"] = "description class_description"
+ div2.text = briefd.text
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="category"
- span.text="Category: "
+ if ("inherits" in node.attrib):
+ ET.SubElement(div, "br")
- a = ET.SubElement(div3,"a")
- a.attrib["class"]="category_ref"
- a.text=node.attrib["category"]
- catname=a.text
- if (catname.rfind("/")!=-1):
- catname=catname[catname.rfind("/"):]
- catname="CATEGORY_"+catname
+ div2 = ET.SubElement(div, "div")
+ div2.attrib["class"] = "inheritance"
- if (single_page):
- a.attrib["href"]="#"+catname
- else:
- a.attrib["href"]="category.html#"+catname
+ span = ET.SubElement(div2, "span")
+ span.text = "Inherits: "
+ make_type(node.attrib["inherits"], div2)
- methods = node.find("methods")
+ if ("category" in node.attrib):
+ ET.SubElement(div, "br")
- if(methods!=None and len(list(methods))>0):
+ div3 = ET.SubElement(div, "div")
+ div3.attrib["class"] = "category"
- h4=ET.SubElement(div,"h4")
- h4.text="Public Methods:"
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "category"
+ span.text = "Category: "
- method_table=ET.SubElement(div,"table")
- method_table.attrib["class"]="method_list";
+ a = ET.SubElement(div3, "a")
+ a.attrib["class"] = "category_ref"
+ a.text = node.attrib["category"]
+ catname = a.text
+ if (catname.rfind("/") != -1):
+ catname = catname[catname.rfind("/"):]
+ catname = "CATEGORY_" + catname
- for m in list(methods):
-# li = ET.SubElement(div2, "li")
- method_table.append( make_method_def(node.attrib["name"],m,False) )
+ if (single_page):
+ a.attrib["href"] = "#" + catname
+ else:
+ a.attrib["href"] = "category.html#" + catname
- events = node.find("signals")
+ methods = node.find("methods")
- if(events!=None and len(list(events))>0):
- h4=ET.SubElement(div,"h4")
- h4.text="Events:"
+ if(methods != None and len(list(methods)) > 0):
- event_table=ET.SubElement(div,"table")
- event_table.attrib["class"]="method_list";
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Public Methods:"
- for m in list(events):
-# li = ET.SubElement(div2, "li")
- event_table.append( make_method_def(node.attrib["name"],m,False,True) )
+ method_table = ET.SubElement(div, "table")
+ method_table.attrib["class"] = "method_list"
+ for m in list(methods):
+ #li = ET.SubElement(div2, "li")
+ method_table.append(make_method_def(node.attrib["name"], m, False))
- members = node.find("members")
- if(members!=None and len(list(members))>0):
+ events = node.find("signals")
- h4=ET.SubElement(div,"h4")
- h4.text="Public Variables:"
- div2=ET.SubElement(div,"div")
- div2.attrib["class"]="member_list";
+ if(events != None and len(list(events)) > 0):
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Events:"
- for c in list(members):
+ event_table = ET.SubElement(div, "table")
+ event_table.attrib["class"] = "method_list"
- li = ET.SubElement(div2, "li")
- div3=ET.SubElement(li,"div")
- div3.attrib["class"]="member";
- make_type(c.attrib["type"],div3)
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="identifier member_name"
- span.text=" "+c.attrib["name"]+" "
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="member_description"
- span.text=c.text
+ for m in list(events):
+ #li = ET.SubElement(div2, "li")
+ event_table.append(make_method_def(node.attrib["name"], m, False, True))
+ members = node.find("members")
+ if(members != None and len(list(members)) > 0):
- constants = node.find("constants")
- if(constants!=None and len(list(constants))>0):
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Public Variables:"
+ div2 = ET.SubElement(div, "div")
+ div2.attrib["class"] = "member_list"
- h4=ET.SubElement(div,"h4")
- h4.text="Constants:"
- div2=ET.SubElement(div,"div")
- div2.attrib["class"]="constant_list";
+ for c in list(members):
- for c in list(constants):
- li = ET.SubElement(div2, "li")
- div3=ET.SubElement(li,"div")
- div3.attrib["class"]="constant";
+ li = ET.SubElement(div2, "li")
+ div3 = ET.SubElement(li, "div")
+ div3.attrib["class"] = "member"
+ make_type(c.attrib["type"], div3)
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "identifier member_name"
+ span.text = " " + c.attrib["name"] + " "
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "member_description"
+ span.text = c.text
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="identifier constant_name"
- span.text=c.attrib["name"]+" "
- if ("value" in c.attrib):
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="symbol"
- span.text="= "
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="constant_value"
- span.text=c.attrib["value"]+" "
- span=ET.SubElement(div3,"span")
- span.attrib["class"]="constant_description"
- span.text=c.text
+ constants = node.find("constants")
+ if(constants != None and len(list(constants)) > 0):
+
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Constants:"
+ div2 = ET.SubElement(div, "div")
+ div2.attrib["class"] = "constant_list"
+
+ for c in list(constants):
+ li = ET.SubElement(div2, "li")
+ div3 = ET.SubElement(li, "div")
+ div3.attrib["class"] = "constant"
+
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "identifier constant_name"
+ span.text = c.attrib["name"] + " "
+ if ("value" in c.attrib):
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "symbol"
+ span.text = "= "
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "constant_value"
+ span.text = c.attrib["value"] + " "
+ span = ET.SubElement(div3, "span")
+ span.attrib["class"] = "constant_description"
+ span.text = c.text
# ET.SubElement(div,"br")
+ descr = node.find("description")
+ if (descr != None and descr.text.strip() != ""):
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Description:"
- descr=node.find("description")
- if (descr!=None and descr.text.strip()!=""):
- h4=ET.SubElement(div,"h4")
- h4.text="Description:"
-
- make_text_def(node.attrib["name"],div,descr.text)
+ make_text_def(node.attrib["name"], div, descr.text)
# div2=ET.SubElement(div,"div")
# div2.attrib["class"]="description";
# div2.text=descr.text
+ if(methods != None or events != None):
+ h4 = ET.SubElement(div, "h4")
+ h4.text = "Method Documentation:"
+ iter_list = []
+ if (methods != None):
+ iter_list += list(methods)
+ if (events != None):
+ iter_list += list(events)
- if(methods!=None or events!=None):
-
- h4=ET.SubElement(div,"h4")
- h4.text="Method Documentation:"
- iter_list = []
- if (methods!=None):
- iter_list+=list(methods)
- if (events!=None):
- iter_list+=list(events)
-
- for m in iter_list:
-
- descr=m.find("description")
-
- if (descr==None or descr.text.strip()==""):
- continue;
+ for m in iter_list:
- div2=ET.SubElement(div,"div")
- div2.attrib["class"]="method_doc";
+ descr = m.find("description")
+ if (descr == None or descr.text.strip() == ""):
+ continue
- div2.append( make_method_def(node.attrib["name"],m,True) )
- #anchor = ET.SubElement(div2, "a")
- #anchor.attrib["name"] =
- make_text_def(node.attrib["name"],div2,descr.text)
- #div3=ET.SubElement(div2,"div")
- #div3.attrib["class"]="description";
- #div3.text=descr.text
+ div2 = ET.SubElement(div, "div")
+ div2.attrib["class"] = "method_doc"
+ div2.append(make_method_def(node.attrib["name"], m, True))
+ #anchor = ET.SubElement(div2, "a")
+ # anchor.attrib["name"] =
+ make_text_def(node.attrib["name"], div2, descr.text)
+ # div3=ET.SubElement(div2,"div")
+ # div3.attrib["class"]="description";
+ # div3.text=descr.text
- return div
+ return div
-class_names=[]
-classes={}
+class_names = []
+classes = {}
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
html = ET.Element("html")
css = ET.SubElement(html, "link")
@@ -685,36 +656,34 @@ css.attrib["type"] = "text/css"
body = ET.SubElement(html, "body")
if (not single_page):
- make_html_top(body)
-
+ make_html_top(body)
class_names.sort()
-body.append( make_html_class_list(class_names,5) )
+body.append(make_html_class_list(class_names, 5))
for cn in class_names:
- c=classes[cn]
- if (single_page):
- body.append( make_html_class(c))
- else:
- html2 = ET.Element("html")
- css = ET.SubElement(html2, "link")
- css.attrib["href"] = "main.css"
- css.attrib["rel"] = "stylesheet"
- css.attrib["type"] = "text/css"
- body2 = ET.SubElement(html2, "body" )
- make_html_top(body2)
- body2.append( make_html_class(c) );
- make_html_bottom(body2)
- et_out = ET.ElementTree(html2)
- et_out.write(c.attrib["name"]+".html")
+ c = classes[cn]
+ if (single_page):
+ body.append(make_html_class(c))
+ else:
+ html2 = ET.Element("html")
+ css = ET.SubElement(html2, "link")
+ css.attrib["href"] = "main.css"
+ css.attrib["rel"] = "stylesheet"
+ css.attrib["type"] = "text/css"
+ body2 = ET.SubElement(html2, "body")
+ make_html_top(body2)
+ body2.append(make_html_class(c))
+ make_html_bottom(body2)
+ et_out = ET.ElementTree(html2)
+ et_out.write(c.attrib["name"] + ".html")
et_out = ET.ElementTree(html)
if (single_page):
- et_out.write("singlepage.html")
+ et_out.write("singlepage.html")
else:
- make_html_bottom(body)
- et_out.write("alphabetical.html")
-
+ make_html_bottom(body)
+ et_out.write("alphabetical.html")
diff --git a/doc/tools/makemd.py b/doc/tools/makemd.py
index e0fbe9af03..bd0d4c6819 100644
--- a/doc/tools/makemd.py
+++ b/doc/tools/makemd.py
@@ -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,320 @@ 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 = []
-
- for n in range(0, columns):
- fit_columns += [[]]
-
- 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]
-
- 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])
-
- 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")
-
- 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 += ' | '
-
- s += '[' + classname + '](class_'+ classname.lower()+') | '
-
- s += '\n'
- f.write(s)
+ 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 += [[]]
+
+ 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]
+
+ 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])
+
+ 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")
+
+ 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 += ' | '
+
+ s += '[' + classname + '](class_' + classname.lower() + ') | '
+
+ 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
-
- 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]
-
- 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 = '['+class_param+'.'+method_param.replace("_","&#95;")+'](' + class_param.lower() + '#' \
- + method_param + ')'
- else:
- tag_text = '[' + param.replace("_","&#95;") + '](#' + 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)
+ pos = 0
+ while True:
+ pos = text.find('[', pos)
+ if 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]
+
+ 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 = '[' + class_param + '.' + method_param.replace("_", "&#95;") + '](' + class_param.lower() + '#' \
+ + method_param + ')'
+ else:
+ tag_text = '[' + param.replace("_", "&#95;") + '](#' + 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)
# 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,
- ):
-
- 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
-
- if not event:
- if -1 in mdata['argidx']:
- s += make_type(mdata[-1].attrib['type'])
- else:
- s += 'void'
- s += ' '
-
- 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'].replace("_","&#95;")+'** '
- else:
- s += ' **['+ m.attrib['name'].replace("_","&#95;")+'](#' + 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 += 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']
-
- argfound = True
-
- if argfound:
- s += ' '
- s += ' **)**'
-
- if 'qualifiers' in m.attrib:
- s += ' ' + m.attrib['qualifiers']
-
- f.write(s + '\n')
+ 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
+
+ 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 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'].replace("_", "&#95;") + '** '
+ else:
+ s += ' **[' + m.attrib['name'].replace("_", "&#95;") + '](#' + 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 += 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']
+
+ argfound = True
+
+ if argfound:
+ s += ' '
+ s += ' **)**'
+
+ if 'qualifiers' in m.attrib:
+ s += ' ' + m.attrib['qualifiers']
+
+ f.write(s + '\n')
def make_doku_class(node):
- name = node.attrib['name']
-
- f = open("class_"+name.lower() + '.md', 'wb')
-
- 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')
-
- 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')
-
- 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)
-
- members = node.find('members')
-
- 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')
-
- 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')
-
- methods = node.find('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')
+ name = node.attrib['name']
+
+ f = open("class_" + name.lower() + '.md', 'wb')
+
+ 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')
+
+ 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')
+
+ 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)
+
+ members = node.find('members')
+
+ 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')
+
+ 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')
+
+ methods = node.find('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')
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)
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py
index 718cf4a275..6b6780ce1e 100644
--- a/doc/tools/makerst.py
+++ b/doc/tools/makerst.py
@@ -8,512 +8,510 @@ 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
+
+def ul_string(str, ul):
+ 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 = []
-
- for n in range(0, columns):
- fit_columns += [[]]
-
- 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]
-
- 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])
-
- 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")
-
- 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 += ' | '
-
- s += '[' + classname + '](class_'+ classname.lower()+') | '
-
- s += '\n'
- f.write(s)
-
- 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
-
- 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!")
-
- 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
-
- 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
-
- 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
-
- # 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
-
- # 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
-
- 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 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)
+ 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 += [[]]
+
+ 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]
+
+ 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])
+
+ 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")
+
+ 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 += ' | '
+
+ s += '[' + classname + '](class_' + classname.lower() + ') | '
+
+ s += '\n'
+ f.write(s)
+
+ 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
+
+ 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!")
+
+ 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
+
+ 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
+
+ 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
+
+ # 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
+
+ # 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
+
+ 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 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)
# 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
- ):
-
- 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
-
- 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 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"]
-
- 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 += 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']
-
- argfound = True
-
- if argfound:
- s += ' '
- s += ' **)**'
-
- if 'qualifiers' in m.attrib:
- s += ' ' + m.attrib['qualifiers']
+ f,
+ name,
+ m,
+ declare,
+ cname,
+ event=False,
+ pp=None
+):
+
+ 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
+
+ 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 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"]
+
+ 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 += 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']
+
+ argfound = True
+
+ if argfound:
+ s += ' '
+ s += ' **)**'
+
+ 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(make_type(inh))
- inode = classes[inh]
- if ('inherits' in inode.attrib):
- inh=inode.attrib['inherits'].strip()
- else:
- inh=None
-
-
- 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'])
-
- 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")
-
- 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
-
- 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')
-
- 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')
-
- 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")
-
- 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('**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("\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'])
+
+ 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")
+
+ 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
+
+ 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')
+
+ 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')
+
+ 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")
+
+ 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()
-#Don't make class list for Sphinx, :toctree: handles it
+# Don't make class list for Sphinx, :toctree: handles it
#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)
diff --git a/drivers/SCsub b/drivers/SCsub
index 8571b0c4ec..08a189272f 100644
--- a/drivers/SCsub
+++ b/drivers/SCsub
@@ -2,41 +2,41 @@
Import('env')
-env.drivers_sources=[]
+env.drivers_sources = []
if ("builtin_zlib" in env and env["builtin_zlib"] == "yes"):
- SConscript("zlib/SCsub");
+ SConscript("zlib/SCsub")
# OS drivers
-SConscript('unix/SCsub');
-SConscript('windows/SCsub');
+SConscript('unix/SCsub')
+SConscript('windows/SCsub')
# Sounds drivers
-SConscript('alsa/SCsub');
-SConscript('pulseaudio/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');
-SConscript('gl_context/SCsub');
+SConscript('gles2/SCsub')
+SConscript('gl_context/SCsub')
# Core dependencies
-SConscript("png/SCsub");
+SConscript("png/SCsub")
# Tools override
# FIXME: Should likely be integrated in the tools/ codebase
-if (env["tools"]=="yes"):
- SConscript("convex_decomp/SCsub");
+if (env["tools"] == "yes"):
+ SConscript("convex_decomp/SCsub")
-if env['vsproj']=="yes":
- env.AddToVSProject(env.drivers_sources)
+if env['vsproj'] == "yes":
+ 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])
diff --git a/drivers/gl_context/SCsub b/drivers/gl_context/SCsub
index cf37e9fe36..efc925dae4 100644
--- a/drivers/gl_context/SCsub
+++ b/drivers/gl_context/SCsub
@@ -2,20 +2,20 @@
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]
+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]
- 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")
diff --git a/drivers/gles2/shaders/SCsub b/drivers/gles2/shaders/SCsub
index 1de5604321..bf4ec9485d 100644
--- a/drivers/gles2/shaders/SCsub
+++ b/drivers/gles2/shaders/SCsub
@@ -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')
diff --git a/drivers/png/SCsub b/drivers/png/SCsub
index 04cb70e1c1..aedde3e2b7 100644
--- a/drivers/png/SCsub
+++ b/drivers/png/SCsub
@@ -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")
diff --git a/drivers/rtaudio/SCsub b/drivers/rtaudio/SCsub
index f0273dd421..2b0a602965 100644
--- a/drivers/rtaudio/SCsub
+++ b/drivers/rtaudio/SCsub
@@ -7,12 +7,12 @@ 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]
env.add_source_files(env.drivers_sources, thirdparty_sources)
-env.Append(CPPPATH = [thirdparty_dir])
+env.Append(CPPPATH=[thirdparty_dir])
# Driver source files
env.add_source_files(env.drivers_sources, "*.cpp")
diff --git a/drivers/unix/SCsub b/drivers/unix/SCsub
index fe427e747f..3766e782e4 100644
--- a/drivers/unix/SCsub
+++ b/drivers/unix/SCsub
@@ -2,13 +2,13 @@
Import('env')
-g_set_p='#ifdef UNIX_ENABLED\n'
-g_set_p+='#include "os_unix.h"\n'
-g_set_p+='String OS_Unix::get_global_settings_path() const {\n'
-g_set_p+='\treturn "' + env["unix_global_settings_path"]+'";\n'
-g_set_p+='}\n'
-g_set_p+='#endif'
-f = open("os_unix_global_settings_path.cpp","wb")
+g_set_p = '#ifdef UNIX_ENABLED\n'
+g_set_p += '#include "os_unix.h"\n'
+g_set_p += 'String OS_Unix::get_global_settings_path() const {\n'
+g_set_p += '\treturn "' + env["unix_global_settings_path"] + '";\n'
+g_set_p += '}\n'
+g_set_p += '#endif'
+f = open("os_unix_global_settings_path.cpp", "wb")
f.write(g_set_p)
f.close()
diff --git a/drivers/zlib/SCsub b/drivers/zlib/SCsub
index 6a099aff52..407deb5f6e 100644
--- a/drivers/zlib/SCsub
+++ b/drivers/zlib/SCsub
@@ -8,19 +8,19 @@ 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]
env.add_source_files(env.drivers_sources, thirdparty_sources)
-env.Append(CPPPATH = [thirdparty_dir])
+env.Append(CPPPATH=[thirdparty_dir])
diff --git a/main/SCsub b/main/SCsub
index cd9002de0a..a83563f44d 100644
--- a/main/SCsub
+++ b/main/SCsub
@@ -2,11 +2,11 @@
Import('env')
-env.main_sources=[]
-env.add_source_files(env.main_sources,"*.cpp")
+env.main_sources = []
+env.add_source_files(env.main_sources, "*.cpp")
Export('env')
-lib = env.Library("main",env.main_sources)
+lib = env.Library("main", env.main_sources)
env.Prepend(LIBS=[lib])
diff --git a/methods.py b/methods.py
index efe2400c1c..91afd9e70b 100755
--- a/methods.py
+++ b/methods.py
@@ -1,258 +1,253 @@
import os
-def add_source_files(self, sources, filetype, lib_env = None, shared = False):
- import glob;
- import string;
- #if not lib_objects:
- if not lib_env:
- lib_env = self
- if type(filetype) == type(""):
-
- dir = self.Dir('.').abspath
- list = glob.glob(dir + "/"+filetype)
- for f in list:
- sources.append( self.Object(f) )
- else:
- for f in filetype:
- sources.append(self.Object(f))
-
-
-def build_shader_header( target, source, env ):
-
- for x in source:
- print x
-
- name = str(x)
- name = name[ name.rfind("/")+1: ]
- name = name[ name.rfind("\\")+1: ]
- name = name.replace(".","_")
-
-
- fs = open(str(x),"r")
- fd = open(str(x)+".h","w")
- fd.write("/* this file has been generated by SCons, do not edit! */\n")
- fd.write("static const char *"+name+"=\n")
- line=fs.readline()
- while(line):
- line=line.replace("\r","")
- line=line.replace("\n","")
- line=line.replace("\\","\\\\")
- line=line.replace("\"","\\\"")
- fd.write("\""+line+"\\n\"\n")
- line=fs.readline()
-
- fd.write(";\n")
-
- return 0
-
-
-def build_glsl_header( filename ):
-
- fs = open(filename,"r")
- line=fs.readline()
-
- vertex_lines=[]
- fragment_lines=[]
- uniforms=[]
- attributes=[]
- fbos=[]
- conditionals=[]
- texunits=[]
- texunit_names=[]
- ubos=[]
- ubo_names=[]
-
- reading=""
- line_offset=0
- vertex_offset=0
- fragment_offset=0
-
- while(line):
-
- if (line.find("[vertex]")!=-1):
- reading="vertex"
- line=fs.readline()
- line_offset+=1
- vertex_offset=line_offset
- continue
-
- if (line.find("[fragment]")!=-1):
- reading="fragment"
- line=fs.readline()
- line_offset+=1
- fragment_offset=line_offset
- continue
-
- if (line.find("#ifdef ")!=-1):
- ifdefline = line.replace("#ifdef ","").strip()
- if (not ifdefline in conditionals):
- conditionals+=[ifdefline]
-
- if (line.find("#elif defined(")!=-1):
- ifdefline = line.replace("#elif defined(","").strip()
- ifdefline = ifdefline.replace(")","").strip()
- if (not ifdefline in conditionals):
- conditionals+=[ifdefline]
-
-
- import re
- if re.search(r"^\s*uniform", line):
-
- if (line.lower().find("texunit:")!=-1):
- #texture unit
- texunit = str(int( line[line.find(":")+1:].strip() ))
- uline=line[:line.lower().find("//")]
- uline = uline.replace("uniform","");
- uline = uline.replace(";","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in texunit_names):
- texunits+=[(x,texunit)]
- texunit_names+=[x]
-
- elif (line.lower().find("ubo:")!=-1):
- #ubo
- uboidx = str(int( line[line.find(":")+1:].strip() ))
- uline=line[:line.lower().find("//")]
- uline = uline[uline.find("uniform")+len("uniform"):];
- uline = uline.replace(";","");
- uline = uline.replace("{","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in ubo_names):
- ubos+=[(x,uboidx)]
- ubo_names+=[x]
-
-
-
- else:
- uline = line.replace("uniform","");
- uline = uline.replace(";","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in uniforms):
- uniforms+=[x]
-
- if ((line.strip().find("in ")==0 or line.strip().find("attribute ")==0) and line.find("attrib:")!=-1):
- uline = line.replace("in ","");
- uline = uline.replace("attribute ","");
- uline = uline.replace(";","");
- uline = uline[ uline.find(" "): ].strip()
-
-
- if (uline.find("//")!=-1):
- name,bind = uline.split("//")
- if (bind.find("attrib:")!=-1):
- name=name.strip()
- bind=bind.replace("attrib:","").strip()
- attributes+=[(name,bind)]
-
- if (line.strip().find("out ")==0):
- uline = line.replace("out","").strip();
- uline = uline.replace(";","");
- uline = uline[ uline.find(" "): ].strip()
-
-
- if (uline.find("//")!=-1):
- name,bind = uline.split("//")
- if (bind.find("drawbuffer:")!=-1):
- name=name.strip()
- bind=bind.replace("drawbuffer:","").strip()
- fbos+=[(name,bind)]
-
- line=line.replace("\r","")
- line=line.replace("\n","")
- line=line.replace("\\","\\\\")
- line=line.replace("\"","\\\"")
- #line=line+"\\n\\" no need to anymore
-
- if (reading=="vertex"):
- vertex_lines+=[line]
- if (reading=="fragment"):
- fragment_lines+=[line]
-
- line=fs.readline()
- line_offset+=1
-
- fs.close();
-
- out_file = filename+".h"
- fd = open(out_file,"w")
-
- fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n");
-
- out_file_base = out_file
- out_file_base = out_file_base[ out_file_base.rfind("/")+1: ]
- out_file_base = out_file_base[ out_file_base.rfind("\\")+1: ]
+
+def add_source_files(self, sources, filetype, lib_env=None, shared=False):
+ import glob
+ import string
+ # if not lib_objects:
+ if not lib_env:
+ lib_env = self
+ if type(filetype) == type(""):
+
+ dir = self.Dir('.').abspath
+ list = glob.glob(dir + "/" + filetype)
+ for f in list:
+ sources.append(self.Object(f))
+ else:
+ for f in filetype:
+ sources.append(self.Object(f))
+
+
+def build_shader_header(target, source, env):
+
+ for x in source:
+ print x
+
+ name = str(x)
+ name = name[name.rfind("/") + 1:]
+ name = name[name.rfind("\\") + 1:]
+ name = name.replace(".", "_")
+
+ fs = open(str(x), "r")
+ fd = open(str(x) + ".h", "w")
+ fd.write("/* this file has been generated by SCons, do not edit! */\n")
+ fd.write("static const char *" + name + "=\n")
+ line = fs.readline()
+ while(line):
+ line = line.replace("\r", "")
+ line = line.replace("\n", "")
+ line = line.replace("\\", "\\\\")
+ line = line.replace("\"", "\\\"")
+ fd.write("\"" + line + "\\n\"\n")
+ line = fs.readline()
+
+ fd.write(";\n")
+
+ return 0
+
+
+def build_glsl_header(filename):
+
+ fs = open(filename, "r")
+ line = fs.readline()
+
+ vertex_lines = []
+ fragment_lines = []
+ uniforms = []
+ attributes = []
+ fbos = []
+ conditionals = []
+ texunits = []
+ texunit_names = []
+ ubos = []
+ ubo_names = []
+
+ reading = ""
+ line_offset = 0
+ vertex_offset = 0
+ fragment_offset = 0
+
+ while(line):
+
+ if (line.find("[vertex]") != -1):
+ reading = "vertex"
+ line = fs.readline()
+ line_offset += 1
+ vertex_offset = line_offset
+ continue
+
+ if (line.find("[fragment]") != -1):
+ reading = "fragment"
+ line = fs.readline()
+ line_offset += 1
+ fragment_offset = line_offset
+ continue
+
+ if (line.find("#ifdef ") != -1):
+ ifdefline = line.replace("#ifdef ", "").strip()
+ if (not ifdefline in conditionals):
+ conditionals += [ifdefline]
+
+ if (line.find("#elif defined(") != -1):
+ ifdefline = line.replace("#elif defined(", "").strip()
+ ifdefline = ifdefline.replace(")", "").strip()
+ if (not ifdefline in conditionals):
+ conditionals += [ifdefline]
+
+ import re
+ if re.search(r"^\s*uniform", line):
+
+ if (line.lower().find("texunit:") != -1):
+ # texture unit
+ texunit = str(int(line[line.find(":") + 1:].strip()))
+ uline = line[:line.lower().find("//")]
+ uline = uline.replace("uniform", "")
+ uline = uline.replace(";", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in texunit_names):
+ texunits += [(x, texunit)]
+ texunit_names += [x]
+
+ elif (line.lower().find("ubo:") != -1):
+ # ubo
+ uboidx = str(int(line[line.find(":") + 1:].strip()))
+ uline = line[:line.lower().find("//")]
+ uline = uline[uline.find("uniform") + len("uniform"):]
+ uline = uline.replace(";", "")
+ uline = uline.replace("{", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in ubo_names):
+ ubos += [(x, uboidx)]
+ ubo_names += [x]
+
+ else:
+ uline = line.replace("uniform", "")
+ uline = uline.replace(";", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in uniforms):
+ uniforms += [x]
+
+ if ((line.strip().find("in ") == 0 or line.strip().find("attribute ") == 0) and line.find("attrib:") != -1):
+ uline = line.replace("in ", "")
+ uline = uline.replace("attribute ", "")
+ uline = uline.replace(";", "")
+ uline = uline[uline.find(" "):].strip()
+
+ if (uline.find("//") != -1):
+ name, bind = uline.split("//")
+ if (bind.find("attrib:") != -1):
+ name = name.strip()
+ bind = bind.replace("attrib:", "").strip()
+ attributes += [(name, bind)]
+
+ if (line.strip().find("out ") == 0):
+ uline = line.replace("out", "").strip()
+ uline = uline.replace(";", "")
+ uline = uline[uline.find(" "):].strip()
+
+ if (uline.find("//") != -1):
+ name, bind = uline.split("//")
+ if (bind.find("drawbuffer:") != -1):
+ name = name.strip()
+ bind = bind.replace("drawbuffer:", "").strip()
+ fbos += [(name, bind)]
+
+ line = line.replace("\r", "")
+ line = line.replace("\n", "")
+ line = line.replace("\\", "\\\\")
+ line = line.replace("\"", "\\\"")
+ # line=line+"\\n\\" no need to anymore
+
+ if (reading == "vertex"):
+ vertex_lines += [line]
+ if (reading == "fragment"):
+ fragment_lines += [line]
+
+ line = fs.readline()
+ line_offset += 1
+
+ fs.close()
+
+ out_file = filename + ".h"
+ fd = open(out_file, "w")
+
+ fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n")
+
+ out_file_base = out_file
+ out_file_base = out_file_base[out_file_base.rfind("/") + 1:]
+ out_file_base = out_file_base[out_file_base.rfind("\\") + 1:]
# print("out file "+out_file+" base " +out_file_base)
- out_file_ifdef = out_file_base.replace(".","_").upper()
- fd.write("#ifndef "+out_file_ifdef+"\n")
- fd.write("#define "+out_file_ifdef+"\n")
-
- out_file_class = out_file_base.replace(".glsl.h","").title().replace("_","").replace(".","")+"ShaderGL";
- fd.write("\n\n");
- fd.write("#include \"drivers/opengl/shader_gl.h\"\n\n\n");
- fd.write("class "+out_file_class+" : public ShaderGL {\n\n");
- fd.write("\t virtual String get_shader_name() const { return \""+out_file_class+"\"; }\n");
- fd.write("public:\n\n");
-
- if (len(conditionals)):
- fd.write("\tenum Conditionals {\n");
- for x in conditionals:
- fd.write("\t\t"+x+",\n");
- fd.write("\t};\n\n");
- if (len(uniforms)):
- fd.write("\tenum Uniforms {\n");
- for x in uniforms:
- fd.write("\t\t"+x.upper()+",\n");
- fd.write("\t};\n\n");
-
- fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n");
- if (len(conditionals)):
-
- fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n");
- fd.write("\t#define _FU if (get_uniform(p_uniform)<0) return; ERR_FAIL_COND( get_active()!=this );\n\n ");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(get_uniform(p_uniform),1,col); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU GLfloat vec2[2]={p_vec2.x,p_vec2.y}; glUniform2fv(get_uniform(p_uniform),1,vec2); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU GLfloat vec3[3]={p_vec3.x,p_vec3.y,p_vec3.z}; glUniform3fv(get_uniform(p_uniform),1,vec3); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU glUniform2f(get_uniform(p_uniform),p_a,p_b); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU glUniform3f(get_uniform(p_uniform),p_a,p_b,p_c); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU glUniform4f(get_uniform(p_uniform),p_a,p_b,p_c,p_d); }\n\n");
-
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
+ out_file_ifdef = out_file_base.replace(".", "_").upper()
+ fd.write("#ifndef " + out_file_ifdef + "\n")
+ fd.write("#define " + out_file_ifdef + "\n")
+
+ out_file_class = out_file_base.replace(".glsl.h", "").title().replace("_", "").replace(".", "") + "ShaderGL"
+ fd.write("\n\n")
+ fd.write("#include \"drivers/opengl/shader_gl.h\"\n\n\n")
+ fd.write("class " + out_file_class + " : public ShaderGL {\n\n")
+ fd.write("\t virtual String get_shader_name() const { return \"" + out_file_class + "\"; }\n")
+ fd.write("public:\n\n")
+
+ if (len(conditionals)):
+ fd.write("\tenum Conditionals {\n")
+ for x in conditionals:
+ fd.write("\t\t" + x + ",\n")
+ fd.write("\t};\n\n")
+ if (len(uniforms)):
+ fd.write("\tenum Uniforms {\n")
+ for x in uniforms:
+ fd.write("\t\t" + x.upper() + ",\n")
+ fd.write("\t};\n\n")
+
+ fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n")
+ if (len(conditionals)):
+
+ fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n")
+ fd.write("\t#define _FU if (get_uniform(p_uniform)<0) return; ERR_FAIL_COND( get_active()!=this );\n\n ")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(get_uniform(p_uniform),1,col); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU GLfloat vec2[2]={p_vec2.x,p_vec2.y}; glUniform2fv(get_uniform(p_uniform),1,vec2); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU GLfloat vec3[3]={p_vec3.x,p_vec3.y,p_vec3.z}; glUniform3fv(get_uniform(p_uniform),1,vec3); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU glUniform2f(get_uniform(p_uniform),p_a,p_b); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU glUniform3f(get_uniform(p_uniform),p_a,p_b,p_c); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU glUniform4f(get_uniform(p_uniform),p_a,p_b,p_c,p_d); }\n\n")
+
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
const Transform &tr = p_transform;
@@ -281,9 +276,9 @@ def build_glsl_header( filename ):
}
- """);
+ """)
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Matrix32& p_transform) { _FU
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Matrix32& p_transform) { _FU
const Matrix32 &tr = p_transform;
@@ -312,9 +307,9 @@ def build_glsl_header( filename ):
}
- """);
+ """)
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
GLfloat matrix[16];
@@ -326,233 +321,226 @@ def build_glsl_header( filename ):
}
glUniformMatrix4fv(get_uniform(p_uniform),1,false,matrix);
- }; """);
-
- fd.write("\n\n#undef _FU\n\n\n");
-
-
- fd.write("\tvirtual void init() {\n\n");
- if (len(conditionals)):
-
- fd.write("\t\tstatic const char* _conditional_strings[]={\n")
- if (len(conditionals)):
- for x in conditionals:
- fd.write("\t\t\t\"#define "+x+"\\n\",\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
-
- if (len(uniforms)):
-
- fd.write("\t\tstatic const char* _uniform_strings[]={\n")
- if (len(uniforms)):
- for x in uniforms:
- fd.write("\t\t\t\""+x+"\",\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
-
- if (len(attributes)):
-
- fd.write("\t\tstatic AttributePair _attribute_pairs[]={\n")
- for x in attributes:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic AttributePair *_attribute_pairs=NULL;\n")
-
-
-
- if (len(fbos)):
- fd.write("\t\tstatic FBOPair _fbo_pairs[]={\n")
- for x in fbos:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic FBOPair *_fbo_pairs=NULL;\n")
-
- if (len(ubos)):
- fd.write("\t\tstatic UBOPair _ubo_pairs[]={\n")
- for x in ubos:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic UBOPair *_ubo_pairs=NULL;\n")
-
- if (len(texunits)):
- fd.write("\t\tstatic TexUnitPair _texunit_pairs[]={\n")
- for x in texunits:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic TexUnitPair *_texunit_pairs=NULL;\n")
-
- fd.write("\t\tstatic const char* _vertex_code=\"\\\n")
- for x in vertex_lines:
- fd.write("\t\t\t"+x+"\n");
- fd.write("\t\t\";\n\n");
-
- fd.write("\t\tstatic const int _vertex_code_start="+str(vertex_offset)+";\n")
+ }; """)
+ fd.write("\n\n#undef _FU\n\n\n")
- fd.write("\t\tstatic const char* _fragment_code=\"\\\n")
- for x in fragment_lines:
- fd.write("\t\t\t"+x+"\n");
- fd.write("\t\t\";\n\n");
+ fd.write("\tvirtual void init() {\n\n")
+ if (len(conditionals)):
- fd.write("\t\tstatic const int _fragment_code_start="+str(fragment_offset)+";\n")
+ fd.write("\t\tstatic const char* _conditional_strings[]={\n")
+ if (len(conditionals)):
+ for x in conditionals:
+ fd.write("\t\t\t\"#define " + x + "\\n\",\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
- fd.write("\t\tsetup(_conditional_strings,"+str(len(conditionals))+",_uniform_strings,"+str(len(uniforms))+",_attribute_pairs,"+str(len(attributes))+",_fbo_pairs,"+str(len(fbos))+",_ubo_pairs,"+str(len(ubos))+",_texunit_pairs,"+str(len(texunits))+",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
- fd.write("\t};\n\n")
+ if (len(uniforms)):
- fd.write("};\n\n");
- fd.write("#endif\n\n");
- fd.close();
+ fd.write("\t\tstatic const char* _uniform_strings[]={\n")
+ if (len(uniforms)):
+ for x in uniforms:
+ fd.write("\t\t\t\"" + x + "\",\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
+
+ if (len(attributes)):
+
+ fd.write("\t\tstatic AttributePair _attribute_pairs[]={\n")
+ for x in attributes:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic AttributePair *_attribute_pairs=NULL;\n")
+
+ if (len(fbos)):
+ fd.write("\t\tstatic FBOPair _fbo_pairs[]={\n")
+ for x in fbos:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic FBOPair *_fbo_pairs=NULL;\n")
+
+ if (len(ubos)):
+ fd.write("\t\tstatic UBOPair _ubo_pairs[]={\n")
+ for x in ubos:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic UBOPair *_ubo_pairs=NULL;\n")
+
+ if (len(texunits)):
+ fd.write("\t\tstatic TexUnitPair _texunit_pairs[]={\n")
+ for x in texunits:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic TexUnitPair *_texunit_pairs=NULL;\n")
+
+ fd.write("\t\tstatic const char* _vertex_code=\"\\\n")
+ for x in vertex_lines:
+ fd.write("\t\t\t" + x + "\n")
+ fd.write("\t\t\";\n\n")
+
+ fd.write("\t\tstatic const int _vertex_code_start=" + str(vertex_offset) + ";\n")
+
+ fd.write("\t\tstatic const char* _fragment_code=\"\\\n")
+ for x in fragment_lines:
+ fd.write("\t\t\t" + x + "\n")
+ fd.write("\t\t\";\n\n")
+
+ fd.write("\t\tstatic const int _fragment_code_start=" + str(fragment_offset) + ";\n")
+
+ fd.write("\t\tsetup(_conditional_strings," + str(len(conditionals)) + ",_uniform_strings," + str(len(uniforms)) + ",_attribute_pairs," + str(len(attributes)) + ",_fbo_pairs," + str(len(fbos)) + ",_ubo_pairs," + str(len(ubos)) + ",_texunit_pairs," + str(len(texunits)) + ",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
+ fd.write("\t};\n\n")
+
+ fd.write("};\n\n")
+ fd.write("#endif\n\n")
+ fd.close()
+
+
+def build_glsl_headers(target, source, env):
+
+ for x in source:
+
+ build_glsl_header(str(x))
+
+ return 0
+
+
+def build_hlsl_dx9_header(filename):
+
+ fs = open(filename, "r")
+ line = fs.readline()
+
+ vertex_lines = []
+ fragment_lines = []
+ uniforms = []
+ fragment_uniforms = []
+ attributes = []
+ fbos = []
+ conditionals = []
+
+ reading = ""
+ line_offset = 0
+ vertex_offset = 0
+ fragment_offset = 0
+
+ while(line):
+
+ if (line.find("[vertex]") != -1):
+ reading = "vertex"
+ line = fs.readline()
+ line_offset += 1
+ vertex_offset = line_offset
+ continue
+
+ if (line.find("[fragment]") != -1):
+ reading = "fragment"
+ line = fs.readline()
+ line_offset += 1
+ fragment_offset = line_offset
+ continue
+
+ if (line.find("#ifdef ") != -1):
+ ifdefline = line.replace("#ifdef ", "").strip()
+ if (not ifdefline in conditionals):
+ conditionals += [ifdefline]
+
+ if (line.find("#elif defined(") != -1):
+ ifdefline = line.replace("#elif defined(", "").strip()
+ ifdefline = ifdefline.replace(")", "").strip()
+ if (not ifdefline in conditionals):
+ conditionals += [ifdefline]
+ if (line.find("uniform") != -1):
+ uline = line.replace("uniform", "")
+ uline = uline.replace(";", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in uniforms):
+ uniforms += [x]
+ fragment_uniforms += [reading == "fragment"]
+ line = line.replace("\r", "")
+ line = line.replace("\n", "")
+ line = line.replace("\\", "\\\\")
+ line = line.replace("\"", "\\\"")
+ line = line + "\\n\\"
+ if (reading == "vertex"):
+ vertex_lines += [line]
+ if (reading == "fragment"):
+ fragment_lines += [line]
-def build_glsl_headers( target, source, env ):
+ line = fs.readline()
+ line_offset += 1
- for x in source:
+ fs.close()
- build_glsl_header(str(x));
+ out_file = filename + ".h"
+ fd = open(out_file, "w")
+ fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n")
- return 0
-
-
-
-def build_hlsl_dx9_header( filename ):
-
- fs = open(filename,"r")
- line=fs.readline()
-
- vertex_lines=[]
- fragment_lines=[]
- uniforms=[]
- fragment_uniforms=[]
- attributes=[]
- fbos=[]
- conditionals=[]
-
- reading=""
- line_offset=0
- vertex_offset=0
- fragment_offset=0
-
- while(line):
-
- if (line.find("[vertex]")!=-1):
- reading="vertex"
- line=fs.readline()
- line_offset+=1
- vertex_offset=line_offset
- continue
-
- if (line.find("[fragment]")!=-1):
- reading="fragment"
- line=fs.readline()
- line_offset+=1
- fragment_offset=line_offset
- continue
-
- if (line.find("#ifdef ")!=-1):
- ifdefline = line.replace("#ifdef ","").strip()
- if (not ifdefline in conditionals):
- conditionals+=[ifdefline]
-
- if (line.find("#elif defined(")!=-1):
- ifdefline = line.replace("#elif defined(","").strip()
- ifdefline = ifdefline.replace(")","").strip()
- if (not ifdefline in conditionals):
- conditionals+=[ifdefline]
- if (line.find("uniform")!=-1):
- uline = line.replace("uniform","");
- uline = uline.replace(";","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in uniforms):
- uniforms+=[x]
- fragment_uniforms+=[reading=="fragment"]
- line=line.replace("\r","")
- line=line.replace("\n","")
- line=line.replace("\\","\\\\")
- line=line.replace("\"","\\\"")
- line=line+"\\n\\"
-
- if (reading=="vertex"):
- vertex_lines+=[line]
- if (reading=="fragment"):
- fragment_lines+=[line]
-
- line=fs.readline()
- line_offset+=1
-
- fs.close();
-
- out_file = filename+".h"
- fd = open(out_file,"w")
-
- fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n");
-
- out_file_base = out_file
- out_file_base = out_file_base[ out_file_base.rfind("/")+1: ]
- out_file_base = out_file_base[ out_file_base.rfind("\\")+1: ]
+ out_file_base = out_file
+ out_file_base = out_file_base[out_file_base.rfind("/") + 1:]
+ out_file_base = out_file_base[out_file_base.rfind("\\") + 1:]
# print("out file "+out_file+" base " +out_file_base)
- out_file_ifdef = out_file_base.replace(".","_").upper()
- fd.write("#ifndef "+out_file_ifdef+"\n")
- fd.write("#define "+out_file_ifdef+"\n")
-
- out_file_class = out_file_base.replace(".hlsl.h","").title().replace("_","").replace(".","")+"ShaderDX9";
- fd.write("\n\n");
- fd.write("#include \"drivers/directx9/shader_dx9.h\"\n\n\n");
- fd.write("class "+out_file_class+" : public ShaderDX9 {\n\n");
- fd.write("\t virtual String get_shader_name() const { return \""+out_file_class+"\"; }\n");
- fd.write("public:\n\n");
-
- if (len(conditionals)):
- fd.write("\tenum Conditionals {\n");
- for x in conditionals:
- fd.write("\t\t"+x+",\n");
- fd.write("\t};\n\n");
- if (len(uniforms)):
- fd.write("\tenum Uniforms {\n");
- for x in uniforms:
- fd.write("\t\t"+x.upper()+",\n");
- fd.write("\t};\n\n");
-
-
- if (len(conditionals)):
- fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n");
-
- fd.write("\t#define _FU if (!_uniform_valid(p_uniform)) return; ERR_FAIL_COND( get_active()!=this );\n\n ");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, bool p_value) { _FU set_uniformb(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU set_uniformf(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU set_uniformf(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU float col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; set_uniformfv(p_uniform,col); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU float vec2[4]={p_vec2.x,p_vec2.y,0,0}; set_uniformfv(p_uniform,vec2); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU float vec3[4]={p_vec3.x,p_vec3.y,p_vec3.z,0}; set_uniformfv(p_uniform,vec3); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU float vec2[4]={p_a,p_b,0,0}; set_uniformfv(p_uniform,vec2); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU float vec3[4]={p_a,p_b,p_c,0}; set_uniformfv(p_uniform,vec3); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU float vec4[4]={p_a,p_b,p_c,p_d}; set_uniformfv(p_uniform,vec4); }\n\n");
-
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
+ out_file_ifdef = out_file_base.replace(".", "_").upper()
+ fd.write("#ifndef " + out_file_ifdef + "\n")
+ fd.write("#define " + out_file_ifdef + "\n")
+
+ out_file_class = out_file_base.replace(".hlsl.h", "").title().replace("_", "").replace(".", "") + "ShaderDX9"
+ fd.write("\n\n")
+ fd.write("#include \"drivers/directx9/shader_dx9.h\"\n\n\n")
+ fd.write("class " + out_file_class + " : public ShaderDX9 {\n\n")
+ fd.write("\t virtual String get_shader_name() const { return \"" + out_file_class + "\"; }\n")
+ fd.write("public:\n\n")
+
+ if (len(conditionals)):
+ fd.write("\tenum Conditionals {\n")
+ for x in conditionals:
+ fd.write("\t\t" + x + ",\n")
+ fd.write("\t};\n\n")
+ if (len(uniforms)):
+ fd.write("\tenum Uniforms {\n")
+ for x in uniforms:
+ fd.write("\t\t" + x.upper() + ",\n")
+ fd.write("\t};\n\n")
+
+ if (len(conditionals)):
+ fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n")
+
+ fd.write("\t#define _FU if (!_uniform_valid(p_uniform)) return; ERR_FAIL_COND( get_active()!=this );\n\n ")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, bool p_value) { _FU set_uniformb(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU set_uniformf(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU set_uniformf(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n");
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU set_uniformi(p_uniform,p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU float col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; set_uniformfv(p_uniform,col); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU float vec2[4]={p_vec2.x,p_vec2.y,0,0}; set_uniformfv(p_uniform,vec2); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU float vec3[4]={p_vec3.x,p_vec3.y,p_vec3.z,0}; set_uniformfv(p_uniform,vec3); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU float vec2[4]={p_a,p_b,0,0}; set_uniformfv(p_uniform,vec2); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU float vec3[4]={p_a,p_b,p_c,0}; set_uniformfv(p_uniform,vec3); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU float vec4[4]={p_a,p_b,p_c,p_d}; set_uniformfv(p_uniform,vec4); }\n\n")
+
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
const Transform &tr = p_transform;
@@ -579,9 +567,9 @@ def build_hlsl_dx9_header( filename ):
}
- """);
+ """)
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
float matrix[16];
@@ -593,301 +581,291 @@ def build_hlsl_dx9_header( filename ):
}
set_uniformfv(p_uniform,&matrix[0],4);
- }; """);
+ }; """)
- fd.write("\n\n#undef _FU\n\n\n");
+ fd.write("\n\n#undef _FU\n\n\n")
+ fd.write("\tvirtual void init(IDirect3DDevice9 *p_device,ShaderSupport p_version) {\n\n")
+ if (len(conditionals)):
- fd.write("\tvirtual void init(IDirect3DDevice9 *p_device,ShaderSupport p_version) {\n\n");
- if (len(conditionals)):
+ fd.write("\t\tstatic const char* _conditional_strings[]={\n")
+ if (len(conditionals)):
+ for x in conditionals:
+ fd.write("\t\t\t\"" + x + "\",\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
- fd.write("\t\tstatic const char* _conditional_strings[]={\n")
- if (len(conditionals)):
- for x in conditionals:
- fd.write("\t\t\t\""+x+"\",\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
+ if (len(uniforms)):
- if (len(uniforms)):
+ fd.write("\t\tstatic const char* _uniform_strings[]={\n")
+ if (len(uniforms)):
+ for x in uniforms:
+ fd.write("\t\t\t\"" + x + "\",\n")
+ fd.write("\t\t};\n\n")
- fd.write("\t\tstatic const char* _uniform_strings[]={\n")
- if (len(uniforms)):
- for x in uniforms:
- fd.write("\t\t\t\""+x+"\",\n");
- fd.write("\t\t};\n\n");
+ fd.write("\t\tstatic const bool _fragment_uniforms[]={\n")
- fd.write("\t\tstatic const bool _fragment_uniforms[]={\n")
-
- if (len(uniforms)):
- for x in fragment_uniforms:
- if (x):
- fd.write("\t\t\ttrue,\n");
- else:
- fd.write("\t\t\tfalse,\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
- fd.write("\t\tstatic const bool *_fragment_uniforms=NULL;\n")
+ if (len(uniforms)):
+ for x in fragment_uniforms:
+ if (x):
+ fd.write("\t\t\ttrue,\n")
+ else:
+ fd.write("\t\t\tfalse,\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
+ fd.write("\t\tstatic const bool *_fragment_uniforms=NULL;\n")
+ fd.write("\t\tstatic const char* _vertex_code=\"\\\n")
+ for x in vertex_lines:
+ fd.write("\t\t\t" + x + "\n")
+ fd.write("\t\t\";\n\n")
- fd.write("\t\tstatic const char* _vertex_code=\"\\\n")
- for x in vertex_lines:
- fd.write("\t\t\t"+x+"\n");
- fd.write("\t\t\";\n\n");
+ fd.write("\t\tstatic const int _vertex_code_start=" + str(vertex_offset) + ";\n")
- fd.write("\t\tstatic const int _vertex_code_start="+str(vertex_offset)+";\n")
+ fd.write("\t\tstatic const char* _fragment_code=\"\\\n")
+ for x in fragment_lines:
+ fd.write("\t\t\t" + x + "\n")
+ fd.write("\t\t\";\n\n")
+ fd.write("\t\tstatic const int _fragment_code_start=" + str(fragment_offset) + ";\n")
- fd.write("\t\tstatic const char* _fragment_code=\"\\\n")
- for x in fragment_lines:
- fd.write("\t\t\t"+x+"\n");
- fd.write("\t\t\";\n\n");
+ fd.write("\t\tsetup(p_device,p_version,_conditional_strings," + str(len(conditionals)) + ",_uniform_strings," + str(len(uniforms)) + ",_fragment_uniforms,_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
+ fd.write("\t};\n\n")
- fd.write("\t\tstatic const int _fragment_code_start="+str(fragment_offset)+";\n")
+ fd.write("};\n\n")
+ fd.write("#endif\n\n")
+ fd.close()
- fd.write("\t\tsetup(p_device,p_version,_conditional_strings,"+str(len(conditionals))+",_uniform_strings,"+str(len(uniforms))+",_fragment_uniforms,_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
- fd.write("\t};\n\n")
- fd.write("};\n\n");
- fd.write("#endif\n\n");
- fd.close();
+def build_hlsl_dx9_headers(target, source, env):
+ for x in source:
-def build_hlsl_dx9_headers( target, source, env ):
+ build_hlsl_dx9_header(str(x))
- for x in source:
-
- build_hlsl_dx9_header(str(x));
-
-
- return 0
+ return 0
class LegacyGLHeaderStruct:
- def __init__(self):
- self.vertex_lines=[]
- self.fragment_lines=[]
- self.uniforms=[]
- self.attributes=[]
- self.fbos=[]
- self.conditionals=[]
- self.enums={}
- self.texunits=[]
- self.texunit_names=[]
- self.ubos=[]
- self.ubo_names=[]
-
- self.vertex_included_files=[]
- self.fragment_included_files=[]
-
- self.reading=""
- self.line_offset=0
- self.vertex_offset=0
- self.fragment_offset=0
-
-def include_file_in_legacygl_header( filename, header_data, depth ):
- fs = open(filename,"r")
- line=fs.readline()
-
- while(line):
-
- if (line.find("[vertex]")!=-1):
- header_data.reading="vertex"
- line=fs.readline()
- header_data.line_offset+=1
- header_data.vertex_offset=header_data.line_offset
- continue
-
- if (line.find("[fragment]")!=-1):
- header_data.reading="fragment"
- line=fs.readline()
- header_data.line_offset+=1
- header_data.fragment_offset=header_data.line_offset
- continue
-
- while(line.find("#include ")!=-1):
- includeline = line.replace("#include ","").strip()[1:-1]
-
- import os.path
-
- included_file = os.path.relpath(os.path.dirname(filename) + "/" + includeline)
- if (not included_file in header_data.vertex_included_files and header_data.reading=="vertex"):
- header_data.vertex_included_files+=[included_file]
- if(include_file_in_legacygl_header( included_file, header_data, depth + 1 ) == None):
- print "Error in file '" + filename + "': #include " + includeline + "could not be found!"
- elif (not included_file in header_data.fragment_included_files and header_data.reading=="fragment"):
- header_data.fragment_included_files+=[included_file]
- if(include_file_in_legacygl_header( included_file, header_data, depth + 1 ) == None):
- print "Error in file '" + filename + "': #include " + includeline + "could not be found!"
-
- line=fs.readline()
-
- if (line.find("#ifdef ")!=-1 or line.find("#elif defined(")!=-1):
- if (line.find("#ifdef ")!=-1):
- ifdefline = line.replace("#ifdef ","").strip()
- else:
- ifdefline = line.replace("#elif defined(","").strip()
- ifdefline = ifdefline.replace(")","").strip()
-
- if (line.find("_EN_")!=-1):
- enumbase = ifdefline[:ifdefline.find("_EN_")];
- ifdefline = ifdefline.replace("_EN_","_")
- line = line.replace("_EN_","_")
+
+ def __init__(self):
+ self.vertex_lines = []
+ self.fragment_lines = []
+ self.uniforms = []
+ self.attributes = []
+ self.fbos = []
+ self.conditionals = []
+ self.enums = {}
+ self.texunits = []
+ self.texunit_names = []
+ self.ubos = []
+ self.ubo_names = []
+
+ self.vertex_included_files = []
+ self.fragment_included_files = []
+
+ self.reading = ""
+ self.line_offset = 0
+ self.vertex_offset = 0
+ self.fragment_offset = 0
+
+
+def include_file_in_legacygl_header(filename, header_data, depth):
+ fs = open(filename, "r")
+ line = fs.readline()
+
+ while(line):
+
+ if (line.find("[vertex]") != -1):
+ header_data.reading = "vertex"
+ line = fs.readline()
+ header_data.line_offset += 1
+ header_data.vertex_offset = header_data.line_offset
+ continue
+
+ if (line.find("[fragment]") != -1):
+ header_data.reading = "fragment"
+ line = fs.readline()
+ header_data.line_offset += 1
+ header_data.fragment_offset = header_data.line_offset
+ continue
+
+ while(line.find("#include ") != -1):
+ includeline = line.replace("#include ", "").strip()[1:-1]
+
+ import os.path
+
+ included_file = os.path.relpath(os.path.dirname(filename) + "/" + includeline)
+ if (not included_file in header_data.vertex_included_files and header_data.reading == "vertex"):
+ header_data.vertex_included_files += [included_file]
+ if(include_file_in_legacygl_header(included_file, header_data, depth + 1) == None):
+ print "Error in file '" + filename + "': #include " + includeline + "could not be found!"
+ elif (not included_file in header_data.fragment_included_files and header_data.reading == "fragment"):
+ header_data.fragment_included_files += [included_file]
+ if(include_file_in_legacygl_header(included_file, header_data, depth + 1) == None):
+ print "Error in file '" + filename + "': #include " + includeline + "could not be found!"
+
+ line = fs.readline()
+
+ if (line.find("#ifdef ") != -1 or line.find("#elif defined(") != -1):
+ if (line.find("#ifdef ") != -1):
+ ifdefline = line.replace("#ifdef ", "").strip()
+ else:
+ ifdefline = line.replace("#elif defined(", "").strip()
+ ifdefline = ifdefline.replace(")", "").strip()
+
+ if (line.find("_EN_") != -1):
+ enumbase = ifdefline[:ifdefline.find("_EN_")]
+ ifdefline = ifdefline.replace("_EN_", "_")
+ line = line.replace("_EN_", "_")
# print(enumbase+":"+ifdefline);
- if (enumbase not in header_data.enums):
- header_data.enums[enumbase]=[]
- if (ifdefline not in header_data.enums[enumbase]):
- header_data.enums[enumbase].append(ifdefline);
-
- elif (not ifdefline in header_data.conditionals):
- header_data.conditionals+=[ifdefline]
-
- if (line.find("uniform")!=-1 and line.lower().find("texunit:")!=-1):
- #texture unit
- texunitstr = line[line.find(":")+1:].strip()
- if (texunitstr=="auto"):
- texunit="-1"
- else:
- texunit = str(int(texunitstr ))
- uline=line[:line.lower().find("//")]
- uline = uline.replace("uniform","");
- uline = uline.replace("highp","");
- uline = uline.replace(";","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in header_data.texunit_names):
- header_data.texunits+=[(x,texunit)]
- header_data.texunit_names+=[x]
-
-
-
- elif (line.find("uniform")!=-1):
- uline = line.replace("uniform","");
- uline = uline.replace(";","");
- lines = uline.split(",")
- for x in lines:
-
- x = x.strip()
- x = x[ x.rfind(" ")+1: ]
- if (x.find("[")!=-1):
- #unfiorm array
- x = x[ :x.find("[") ]
-
- if (not x in header_data.uniforms):
- header_data.uniforms+=[x]
-
-
- if ((line.strip().find("in ")==0 or line.strip().find("attribute ")==0) and line.find("attrib:")!=-1):
- uline = line.replace("in ","");
- uline = uline.replace("attribute ","");
- uline = uline.replace("highp ","");
- uline = uline.replace(";","");
- uline = uline[ uline.find(" "): ].strip()
-
-
- if (uline.find("//")!=-1):
- name,bind = uline.split("//")
- if (bind.find("attrib:")!=-1):
- name=name.strip()
- bind=bind.replace("attrib:","").strip()
- header_data.attributes+=[(name,bind)]
-
-
- line=line.replace("\r","")
- line=line.replace("\n","")
- #line=line.replace("\\","\\\\")
- #line=line.replace("\"","\\\"")
- #line=line+"\\n\\"
-
- if (header_data.reading=="vertex"):
- header_data.vertex_lines+=[line]
- if (header_data.reading=="fragment"):
- header_data.fragment_lines+=[line]
-
- line=fs.readline()
- header_data.line_offset+=1
-
- fs.close();
-
- return header_data
-
-
-
-def build_legacygl_header( filename, include, class_suffix, output_attribs ):
-
- header_data = LegacyGLHeaderStruct()
- include_file_in_legacygl_header( filename, header_data, 0 )
-
- out_file = filename+".h"
- fd = open(out_file,"w")
-
- enum_constants=[]
-
- fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n");
-
- out_file_base = out_file
- out_file_base = out_file_base[ out_file_base.rfind("/")+1: ]
- out_file_base = out_file_base[ out_file_base.rfind("\\")+1: ]
+ if (enumbase not in header_data.enums):
+ header_data.enums[enumbase] = []
+ if (ifdefline not in header_data.enums[enumbase]):
+ header_data.enums[enumbase].append(ifdefline)
+
+ elif (not ifdefline in header_data.conditionals):
+ header_data.conditionals += [ifdefline]
+
+ if (line.find("uniform") != -1 and line.lower().find("texunit:") != -1):
+ # texture unit
+ texunitstr = line[line.find(":") + 1:].strip()
+ if (texunitstr == "auto"):
+ texunit = "-1"
+ else:
+ texunit = str(int(texunitstr))
+ uline = line[:line.lower().find("//")]
+ uline = uline.replace("uniform", "")
+ uline = uline.replace("highp", "")
+ uline = uline.replace(";", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in header_data.texunit_names):
+ header_data.texunits += [(x, texunit)]
+ header_data.texunit_names += [x]
+
+ elif (line.find("uniform") != -1):
+ uline = line.replace("uniform", "")
+ uline = uline.replace(";", "")
+ lines = uline.split(",")
+ for x in lines:
+
+ x = x.strip()
+ x = x[x.rfind(" ") + 1:]
+ if (x.find("[") != -1):
+ # unfiorm array
+ x = x[:x.find("[")]
+
+ if (not x in header_data.uniforms):
+ header_data.uniforms += [x]
+
+ if ((line.strip().find("in ") == 0 or line.strip().find("attribute ") == 0) and line.find("attrib:") != -1):
+ uline = line.replace("in ", "")
+ uline = uline.replace("attribute ", "")
+ uline = uline.replace("highp ", "")
+ uline = uline.replace(";", "")
+ uline = uline[uline.find(" "):].strip()
+
+ if (uline.find("//") != -1):
+ name, bind = uline.split("//")
+ if (bind.find("attrib:") != -1):
+ name = name.strip()
+ bind = bind.replace("attrib:", "").strip()
+ header_data.attributes += [(name, bind)]
+
+ line = line.replace("\r", "")
+ line = line.replace("\n", "")
+ # line=line.replace("\\","\\\\")
+ # line=line.replace("\"","\\\"")
+ # line=line+"\\n\\"
+
+ if (header_data.reading == "vertex"):
+ header_data.vertex_lines += [line]
+ if (header_data.reading == "fragment"):
+ header_data.fragment_lines += [line]
+
+ line = fs.readline()
+ header_data.line_offset += 1
+
+ fs.close()
+
+ return header_data
+
+
+def build_legacygl_header(filename, include, class_suffix, output_attribs):
+
+ header_data = LegacyGLHeaderStruct()
+ include_file_in_legacygl_header(filename, header_data, 0)
+
+ out_file = filename + ".h"
+ fd = open(out_file, "w")
+
+ enum_constants = []
+
+ fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n")
+
+ out_file_base = out_file
+ out_file_base = out_file_base[out_file_base.rfind("/") + 1:]
+ out_file_base = out_file_base[out_file_base.rfind("\\") + 1:]
# print("out file "+out_file+" base " +out_file_base)
- out_file_ifdef = out_file_base.replace(".","_").upper()
- fd.write("#ifndef "+out_file_ifdef+class_suffix+"_120\n")
- fd.write("#define "+out_file_ifdef+class_suffix+"_120\n")
-
- out_file_class = out_file_base.replace(".glsl.h","").title().replace("_","").replace(".","")+"Shader"+class_suffix;
- fd.write("\n\n");
- fd.write("#include \"" + include + "\"\n\n\n");
- fd.write("class "+out_file_class+" : public Shader"+class_suffix+" {\n\n");
- fd.write("\t virtual String get_shader_name() const { return \""+out_file_class+"\"; }\n");
-
-
- fd.write("public:\n\n");
-
- if (len(header_data.conditionals)):
- fd.write("\tenum Conditionals {\n");
- for x in header_data.conditionals:
- fd.write("\t\t"+x.upper()+",\n");
- fd.write("\t};\n\n");
-
-
- if (len(header_data.uniforms)):
- fd.write("\tenum Uniforms {\n");
- for x in header_data.uniforms:
- fd.write("\t\t"+x.upper()+",\n");
- fd.write("\t};\n\n");
-
- fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n");
- if (len(header_data.conditionals)):
-
- fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n");
- fd.write("\t#define _FU if (get_uniform(p_uniform)<0) return; ERR_FAIL_COND( get_active()!=this );\n\n ");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(get_uniform(p_uniform),1,col); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU GLfloat vec2[2]={p_vec2.x,p_vec2.y}; glUniform2fv(get_uniform(p_uniform),1,vec2); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU GLfloat vec3[3]={p_vec3.x,p_vec3.y,p_vec3.z}; glUniform3fv(get_uniform(p_uniform),1,vec3); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU glUniform2f(get_uniform(p_uniform),p_a,p_b); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU glUniform3f(get_uniform(p_uniform),p_a,p_b,p_c); }\n\n");
- fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU glUniform4f(get_uniform(p_uniform),p_a,p_b,p_c,p_d); }\n\n");
-
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
+ out_file_ifdef = out_file_base.replace(".", "_").upper()
+ fd.write("#ifndef " + out_file_ifdef + class_suffix + "_120\n")
+ fd.write("#define " + out_file_ifdef + class_suffix + "_120\n")
+
+ out_file_class = out_file_base.replace(".glsl.h", "").title().replace("_", "").replace(".", "") + "Shader" + class_suffix
+ fd.write("\n\n")
+ fd.write("#include \"" + include + "\"\n\n\n")
+ fd.write("class " + out_file_class + " : public Shader" + class_suffix + " {\n\n")
+ fd.write("\t virtual String get_shader_name() const { return \"" + out_file_class + "\"; }\n")
+
+ fd.write("public:\n\n")
+
+ if (len(header_data.conditionals)):
+ fd.write("\tenum Conditionals {\n")
+ for x in header_data.conditionals:
+ fd.write("\t\t" + x.upper() + ",\n")
+ fd.write("\t};\n\n")
+
+ if (len(header_data.uniforms)):
+ fd.write("\tenum Uniforms {\n")
+ for x in header_data.uniforms:
+ fd.write("\t\t" + x.upper() + ",\n")
+ fd.write("\t};\n\n")
+
+ fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n")
+ if (len(header_data.conditionals)):
+
+ fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n")
+ fd.write("\t#define _FU if (get_uniform(p_uniform)<0) return; ERR_FAIL_COND( get_active()!=this );\n\n ")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int8_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int16_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int32_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n")
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, uint64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, int64_t p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, unsigned long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ #fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, long p_value) { _FU glUniform1i(get_uniform(p_uniform),p_value); }\n\n");
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Color& p_color) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(get_uniform(p_uniform),1,col); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector2& p_vec2) { _FU GLfloat vec2[2]={p_vec2.x,p_vec2.y}; glUniform2fv(get_uniform(p_uniform),1,vec2); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Vector3& p_vec3) { _FU GLfloat vec3[3]={p_vec3.x,p_vec3.y,p_vec3.z}; glUniform3fv(get_uniform(p_uniform),1,vec3); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU glUniform2f(get_uniform(p_uniform),p_a,p_b); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU glUniform3f(get_uniform(p_uniform),p_a,p_b,p_c); }\n\n")
+ fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU glUniform4f(get_uniform(p_uniform),p_a,p_b,p_c,p_d); }\n\n")
+
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU
const Transform &tr = p_transform;
@@ -916,9 +894,9 @@ def build_legacygl_header( filename, include, class_suffix, output_attribs ):
}
- """);
+ """)
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Matrix32& p_transform) { _FU
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Matrix32& p_transform) { _FU
const Matrix32 &tr = p_transform;
@@ -947,9 +925,9 @@ def build_legacygl_header( filename, include, class_suffix, output_attribs ):
}
- """);
+ """)
- fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
+ fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU
GLfloat matrix[16];
@@ -961,324 +939,318 @@ def build_legacygl_header( filename, include, class_suffix, output_attribs ):
}
glUniformMatrix4fv(get_uniform(p_uniform),1,false,matrix);
- }; """);
-
- fd.write("\n\n#undef _FU\n\n\n");
-
+ }; """)
- fd.write("\tvirtual void init() {\n\n");
+ fd.write("\n\n#undef _FU\n\n\n")
+ fd.write("\tvirtual void init() {\n\n")
- enum_value_count=0;
+ enum_value_count = 0
- if (len(header_data.enums)):
+ if (len(header_data.enums)):
- fd.write("\t\t//Written using math, given nonstandarity of 64 bits integer constants..\n");
- fd.write("\t\tstatic const Enum _enums[]={\n")
+ fd.write("\t\t//Written using math, given nonstandarity of 64 bits integer constants..\n")
+ fd.write("\t\tstatic const Enum _enums[]={\n")
- bitofs=len(header_data.conditionals)
- enum_vals=[]
+ bitofs = len(header_data.conditionals)
+ enum_vals = []
- for xv in header_data.enums:
- x=header_data.enums[xv]
- bits=1
- amt = len(x);
+ for xv in header_data.enums:
+ x = header_data.enums[xv]
+ bits = 1
+ amt = len(x)
# print(x)
- while(2**bits < amt):
- bits+=1
+ while(2**bits < amt):
+ bits += 1
# print("amount: "+str(amt)+" bits "+str(bits));
- strs="{"
- for i in range(amt):
- strs+="\"#define "+x[i]+"\\n\","
-
- v={}
- v["set_mask"]="uint64_t("+str(i)+")<<"+str(bitofs)
- v["clear_mask"]="((uint64_t(1)<<40)-1) ^ (((uint64_t(1)<<"+str(bits)+") - 1)<<"+str(bitofs)+")"
- enum_vals.append(v)
- enum_constants.append(x[i])
-
- strs+="NULL}"
-
- fd.write("\t\t\t{(uint64_t(1<<"+str(bits)+")-1)<<"+str(bitofs)+","+str(bitofs)+","+strs+"},\n");
- bitofs+=bits
-
-
- fd.write("\t\t};\n\n");
+ strs = "{"
+ for i in range(amt):
+ strs += "\"#define " + x[i] + "\\n\","
+
+ v = {}
+ v["set_mask"] = "uint64_t(" + str(i) + ")<<" + str(bitofs)
+ v["clear_mask"] = "((uint64_t(1)<<40)-1) ^ (((uint64_t(1)<<" + str(bits) + ") - 1)<<" + str(bitofs) + ")"
+ enum_vals.append(v)
+ enum_constants.append(x[i])
- fd.write("\t\tstatic const EnumValue _enum_values[]={\n")
+ strs += "NULL}"
- enum_value_count=len(enum_vals);
- for x in enum_vals:
- fd.write("\t\t\t{"+x["set_mask"]+","+x["clear_mask"]+"},\n");
+ fd.write("\t\t\t{(uint64_t(1<<" + str(bits) + ")-1)<<" + str(bitofs) + "," + str(bitofs) + "," + strs + "},\n")
+ bitofs += bits
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const Enum *_enums=NULL;\n")
- fd.write("\t\tstatic const EnumValue *_enum_values=NULL;\n")
+ fd.write("\t\t};\n\n")
- if (len(header_data.conditionals)):
+ fd.write("\t\tstatic const EnumValue _enum_values[]={\n")
- fd.write("\t\tstatic const char* _conditional_strings[]={\n")
- if (len(header_data.conditionals)):
- for x in header_data.conditionals:
- fd.write("\t\t\t\"#define "+x+"\\n\",\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
+ enum_value_count = len(enum_vals)
+ for x in enum_vals:
+ fd.write("\t\t\t{" + x["set_mask"] + "," + x["clear_mask"] + "},\n")
- if (len(header_data.uniforms)):
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const Enum *_enums=NULL;\n")
+ fd.write("\t\tstatic const EnumValue *_enum_values=NULL;\n")
- fd.write("\t\tstatic const char* _uniform_strings[]={\n")
- if (len(header_data.uniforms)):
- for x in header_data.uniforms:
- fd.write("\t\t\t\""+x+"\",\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
+ if (len(header_data.conditionals)):
- if output_attribs:
- if (len(header_data.attributes)):
+ fd.write("\t\tstatic const char* _conditional_strings[]={\n")
+ if (len(header_data.conditionals)):
+ for x in header_data.conditionals:
+ fd.write("\t\t\t\"#define " + x + "\\n\",\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_conditional_strings=NULL;\n")
- fd.write("\t\tstatic AttributePair _attribute_pairs[]={\n")
- for x in header_data.attributes:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic AttributePair *_attribute_pairs=NULL;\n")
+ if (len(header_data.uniforms)):
+ fd.write("\t\tstatic const char* _uniform_strings[]={\n")
+ if (len(header_data.uniforms)):
+ for x in header_data.uniforms:
+ fd.write("\t\t\t\"" + x + "\",\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic const char **_uniform_strings=NULL;\n")
- if (len(header_data.texunits)):
- fd.write("\t\tstatic TexUnitPair _texunit_pairs[]={\n")
- for x in header_data.texunits:
- fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n");
- fd.write("\t\t};\n\n");
- else:
- fd.write("\t\tstatic TexUnitPair *_texunit_pairs=NULL;\n")
+ if output_attribs:
+ if (len(header_data.attributes)):
- fd.write("\t\tstatic const char _vertex_code[]={\n")
- for x in header_data.vertex_lines:
- for i in range(len(x)):
- fd.write(str(ord(x[i]))+",");
+ fd.write("\t\tstatic AttributePair _attribute_pairs[]={\n")
+ for x in header_data.attributes:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic AttributePair *_attribute_pairs=NULL;\n")
- fd.write(str(ord('\n'))+",");
- fd.write("\t\t0};\n\n");
+ if (len(header_data.texunits)):
+ fd.write("\t\tstatic TexUnitPair _texunit_pairs[]={\n")
+ for x in header_data.texunits:
+ fd.write("\t\t\t{\"" + x[0] + "\"," + x[1] + "},\n")
+ fd.write("\t\t};\n\n")
+ else:
+ fd.write("\t\tstatic TexUnitPair *_texunit_pairs=NULL;\n")
- fd.write("\t\tstatic const int _vertex_code_start="+str(header_data.vertex_offset)+";\n")
+ fd.write("\t\tstatic const char _vertex_code[]={\n")
+ for x in header_data.vertex_lines:
+ for i in range(len(x)):
+ fd.write(str(ord(x[i])) + ",")
+ fd.write(str(ord('\n')) + ",")
+ fd.write("\t\t0};\n\n")
- fd.write("\t\tstatic const char _fragment_code[]={\n")
- for x in header_data.fragment_lines:
- for i in range(len(x)):
- fd.write(str(ord(x[i]))+",");
+ fd.write("\t\tstatic const int _vertex_code_start=" + str(header_data.vertex_offset) + ";\n")
- fd.write(str(ord('\n'))+",");
- fd.write("\t\t0};\n\n");
+ fd.write("\t\tstatic const char _fragment_code[]={\n")
+ for x in header_data.fragment_lines:
+ for i in range(len(x)):
+ fd.write(str(ord(x[i])) + ",")
- fd.write("\t\tstatic const int _fragment_code_start="+str(header_data.fragment_offset)+";\n")
+ fd.write(str(ord('\n')) + ",")
+ fd.write("\t\t0};\n\n")
- if output_attribs:
- fd.write("\t\tsetup(_conditional_strings,"+str(len(header_data.conditionals))+",_uniform_strings,"+str(len(header_data.uniforms))+",_attribute_pairs,"+str(len(header_data.attributes))+", _texunit_pairs,"+str(len(header_data.texunits))+",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
- else:
- fd.write("\t\tsetup(_conditional_strings,"+str(len(header_data.conditionals))+",_uniform_strings,"+str(len(header_data.uniforms))+",_texunit_pairs,"+str(len(header_data.texunits))+",_enums,"+str(len(header_data.enums))+",_enum_values,"+str(enum_value_count)+",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
+ fd.write("\t\tstatic const int _fragment_code_start=" + str(header_data.fragment_offset) + ";\n")
- fd.write("\t};\n\n")
+ if output_attribs:
+ fd.write("\t\tsetup(_conditional_strings," + str(len(header_data.conditionals)) + ",_uniform_strings," + str(len(header_data.uniforms)) + ",_attribute_pairs," + str(len(header_data.attributes)) + ", _texunit_pairs," + str(len(header_data.texunits)) + ",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
+ else:
+ fd.write("\t\tsetup(_conditional_strings," + str(len(header_data.conditionals)) + ",_uniform_strings," + str(len(header_data.uniforms)) + ",_texunit_pairs," + str(len(header_data.texunits)) + ",_enums," + str(len(header_data.enums)) + ",_enum_values," + str(enum_value_count) + ",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n")
+ fd.write("\t};\n\n")
- if (len(enum_constants)):
+ if (len(enum_constants)):
- fd.write("\tenum EnumConditionals {\n")
- for x in enum_constants:
- fd.write("\t\t"+x.upper()+",\n");
- fd.write("\t};\n\n");
- fd.write("\tvoid set_enum_conditional(EnumConditionals p_cond) { _set_enum_conditional(p_cond); }\n")
+ fd.write("\tenum EnumConditionals {\n")
+ for x in enum_constants:
+ fd.write("\t\t" + x.upper() + ",\n")
+ fd.write("\t};\n\n")
+ fd.write("\tvoid set_enum_conditional(EnumConditionals p_cond) { _set_enum_conditional(p_cond); }\n")
+ fd.write("};\n\n")
+ fd.write("#endif\n\n")
+ fd.close()
- fd.write("};\n\n");
- fd.write("#endif\n\n");
- fd.close();
+def build_legacygl_headers(target, source, env):
-def build_legacygl_headers( target, source, env ):
+ for x in source:
- for x in source:
+ build_legacygl_header(str(x), include="drivers/legacygl/shader_lgl.h", class_suffix="LGL", output_attribs=False)
- build_legacygl_header(str(x), include = "drivers/legacygl/shader_lgl.h", class_suffix = "LGL", output_attribs = False);
+ return 0
- return 0
+def build_gles2_headers(target, source, env):
-def build_gles2_headers( target, source, env ):
+ for x in source:
+ build_legacygl_header(str(x), include="drivers/gles2/shader_gles2.h", class_suffix="GLES2", output_attribs=True)
- for x in source:
- build_legacygl_header(str(x), include="drivers/gles2/shader_gles2.h", class_suffix = "GLES2", output_attribs = True)
def update_version():
- rev = "custom_build"
+ rev = "custom_build"
- if (os.getenv("BUILD_REVISION")!=None):
- rev=os.getenv("BUILD_REVISION")
- print("Using custom revision: "+rev)
- import version
+ if (os.getenv("BUILD_REVISION") != None):
+ rev = os.getenv("BUILD_REVISION")
+ print("Using custom revision: " + rev)
+ import version
+ f = open("core/version.h", "wb")
+ f.write("#define VERSION_SHORT_NAME " + str(version.short_name) + "\n")
+ f.write("#define VERSION_NAME " + str(version.name) + "\n")
+ f.write("#define VERSION_MAJOR " + str(version.major) + "\n")
+ f.write("#define VERSION_MINOR " + str(version.minor) + "\n")
+ if (hasattr(version, 'patch')):
+ f.write("#define VERSION_PATCH " + str(version.patch) + "\n")
+ f.write("#define VERSION_REVISION " + str(rev) + "\n")
+ f.write("#define VERSION_STATUS " + str(version.status) + "\n")
+ import datetime
+ f.write("#define VERSION_YEAR " + str(datetime.datetime.now().year) + "\n")
- f=open("core/version.h","wb")
- f.write("#define VERSION_SHORT_NAME "+str(version.short_name)+"\n")
- f.write("#define VERSION_NAME "+str(version.name)+"\n")
- f.write("#define VERSION_MAJOR "+str(version.major)+"\n")
- f.write("#define VERSION_MINOR "+str(version.minor)+"\n")
- if (hasattr(version, 'patch')):
- f.write("#define VERSION_PATCH "+str(version.patch)+"\n")
- f.write("#define VERSION_REVISION "+str(rev)+"\n")
- f.write("#define VERSION_STATUS "+str(version.status)+"\n")
- import datetime
- f.write("#define VERSION_YEAR "+str(datetime.datetime.now().year)+"\n")
def parse_cg_file(fname, uniforms, sizes, conditionals):
- import re
- fs = open(fname, "r")
- line=fs.readline()
+ import re
+ fs = open(fname, "r")
+ line = fs.readline()
- while line:
+ while line:
- if re.match(r"^\s*uniform", line):
+ if re.match(r"^\s*uniform", line):
- res = re.match(r"uniform ([\d\w]*) ([\d\w]*)")
- type = res.groups(1)
- name = res.groups(2)
+ res = re.match(r"uniform ([\d\w]*) ([\d\w]*)")
+ type = res.groups(1)
+ name = res.groups(2)
- uniforms.append(name);
+ uniforms.append(name)
- if (type.find("texobj") != -1):
- sizes.append(1);
- else:
- t = re.match(r"float(\d)x(\d)", type);
- if t:
- sizes.append(int(t.groups(1)) * int(t.groups(2)))
- else:
- t = re.match(r"float(\d)", type);
- sizes.append(int(t.groups(1)))
+ if (type.find("texobj") != -1):
+ sizes.append(1)
+ else:
+ t = re.match(r"float(\d)x(\d)", type)
+ if t:
+ sizes.append(int(t.groups(1)) * int(t.groups(2)))
+ else:
+ t = re.match(r"float(\d)", type)
+ sizes.append(int(t.groups(1)))
- if line.find("[branch]") != -1:
- conditionals.append(name);
+ if line.find("[branch]") != -1:
+ conditionals.append(name)
- line = fs.readline();
+ line = fs.readline()
def build_cg_shader(sname):
- vp_uniforms = []
- vp_uniform_sizes = []
- vp_conditionals = []
-
- parse_cg_file("vp_"+sname+".cg", vp_uniforms, vp_uniform_sizes, vp_conditionals);
+ vp_uniforms = []
+ vp_uniform_sizes = []
+ vp_conditionals = []
- fp_uniforms = []
- fp_uniform_sizes = []
- fp_conditionals = []
+ parse_cg_file("vp_" + sname + ".cg", vp_uniforms, vp_uniform_sizes, vp_conditionals)
- parse_cg_file("fp_"+sname+".cg", fp_uniforms, fp_uniform_sizes, fp_conditionals);
+ fp_uniforms = []
+ fp_uniform_sizes = []
+ fp_conditionals = []
- fd = open("shader_"+sname+".cg.h", "w");
+ parse_cg_file("fp_" + sname + ".cg", fp_uniforms, fp_uniform_sizes, fp_conditionals)
- fd.write('\n#include "shader_cell.h"\n');
- fd.write("\nclass Shader_" + sname + " : public ShaderCell {\n");
- fd.write("\n\tstatic struct VertexUniforms[] = {\n");
+ fd = open("shader_" + sname + ".cg.h", "w")
- offset = 0;
- for i in range(0, len(vp_uniforms)):
+ fd.write('\n#include "shader_cell.h"\n')
+ fd.write("\nclass Shader_" + sname + " : public ShaderCell {\n")
+ fd.write("\n\tstatic struct VertexUniforms[] = {\n")
- fd.write('\t\t{ "%s", %d, %d },\n' % (vp_uniforms[i], offset, vp_uniform_sizes[i]))
- offset = offset + vp_uniform_sizes[i];
- fd.write("\t};\n\n");
+ offset = 0
+ for i in range(0, len(vp_uniforms)):
- fd.write("public:\n\n");
+ fd.write('\t\t{ "%s", %d, %d },\n' % (vp_uniforms[i], offset, vp_uniform_sizes[i]))
+ offset = offset + vp_uniform_sizes[i]
+ fd.write("\t};\n\n")
- fd.write("\tenum {\n");
+ fd.write("public:\n\n")
- for i in range(0, len(vp_uniforms)):
+ fd.write("\tenum {\n")
- fd.write('\t\tVP_%s,\n' % vp_uniforms[i].upper())
+ for i in range(0, len(vp_uniforms)):
- fd.write("\t};\n");
+ fd.write('\t\tVP_%s,\n' % vp_uniforms[i].upper())
+ fd.write("\t};\n")
import glob
+
+
def detect_modules():
- module_list=[]
- includes_cpp=""
- register_cpp=""
- unregister_cpp=""
-
- files = glob.glob("modules/*")
- files.sort() #so register_module_types does not change that often, and also plugins are registered in alphabetic order
- for x in files:
- if (not os.path.isdir(x)):
- continue
- x=x.replace("modules/","") # rest of world
- x=x.replace("modules\\","") # win32
- module_list.append(x)
- try:
- with open("modules/"+x+"/register_types.h"):
- includes_cpp+='#include "modules/'+x+'/register_types.h"\n'
- register_cpp+='#ifdef MODULE_'+x.upper()+'_ENABLED\n'
- register_cpp+='\tregister_'+x+'_types();\n'
- register_cpp+='#endif\n'
- unregister_cpp+='#ifdef MODULE_'+x.upper()+'_ENABLED\n'
- unregister_cpp+='\tunregister_'+x+'_types();\n'
- unregister_cpp+='#endif\n'
- except IOError:
- pass
-
- modules_cpp="""
+ module_list = []
+ includes_cpp = ""
+ register_cpp = ""
+ unregister_cpp = ""
+
+ files = glob.glob("modules/*")
+ files.sort() # so register_module_types does not change that often, and also plugins are registered in alphabetic order
+ for x in files:
+ if (not os.path.isdir(x)):
+ continue
+ x = x.replace("modules/", "") # rest of world
+ x = x.replace("modules\\", "") # win32
+ module_list.append(x)
+ try:
+ with open("modules/" + x + "/register_types.h"):
+ includes_cpp += '#include "modules/' + x + '/register_types.h"\n'
+ register_cpp += '#ifdef MODULE_' + x.upper() + '_ENABLED\n'
+ register_cpp += '\tregister_' + x + '_types();\n'
+ register_cpp += '#endif\n'
+ unregister_cpp += '#ifdef MODULE_' + x.upper() + '_ENABLED\n'
+ unregister_cpp += '\tunregister_' + x + '_types();\n'
+ unregister_cpp += '#endif\n'
+ except IOError:
+ pass
+
+ modules_cpp = """
// modules.cpp - THIS FILE IS GENERATED, DO NOT EDIT!!!!!!!
#include "register_module_types.h"
-"""+includes_cpp+"""
+""" + includes_cpp + """
void register_module_types() {
-"""+register_cpp+"""
+""" + register_cpp + """
}
void unregister_module_types() {
-"""+unregister_cpp+"""
+""" + unregister_cpp + """
}
"""
- f=open("modules/register_module_types.cpp","wb")
- f.write(modules_cpp)
-
- return module_list
+ f = open("modules/register_module_types.cpp", "wb")
+ f.write(modules_cpp)
+ return module_list
def win32_spawn(sh, escape, cmd, args, env):
- import subprocess
- newargs = ' '.join(args[1:])
- cmdline = cmd + " " + newargs
- startupinfo = subprocess.STARTUPINFO()
- #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
- for e in env:
- if type(env[e]) != type(""):
- env[e] = str(env[e])
- 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
+ import subprocess
+ newargs = ' '.join(args[1:])
+ cmdline = cmd + " " + newargs
+ startupinfo = subprocess.STARTUPINFO()
+ #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+ for e in env:
+ if type(env[e]) != type(""):
+ env[e] = str(env[e])
+ 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 win32_spawn(sh, escape, cmd, args, spawnenv):
@@ -1309,48 +1281,65 @@ def win32_spawn(sh, escape, cmd, args, spawnenv):
return exit_code
"""
-def android_add_maven_repository(self,url):
- self.android_maven_repos.append(url)
-
-def android_add_dependency(self,depline):
- self.android_dependencies.append(depline)
-
-def android_add_java_dir(self,subpath):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+subpath
- self.android_java_dirs.append(base_path)
-
-def android_add_res_dir(self,subpath):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+subpath
- self.android_res_dirs.append(base_path)
-def android_add_aidl_dir(self,subpath):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+subpath
- self.android_aidl_dirs.append(base_path)
-def android_add_jni_dir(self,subpath):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+subpath
- self.android_jni_dirs.append(base_path)
-def android_add_default_config(self,config):
- self.android_default_config.append(config)
-
-def android_add_to_manifest(self,file):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+file
- f = open(base_path,"rb")
- self.android_manifest_chunk+=f.read()
-def android_add_to_permissions(self,file):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+file
- f = open(base_path,"rb")
- self.android_permission_chunk+=f.read()
-def android_add_to_attributes(self,file):
- base_path = self.Dir(".").abspath+"/modules/"+self.current_module+"/"+file
- f = open(base_path,"rb")
- self.android_appattributes_chunk+=f.read()
+
+def android_add_maven_repository(self, url):
+ self.android_maven_repos.append(url)
+
+
+def android_add_dependency(self, depline):
+ self.android_dependencies.append(depline)
+
+
+def android_add_java_dir(self, subpath):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + subpath
+ self.android_java_dirs.append(base_path)
+
+
+def android_add_res_dir(self, subpath):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + subpath
+ self.android_res_dirs.append(base_path)
+
+
+def android_add_aidl_dir(self, subpath):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + subpath
+ self.android_aidl_dirs.append(base_path)
+
+
+def android_add_jni_dir(self, subpath):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + subpath
+ self.android_jni_dirs.append(base_path)
+
+
+def android_add_default_config(self, config):
+ self.android_default_config.append(config)
+
+
+def android_add_to_manifest(self, file):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
+ f = open(base_path, "rb")
+ self.android_manifest_chunk += f.read()
+
+
+def android_add_to_permissions(self, file):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
+ f = open(base_path, "rb")
+ self.android_permission_chunk += f.read()
+
+
+def android_add_to_attributes(self, file):
+ base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
+ f = open(base_path, "rb")
+ self.android_appattributes_chunk += f.read()
+
def disable_module(self):
- self.disabled_modules.append(self.current_module)
+ self.disabled_modules.append(self.current_module)
+
def use_windows_spawn_fix(self, platform=None):
- if (os.name!="nt"):
- return #not needed, only for windows
+ if (os.name != "nt"):
+ return # not needed, only for windows
# On Windows, due to the limited command line length, when creating a static library
# from a very high number of objects SCons will invoke "ar" once per object file;
@@ -1364,212 +1353,212 @@ def use_windows_spawn_fix(self, platform=None):
import subprocess
- def mySubProcess(cmdline,env):
- prefix = ""
- if(platform == 'javascript'):
- prefix = "python.exe "
-
- startupinfo = subprocess.STARTUPINFO()
- startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
- proc = subprocess.Popen(prefix + 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):
+ prefix = ""
+ if(platform == 'javascript'):
+ prefix = "python.exe "
+
+ startupinfo = subprocess.STARTUPINFO()
+ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+ proc = subprocess.Popen(prefix + 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):
- newargs = ' '.join(args[1:])
- cmdline = cmd + " " + newargs
+ newargs = ' '.join(args[1:])
+ cmdline = cmd + " " + newargs
- rv=0
- env = {str(key): str(value) for key, value in env.iteritems()}
- 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
+ env = {str(key): str(value) for key, value in env.iteritems()}
+ 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
self['SPAWN'] = mySpawn
def split_lib(self, libname):
- import string
- env = self
-
- num = 0
- cur_base = ""
- max_src = 64
- list = []
- lib_list = []
-
- for f in getattr(env, libname + "_sources"):
- fname = ""
- if type(f) == type(""):
- fname = env.File(f).path
- else:
- fname = env.File(f)[0].path
- fname = fname.replace("\\", "/")
- base = string.join(fname.split("/")[:2], "/")
- if base != cur_base and len(list) > max_src:
- if num > 0:
- lib = env.Library(libname + str(num), list)
- lib_list.append(lib)
- list = []
- num = num + 1
- cur_base = base
- list.append(f)
-
- lib = env.Library(libname + str(num), list)
- lib_list.append(lib)
-
- if len(lib_list) > 0:
- import os, sys
- if os.name == 'posix' and sys.platform == 'msys':
- env.Replace(ARFLAGS = ['rcsT'])
- lib = env.Library(libname + "_collated", lib_list)
- lib_list = [lib]
-
- lib_base = []
- env.add_source_files(lib_base, "*.cpp")
- lib_list.insert(0, env.Library(libname, lib_base))
-
- env.Prepend(LIBS = lib_list)
-
-
-def save_active_platforms(apnames,ap):
-
- for x in ap:
- pth = x+"/logo.png"
+ import string
+ env = self
+
+ num = 0
+ cur_base = ""
+ max_src = 64
+ list = []
+ lib_list = []
+
+ for f in getattr(env, libname + "_sources"):
+ fname = ""
+ if type(f) == type(""):
+ fname = env.File(f).path
+ else:
+ fname = env.File(f)[0].path
+ fname = fname.replace("\\", "/")
+ base = string.join(fname.split("/")[:2], "/")
+ if base != cur_base and len(list) > max_src:
+ if num > 0:
+ lib = env.Library(libname + str(num), list)
+ lib_list.append(lib)
+ list = []
+ num = num + 1
+ cur_base = base
+ list.append(f)
+
+ lib = env.Library(libname + str(num), list)
+ lib_list.append(lib)
+
+ if len(lib_list) > 0:
+ import os, sys
+ if os.name == 'posix' and sys.platform == 'msys':
+ env.Replace(ARFLAGS=['rcsT'])
+ lib = env.Library(libname + "_collated", lib_list)
+ lib_list = [lib]
+
+ lib_base = []
+ env.add_source_files(lib_base, "*.cpp")
+ lib_list.insert(0, env.Library(libname, lib_base))
+
+ env.Prepend(LIBS=lib_list)
+
+
+def save_active_platforms(apnames, ap):
+
+ for x in ap:
+ pth = x + "/logo.png"
# print("open path: "+pth)
- pngf=open(pth,"rb");
- b=pngf.read(1);
- str=" /* AUTOGENERATED FILE, DO NOT EDIT */ \n"
- str+=" static const unsigned char _"+x[9:]+"_logo[]={"
- while(len(b)==1):
- str+=hex(ord(b))
- b=pngf.read(1);
- if (len(b)==1):
- str+=","
-
- str+="};\n"
-
- wf = x+"/logo.h"
- logow = open(wf,"wb")
- logow.write(str)
-
-
-def no_verbose(sys,env):
-
- #If the output is not a terminal, do nothing
- if not sys.stdout.isatty():
- return
-
- colors = {}
- colors['cyan'] = '\033[96m'
- colors['purple'] = '\033[95m'
- colors['blue'] = '\033[94m'
- colors['green'] = '\033[92m'
- colors['yellow'] = '\033[93m'
- colors['red'] = '\033[91m'
- colors['end'] = '\033[0m'
-
- compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
- java_compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
- compile_shared_source_message = '%sCompiling shared %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
- link_program_message = '%sLinking Program %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
- link_library_message = '%sLinking Static Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
- ranlib_library_message = '%sRanlib Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
- link_shared_library_message = '%sLinking Shared Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
- java_library_message = '%sCreating Java Archive %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
-
- env.Append( CXXCOMSTR=[compile_source_message] )
- env.Append( CCCOMSTR=[compile_source_message] )
- env.Append( SHCCCOMSTR=[compile_shared_source_message] )
- env.Append( SHCXXCOMSTR=[compile_shared_source_message] )
- env.Append( ARCOMSTR=[link_library_message] )
- env.Append( RANLIBCOMSTR=[ranlib_library_message] )
- env.Append( SHLINKCOMSTR=[link_shared_library_message] )
- env.Append( LINKCOMSTR=[link_program_message] )
- env.Append( JARCOMSTR=[java_library_message] )
- env.Append( JAVACCOMSTR=[java_compile_source_message] )
+ pngf = open(pth, "rb")
+ b = pngf.read(1)
+ str = " /* AUTOGENERATED FILE, DO NOT EDIT */ \n"
+ str += " static const unsigned char _" + x[9:] + "_logo[]={"
+ while(len(b) == 1):
+ str += hex(ord(b))
+ b = pngf.read(1)
+ if (len(b) == 1):
+ str += ","
+
+ str += "};\n"
+
+ wf = x + "/logo.h"
+ logow = open(wf, "wb")
+ logow.write(str)
+
+
+def no_verbose(sys, env):
+
+ # If the output is not a terminal, do nothing
+ if not sys.stdout.isatty():
+ return
+
+ colors = {}
+ colors['cyan'] = '\033[96m'
+ colors['purple'] = '\033[95m'
+ colors['blue'] = '\033[94m'
+ colors['green'] = '\033[92m'
+ colors['yellow'] = '\033[93m'
+ colors['red'] = '\033[91m'
+ colors['end'] = '\033[0m'
+
+ compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
+ java_compile_source_message = '%sCompiling %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
+ compile_shared_source_message = '%sCompiling shared %s==> %s$SOURCE%s' % (colors['blue'], colors['purple'], colors['yellow'], colors['end'])
+ link_program_message = '%sLinking Program %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
+ link_library_message = '%sLinking Static Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
+ ranlib_library_message = '%sRanlib Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
+ link_shared_library_message = '%sLinking Shared Library %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
+ java_library_message = '%sCreating Java Archive %s==> %s$TARGET%s' % (colors['red'], colors['purple'], colors['yellow'], colors['end'])
+
+ env.Append(CXXCOMSTR=[compile_source_message])
+ env.Append(CCCOMSTR=[compile_source_message])
+ env.Append(SHCCCOMSTR=[compile_shared_source_message])
+ env.Append(SHCXXCOMSTR=[compile_shared_source_message])
+ env.Append(ARCOMSTR=[link_library_message])
+ env.Append(RANLIBCOMSTR=[ranlib_library_message])
+ env.Append(SHLINKCOMSTR=[link_shared_library_message])
+ env.Append(LINKCOMSTR=[link_program_message])
+ env.Append(JARCOMSTR=[java_library_message])
+ env.Append(JAVACCOMSTR=[java_compile_source_message])
+
def detect_visual_c_compiler_version(tools_env):
- # tools_env is the variable scons uses to call tools that execute tasks, SCons's env['ENV'] that executes tasks...
- # (see the SCons documentation for more information on what it does)...
- # in order for this function to be well encapsulated i choose to force it to recieve SCons's TOOLS env (env['ENV']
- # and not scons setup environment (env)... so make sure you call the right environment on it or it will fail to detect
- # the propper vc version that will be called
-
- # These is no flag to give to visual c compilers to set the architecture, ie scons bits argument (32,64,ARM etc)
- # There are many different cl.exe files that are run, and each one compiles & links to a different architecture
- # As far as I know, the only way to figure out what compiler will be run when Scons calls cl.exe via Program()
- # is to check the PATH varaible and figure out which one will be called first. Code bellow does that and returns:
- # the following string values:
-
- # "" Compiler not detected
- # "amd64" Native 64 bit compiler
- # "amd64_x86" 64 bit Cross Compiler for 32 bit
- # "x86" Native 32 bit compiler
- # "x86_amd64" 32 bit Cross Compiler for 64 bit
-
- # There are other architectures, but Godot does not support them currently, so this function does not detect arm/amd64_arm
- # and similar architectures/compilers
-
- # Set chosen compiler to "not detected"
- vc_chosen_compiler_index = -1
- vc_chosen_compiler_str = ""
-
- # find() works with -1 so big ifs bellow are needed... the simplest solution, in fact
- # First test if amd64 and amd64_x86 compilers are present in the path
- vc_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"]+"BIN\\amd64;")
- if(vc_amd64_compiler_detection_index > -1):
- vc_chosen_compiler_index = vc_amd64_compiler_detection_index
- vc_chosen_compiler_str = "amd64"
-
- vc_amd64_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"]+"BIN\\amd64_x86;")
- if(vc_amd64_x86_compiler_detection_index > -1
- and (vc_chosen_compiler_index == -1
- or vc_chosen_compiler_index > vc_amd64_x86_compiler_detection_index)):
- vc_chosen_compiler_index = vc_amd64_x86_compiler_detection_index
- vc_chosen_compiler_str = "amd64_x86"
-
-
- # Now check the 32 bit compilers
- vc_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"]+"BIN;")
- if(vc_x86_compiler_detection_index > -1
- and (vc_chosen_compiler_index == -1
- or vc_chosen_compiler_index > vc_x86_compiler_detection_index)):
- vc_chosen_compiler_index = vc_x86_compiler_detection_index
- vc_chosen_compiler_str = "x86"
-
- vc_x86_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env['VCINSTALLDIR']+"BIN\\x86_amd64;")
- if(vc_x86_amd64_compiler_detection_index > -1
- and (vc_chosen_compiler_index == -1
- or vc_chosen_compiler_index > vc_x86_amd64_compiler_detection_index)):
- vc_chosen_compiler_index = vc_x86_amd64_compiler_detection_index
- vc_chosen_compiler_str = "x86_amd64"
-
- # debug help
- #print vc_amd64_compiler_detection_index
- #print vc_amd64_x86_compiler_detection_index
- #print vc_x86_compiler_detection_index
- #print vc_x86_amd64_compiler_detection_index
- #print "chosen "+str(vc_chosen_compiler_index)+ " | "+str(vc_chosen_compiler_str)
-
- return vc_chosen_compiler_str
+ # tools_env is the variable scons uses to call tools that execute tasks, SCons's env['ENV'] that executes tasks...
+ # (see the SCons documentation for more information on what it does)...
+ # in order for this function to be well encapsulated i choose to force it to recieve SCons's TOOLS env (env['ENV']
+ # and not scons setup environment (env)... so make sure you call the right environment on it or it will fail to detect
+ # the propper vc version that will be called
+
+ # These is no flag to give to visual c compilers to set the architecture, ie scons bits argument (32,64,ARM etc)
+ # There are many different cl.exe files that are run, and each one compiles & links to a different architecture
+ # As far as I know, the only way to figure out what compiler will be run when Scons calls cl.exe via Program()
+ # is to check the PATH varaible and figure out which one will be called first. Code bellow does that and returns:
+ # the following string values:
+
+ # "" Compiler not detected
+ # "amd64" Native 64 bit compiler
+ # "amd64_x86" 64 bit Cross Compiler for 32 bit
+ # "x86" Native 32 bit compiler
+ # "x86_amd64" 32 bit Cross Compiler for 64 bit
+
+ # There are other architectures, but Godot does not support them currently, so this function does not detect arm/amd64_arm
+ # and similar architectures/compilers
+
+ # Set chosen compiler to "not detected"
+ vc_chosen_compiler_index = -1
+ vc_chosen_compiler_str = ""
+
+ # find() works with -1 so big ifs bellow are needed... the simplest solution, in fact
+ # First test if amd64 and amd64_x86 compilers are present in the path
+ vc_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64;")
+ if(vc_amd64_compiler_detection_index > -1):
+ vc_chosen_compiler_index = vc_amd64_compiler_detection_index
+ vc_chosen_compiler_str = "amd64"
+
+ vc_amd64_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64_x86;")
+ if(vc_amd64_x86_compiler_detection_index > -1
+ and (vc_chosen_compiler_index == -1
+ or vc_chosen_compiler_index > vc_amd64_x86_compiler_detection_index)):
+ vc_chosen_compiler_index = vc_amd64_x86_compiler_detection_index
+ vc_chosen_compiler_str = "amd64_x86"
+
+ # Now check the 32 bit compilers
+ vc_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN;")
+ if(vc_x86_compiler_detection_index > -1
+ and (vc_chosen_compiler_index == -1
+ or vc_chosen_compiler_index > vc_x86_compiler_detection_index)):
+ vc_chosen_compiler_index = vc_x86_compiler_detection_index
+ vc_chosen_compiler_str = "x86"
+
+ vc_x86_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env['VCINSTALLDIR'] + "BIN\\x86_amd64;")
+ if(vc_x86_amd64_compiler_detection_index > -1
+ and (vc_chosen_compiler_index == -1
+ or vc_chosen_compiler_index > vc_x86_amd64_compiler_detection_index)):
+ vc_chosen_compiler_index = vc_x86_amd64_compiler_detection_index
+ vc_chosen_compiler_str = "x86_amd64"
+
+ # debug help
+ # print vc_amd64_compiler_detection_index
+ # print vc_amd64_x86_compiler_detection_index
+ # print vc_x86_compiler_detection_index
+ # print vc_x86_amd64_compiler_detection_index
+ # print "chosen "+str(vc_chosen_compiler_index)+ " | "+str(vc_chosen_compiler_str)
+
+ return vc_chosen_compiler_str
def precious_program(env, program, sources, **args):
- program = env.ProgramOriginal(program, sources, **args)
- env.Precious(program)
- return program
+ program = env.ProgramOriginal(program, sources, **args)
+ env.Precious(program)
+ return program
diff --git a/modules/SCsub b/modules/SCsub
index 4084248086..4b9c08cf78 100644
--- a/modules/SCsub
+++ b/modules/SCsub
@@ -6,18 +6,18 @@ env_modules = env.Clone()
Export('env_modules')
-env.modules_sources=[
- "register_module_types.cpp",
+env.modules_sources = [
+ "register_module_types.cpp",
]
-#env.add_source_files(env.modules_sources,"*.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)
+lib = env_modules.Library("modules", env.modules_sources)
env.Prepend(LIBS=[lib])
diff --git a/modules/chibi/config.py b/modules/chibi/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/chibi/config.py
+++ b/modules/chibi/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/cscript/config.py b/modules/cscript/config.py
index ea7e83378a..5698a37295 100644
--- a/modules/cscript/config.py
+++ b/modules/cscript/config.py
@@ -1,11 +1,8 @@
def can_build(platform):
- return True
+ return True
def configure(env):
- pass
-
-
-
+ pass
diff --git a/modules/dds/config.py b/modules/dds/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/dds/config.py
+++ b/modules/dds/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/enet/SCsub b/modules/enet/SCsub
index 5175803f44..8188107603 100644
--- a/modules/enet/SCsub
+++ b/modules/enet/SCsub
@@ -7,22 +7,22 @@ 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]
+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]
- 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")
diff --git a/modules/enet/config.py b/modules/enet/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/enet/config.py
+++ b/modules/enet/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/etc1/SCsub b/modules/etc1/SCsub
index ea035fcde3..0c5dc66d2e 100644
--- a/modules/etc1/SCsub
+++ b/modules/etc1/SCsub
@@ -9,12 +9,12 @@ 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]
env_etc1.add_source_files(env.modules_sources, thirdparty_sources)
-env_etc1.Append(CPPPATH = [thirdparty_dir])
+env_etc1.Append(CPPPATH=[thirdparty_dir])
# Godot source files
env_etc1.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/etc1/config.py b/modules/etc1/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/etc1/config.py
+++ b/modules/etc1/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/freetype/SCsub b/modules/freetype/SCsub
index 1f759dee9a..c68c40265c 100644
--- a/modules/freetype/SCsub
+++ b/modules/freetype/SCsub
@@ -5,66 +5,66 @@ Import('env')
# Not building in a separate env as core needs it
# 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]
+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]
- # 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,11 +80,11 @@ 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")
-env.Append(CCFLAGS = ['-DFREETYPE_ENABLED'])
+env.Append(CCFLAGS=['-DFREETYPE_ENABLED'])
Export('env')
diff --git a/modules/freetype/config.py b/modules/freetype/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/freetype/config.py
+++ b/modules/freetype/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/gdscript/config.py b/modules/gdscript/config.py
index ea7e83378a..5698a37295 100644
--- a/modules/gdscript/config.py
+++ b/modules/gdscript/config.py
@@ -1,11 +1,8 @@
def can_build(platform):
- return True
+ return True
def configure(env):
- pass
-
-
-
+ pass
diff --git a/modules/gridmap/config.py b/modules/gridmap/config.py
index ea7e83378a..5698a37295 100644
--- a/modules/gridmap/config.py
+++ b/modules/gridmap/config.py
@@ -1,11 +1,8 @@
def can_build(platform):
- return True
+ return True
def configure(env):
- pass
-
-
-
+ pass
diff --git a/modules/ik/config.py b/modules/ik/config.py
index f9bd7da08d..5698a37295 100644
--- a/modules/ik/config.py
+++ b/modules/ik/config.py
@@ -1,11 +1,8 @@
def can_build(platform):
- return True
-
-
+ return True
+
+
def configure(env):
- pass
-
-
-
+ pass
diff --git a/modules/jpg/SCsub b/modules/jpg/SCsub
index 28fb81895d..e72dc6a1ca 100644
--- a/modules/jpg/SCsub
+++ b/modules/jpg/SCsub
@@ -9,12 +9,12 @@ 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]
env_jpg.add_source_files(env.modules_sources, thirdparty_sources)
-env_jpg.Append(CPPPATH = [thirdparty_dir])
+env_jpg.Append(CPPPATH=[thirdparty_dir])
# Godot's own source files
env_jpg.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/jpg/config.py b/modules/jpg/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/jpg/config.py
+++ b/modules/jpg/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/mpc/SCsub b/modules/mpc/SCsub
index 09f0c05daa..80d2ab4abe 100644
--- a/modules/mpc/SCsub
+++ b/modules/mpc/SCsub
@@ -6,23 +6,23 @@ Import('env_modules')
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",
- ]
+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_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")
diff --git a/modules/mpc/config.py b/modules/mpc/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/mpc/config.py
+++ b/modules/mpc/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/ogg/SCsub b/modules/ogg/SCsub
index 2e1fe2e0c0..719ee4662b 100644
--- a/modules/ogg/SCsub
+++ b/modules/ogg/SCsub
@@ -6,16 +6,16 @@ Import('env_modules')
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]
+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]
- 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")
diff --git a/modules/ogg/config.py b/modules/ogg/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/ogg/config.py
+++ b/modules/ogg/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/openssl/SCsub b/modules/openssl/SCsub
index 2327cf483c..bac80fb76e 100644
--- a/modules/openssl/SCsub
+++ b/modules/openssl/SCsub
@@ -6,673 +6,673 @@ Import('env_modules')
env_openssl = env_modules.Clone()
# Thirdparty source files
-if (env["openssl"] != "system"): # builtin
- thirdparty_dir = "#thirdparty/openssl/"
+if (env["openssl"] != "system"): # builtin
+ thirdparty_dir = "#thirdparty/openssl/"
- thirdparty_sources = [
- "ssl/t1_lib.c",
- "ssl/t1_ext.c",
- "ssl/s3_srvr.c",
- "ssl/t1_enc.c",
- "ssl/t1_meth.c",
- "ssl/s23_clnt.c",
- "ssl/ssl_asn1.c",
- "ssl/tls_srp.c",
- "ssl/kssl.c",
- "ssl/d1_both.c",
- "ssl/t1_clnt.c",
- "ssl/bio_ssl.c",
- "ssl/d1_srtp.c",
- "ssl/t1_reneg.c",
- "ssl/ssl_cert.c",
- "ssl/s3_lib.c",
- "ssl/d1_srvr.c",
- "ssl/s23_meth.c",
- "ssl/ssl_stat.c",
- "ssl/ssl_err.c",
- "ssl/ssl_algs.c",
- "ssl/s3_cbc.c",
- "ssl/d1_clnt.c",
- "ssl/s3_pkt.c",
- "ssl/d1_meth.c",
- "ssl/s3_both.c",
- "ssl/s2_enc.c",
- "ssl/s3_meth.c",
- "ssl/s3_enc.c",
- "ssl/s23_pkt.c",
- "ssl/s2_pkt.c",
- "ssl/d1_pkt.c",
- "ssl/ssl_rsa.c",
- "ssl/s23_srvr.c",
- "ssl/s2_meth.c",
- "ssl/s3_clnt.c",
- "ssl/s23_lib.c",
- "ssl/t1_srvr.c",
- "ssl/ssl_lib.c",
- "ssl/ssl_txt.c",
- "ssl/s2_srvr.c",
- "ssl/ssl_sess.c",
- "ssl/s2_clnt.c",
- "ssl/d1_lib.c",
- "ssl/s2_lib.c",
- "ssl/ssl_err2.c",
- "ssl/ssl_ciph.c",
- "crypto/dsa/dsa_lib.c",
- "crypto/dsa/dsa_pmeth.c",
- "crypto/dsa/dsa_ossl.c",
- "crypto/dsa/dsa_gen.c",
- "crypto/dsa/dsa_asn1.c",
- "crypto/dsa/dsa_prn.c",
- "crypto/dsa/dsa_sign.c",
- "crypto/dsa/dsa_key.c",
- "crypto/dsa/dsa_vrf.c",
- "crypto/dsa/dsa_err.c",
- "crypto/dsa/dsa_ameth.c",
- "crypto/dsa/dsa_depr.c",
- "crypto/x509/x509_lu.c",
- "crypto/x509/x509cset.c",
- "crypto/x509/x509_set.c",
- "crypto/x509/x509_d2.c",
- "crypto/x509/x509_txt.c",
- "crypto/x509/x509rset.c",
- "crypto/x509/by_dir.c",
- "crypto/x509/x509_vpm.c",
- "crypto/x509/x509_vfy.c",
- "crypto/x509/x509_trs.c",
- "crypto/x509/by_file.c",
- "crypto/x509/x509_obj.c",
- "crypto/x509/x509spki.c",
- "crypto/x509/x509_v3.c",
- "crypto/x509/x509_req.c",
- "crypto/x509/x509_att.c",
- "crypto/x509/x_all.c",
- "crypto/x509/x509_ext.c",
- "crypto/x509/x509type.c",
- "crypto/x509/x509_def.c",
- "crypto/x509/x509_err.c",
- "crypto/x509/x509name.c",
- "crypto/x509/x509_r2x.c",
- "crypto/x509/x509_cmp.c",
- "crypto/asn1/x_pkey.c",
- "crypto/asn1/a_gentm.c",
- "crypto/asn1/x_sig.c",
- "crypto/asn1/t_req.c",
- "crypto/asn1/t_pkey.c",
- "crypto/asn1/p8_pkey.c",
- "crypto/asn1/a_i2d_fp.c",
- "crypto/asn1/x_val.c",
- "crypto/asn1/f_string.c",
- "crypto/asn1/p5_pbe.c",
- "crypto/asn1/bio_ndef.c",
- "crypto/asn1/a_bool.c",
- "crypto/asn1/asn1_gen.c",
- "crypto/asn1/x_algor.c",
- "crypto/asn1/bio_asn1.c",
- "crypto/asn1/asn_mime.c",
- "crypto/asn1/t_x509.c",
- "crypto/asn1/a_strex.c",
- "crypto/asn1/x_nx509.c",
- "crypto/asn1/asn1_err.c",
- "crypto/asn1/x_crl.c",
- "crypto/asn1/a_print.c",
- "crypto/asn1/a_type.c",
- "crypto/asn1/tasn_new.c",
- "crypto/asn1/n_pkey.c",
- "crypto/asn1/x_bignum.c",
- "crypto/asn1/asn_pack.c",
- "crypto/asn1/evp_asn1.c",
- "crypto/asn1/t_bitst.c",
- "crypto/asn1/x_req.c",
- "crypto/asn1/a_time.c",
- "crypto/asn1/x_name.c",
- "crypto/asn1/x_pubkey.c",
- "crypto/asn1/tasn_typ.c",
- "crypto/asn1/asn_moid.c",
- "crypto/asn1/a_utctm.c",
- "crypto/asn1/asn1_lib.c",
- "crypto/asn1/x_x509a.c",
- "crypto/asn1/a_set.c",
- "crypto/asn1/t_crl.c",
- "crypto/asn1/p5_pbev2.c",
- "crypto/asn1/tasn_enc.c",
- "crypto/asn1/a_mbstr.c",
- "crypto/asn1/tasn_dec.c",
- "crypto/asn1/x_x509.c",
- "crypto/asn1/a_octet.c",
- "crypto/asn1/x_long.c",
- "crypto/asn1/a_bytes.c",
- "crypto/asn1/t_x509a.c",
- "crypto/asn1/a_enum.c",
- "crypto/asn1/a_int.c",
- "crypto/asn1/tasn_prn.c",
- "crypto/asn1/i2d_pr.c",
- "crypto/asn1/a_utf8.c",
- "crypto/asn1/t_spki.c",
- "crypto/asn1/a_digest.c",
- "crypto/asn1/a_dup.c",
- "crypto/asn1/i2d_pu.c",
- "crypto/asn1/a_verify.c",
- "crypto/asn1/f_enum.c",
- "crypto/asn1/a_sign.c",
- "crypto/asn1/d2i_pr.c",
- "crypto/asn1/asn1_par.c",
- "crypto/asn1/x_spki.c",
- "crypto/asn1/a_d2i_fp.c",
- "crypto/asn1/f_int.c",
- "crypto/asn1/x_exten.c",
- "crypto/asn1/tasn_utl.c",
- "crypto/asn1/nsseq.c",
- "crypto/asn1/a_bitstr.c",
- "crypto/asn1/x_info.c",
- "crypto/asn1/a_strnid.c",
- "crypto/asn1/a_object.c",
- "crypto/asn1/tasn_fre.c",
- "crypto/asn1/d2i_pu.c",
- "crypto/asn1/ameth_lib.c",
- "crypto/asn1/x_attrib.c",
- "crypto/evp/m_sha.c",
- "crypto/evp/e_camellia.c",
- "crypto/evp/e_aes.c",
- "crypto/evp/bio_b64.c",
- "crypto/evp/m_sigver.c",
- "crypto/evp/m_wp.c",
- "crypto/evp/m_sha1.c",
- "crypto/evp/p_seal.c",
- "crypto/evp/c_alld.c",
- "crypto/evp/p5_crpt.c",
- "crypto/evp/e_rc4.c",
- "crypto/evp/m_ecdsa.c",
- "crypto/evp/bio_enc.c",
- "crypto/evp/e_des3.c",
- "crypto/evp/m_null.c",
- "crypto/evp/bio_ok.c",
- "crypto/evp/pmeth_gn.c",
- "crypto/evp/e_rc5.c",
- "crypto/evp/e_rc2.c",
- "crypto/evp/p_dec.c",
- "crypto/evp/p_verify.c",
- "crypto/evp/e_rc4_hmac_md5.c",
- "crypto/evp/pmeth_lib.c",
- "crypto/evp/m_ripemd.c",
- "crypto/evp/m_md5.c",
- "crypto/evp/e_bf.c",
- "crypto/evp/p_enc.c",
- "crypto/evp/m_dss.c",
- "crypto/evp/bio_md.c",
- "crypto/evp/evp_pbe.c",
- "crypto/evp/e_seed.c",
- "crypto/evp/e_cast.c",
- "crypto/evp/p_open.c",
- "crypto/evp/p5_crpt2.c",
- "crypto/evp/m_dss1.c",
- "crypto/evp/names.c",
- "crypto/evp/evp_acnf.c",
- "crypto/evp/e_des.c",
- "crypto/evp/evp_cnf.c",
- "crypto/evp/evp_lib.c",
- "crypto/evp/digest.c",
- "crypto/evp/evp_err.c",
- "crypto/evp/evp_enc.c",
- "crypto/evp/e_old.c",
- "crypto/evp/c_all.c",
- "crypto/evp/m_md2.c",
- "crypto/evp/e_xcbc_d.c",
- "crypto/evp/pmeth_fn.c",
- "crypto/evp/p_lib.c",
- "crypto/evp/evp_key.c",
- "crypto/evp/encode.c",
- "crypto/evp/e_aes_cbc_hmac_sha1.c",
- "crypto/evp/e_aes_cbc_hmac_sha256.c",
- "crypto/evp/m_mdc2.c",
- "crypto/evp/e_null.c",
- "crypto/evp/p_sign.c",
- "crypto/evp/e_idea.c",
- "crypto/evp/c_allc.c",
- "crypto/evp/evp_pkey.c",
- "crypto/evp/m_md4.c",
- "crypto/ex_data.c",
- "crypto/pkcs12/p12_p8e.c",
- "crypto/pkcs12/p12_crt.c",
- "crypto/pkcs12/p12_utl.c",
- "crypto/pkcs12/p12_attr.c",
- "crypto/pkcs12/p12_npas.c",
- "crypto/pkcs12/p12_decr.c",
- "crypto/pkcs12/p12_init.c",
- "crypto/pkcs12/p12_kiss.c",
- "crypto/pkcs12/p12_add.c",
- "crypto/pkcs12/p12_p8d.c",
- "crypto/pkcs12/p12_mutl.c",
- "crypto/pkcs12/p12_crpt.c",
- "crypto/pkcs12/pk12err.c",
- "crypto/pkcs12/p12_asn.c",
- "crypto/pkcs12/p12_key.c",
- "crypto/ecdh/ech_key.c",
- "crypto/ecdh/ech_ossl.c",
- "crypto/ecdh/ech_lib.c",
- "crypto/ecdh/ech_err.c",
- "crypto/ecdh/ech_kdf.c",
- "crypto/o_str.c",
- "crypto/conf/conf_api.c",
- "crypto/conf/conf_err.c",
- "crypto/conf/conf_def.c",
- "crypto/conf/conf_lib.c",
- "crypto/conf/conf_mall.c",
- "crypto/conf/conf_sap.c",
- "crypto/conf/conf_mod.c",
- "crypto/ebcdic.c",
- "crypto/ecdsa/ecs_lib.c",
- "crypto/ecdsa/ecs_asn1.c",
- "crypto/ecdsa/ecs_ossl.c",
- "crypto/ecdsa/ecs_vrf.c",
- "crypto/ecdsa/ecs_sign.c",
- "crypto/ecdsa/ecs_err.c",
- "crypto/dso/dso_win32.c",
- "crypto/dso/dso_lib.c",
- "crypto/dso/dso_dlfcn.c",
- "crypto/dso/dso_dl.c",
- "crypto/dso/dso_beos.c",
- "crypto/dso/dso_null.c",
- "crypto/dso/dso_vms.c",
- "crypto/dso/dso_err.c",
- "crypto/dso/dso_openssl.c",
- "crypto/cryptlib.c",
- "crypto/md5/md5_one.c",
- "crypto/md5/md5_dgst.c",
- "crypto/pkcs7/pkcs7err.c",
- "crypto/pkcs7/pk7_smime.c",
- "crypto/pkcs7/bio_pk7.c",
- "crypto/pkcs7/pk7_mime.c",
- "crypto/pkcs7/pk7_lib.c",
- "crypto/pkcs7/pk7_asn1.c",
- "crypto/pkcs7/pk7_doit.c",
- "crypto/pkcs7/pk7_attr.c",
- "crypto/md4/md4_one.c",
- "crypto/md4/md4_dgst.c",
- "crypto/o_dir.c",
- "crypto/buffer/buf_err.c",
- "crypto/buffer/buf_str.c",
- "crypto/buffer/buffer.c",
- "crypto/cms/cms_lib.c",
- "crypto/cms/cms_io.c",
- "crypto/cms/cms_err.c",
- "crypto/cms/cms_dd.c",
- "crypto/cms/cms_smime.c",
- "crypto/cms/cms_att.c",
- "crypto/cms/cms_pwri.c",
- "crypto/cms/cms_cd.c",
- "crypto/cms/cms_sd.c",
- "crypto/cms/cms_asn1.c",
- "crypto/cms/cms_env.c",
- "crypto/cms/cms_enc.c",
- "crypto/cms/cms_ess.c",
- "crypto/cms/cms_kari.c",
- "crypto/mem_dbg.c",
- "crypto/uid.c",
- "crypto/stack/stack.c",
- "crypto/ec/ec_ameth.c",
- "crypto/ec/ec_err.c",
- "crypto/ec/ec_lib.c",
- "crypto/ec/ec_curve.c",
- "crypto/ec/ec_oct.c",
- "crypto/ec/ec_asn1.c",
- "crypto/ec/ecp_oct.c",
- "crypto/ec/ec_print.c",
- "crypto/ec/ec2_smpl.c",
- "crypto/ec/ecp_nistp224.c",
- "crypto/ec/ec2_oct.c",
- "crypto/ec/eck_prn.c",
- "crypto/ec/ec_key.c",
- "crypto/ec/ecp_nist.c",
- "crypto/ec/ec_check.c",
- "crypto/ec/ecp_smpl.c",
- "crypto/ec/ec2_mult.c",
- "crypto/ec/ecp_mont.c",
- "crypto/ec/ecp_nistp521.c",
- "crypto/ec/ec_mult.c",
- "crypto/ec/ecp_nistputil.c",
- "crypto/ec/ec_pmeth.c",
- "crypto/ec/ec_cvt.c",
- "crypto/ec/ecp_nistp256.c",
- "crypto/krb5/krb5_asn.c",
- "crypto/hmac/hmac.c",
- "crypto/hmac/hm_ameth.c",
- "crypto/hmac/hm_pmeth.c",
- "crypto/comp/c_rle.c",
- "crypto/comp/c_zlib.c",
- "crypto/comp/comp_lib.c",
- "crypto/comp/comp_err.c",
- "crypto/des/fcrypt.c",
- "crypto/des/str2key.c",
- "crypto/des/cbc_cksm.c",
- "crypto/des/des_enc.c",
- "crypto/des/ofb_enc.c",
- "crypto/des/read2pwd.c",
- "crypto/des/ecb3_enc.c",
- "crypto/des/rand_key.c",
- "crypto/des/cfb64ede.c",
- "crypto/des/rpc_enc.c",
- "crypto/des/ofb64ede.c",
- "crypto/des/qud_cksm.c",
- "crypto/des/enc_writ.c",
- "crypto/des/set_key.c",
- "crypto/des/xcbc_enc.c",
- "crypto/des/fcrypt_b.c",
- "crypto/des/ede_cbcm_enc.c",
- "crypto/des/des_old2.c",
- "crypto/des/cfb_enc.c",
- "crypto/des/ecb_enc.c",
- "crypto/des/enc_read.c",
- "crypto/des/des_old.c",
- "crypto/des/ofb64enc.c",
- "crypto/des/pcbc_enc.c",
- "crypto/des/cbc_enc.c",
- "crypto/des/cfb64enc.c",
- "crypto/lhash/lh_stats.c",
- "crypto/lhash/lhash.c",
- "crypto/x509v3/v3_genn.c",
- "crypto/x509v3/pcy_cache.c",
- "crypto/x509v3/v3_sxnet.c",
- "crypto/x509v3/v3_scts.c",
- "crypto/x509v3/v3err.c",
- "crypto/x509v3/v3_conf.c",
- "crypto/x509v3/v3_utl.c",
- "crypto/x509v3/v3_akeya.c",
- "crypto/x509v3/v3_lib.c",
- "crypto/x509v3/pcy_lib.c",
- "crypto/x509v3/v3_cpols.c",
- "crypto/x509v3/v3_ia5.c",
- "crypto/x509v3/v3_bitst.c",
- "crypto/x509v3/v3_skey.c",
- "crypto/x509v3/v3_info.c",
- "crypto/x509v3/v3_asid.c",
- "crypto/x509v3/pcy_tree.c",
- "crypto/x509v3/v3_pcons.c",
- "crypto/x509v3/v3_bcons.c",
- "crypto/x509v3/v3_pku.c",
- "crypto/x509v3/v3_ocsp.c",
- "crypto/x509v3/pcy_map.c",
- "crypto/x509v3/v3_ncons.c",
- "crypto/x509v3/v3_purp.c",
- "crypto/x509v3/v3_enum.c",
- "crypto/x509v3/v3_pmaps.c",
- "crypto/x509v3/pcy_node.c",
- "crypto/x509v3/v3_pcia.c",
- "crypto/x509v3/v3_crld.c",
- "crypto/x509v3/v3_pci.c",
- "crypto/x509v3/v3_akey.c",
- "crypto/x509v3/v3_addr.c",
- "crypto/x509v3/v3_int.c",
- "crypto/x509v3/v3_alt.c",
- "crypto/x509v3/v3_extku.c",
- "crypto/x509v3/v3_prn.c",
- "crypto/x509v3/pcy_data.c",
- "crypto/aes/aes_ofb.c",
- "crypto/aes/aes_ctr.c",
- "crypto/aes/aes_ecb.c",
- "crypto/aes/aes_cfb.c",
- "crypto/aes/aes_wrap.c",
- "crypto/aes/aes_ige.c",
- "crypto/aes/aes_misc.c",
- "crypto/pqueue/pqueue.c",
- "crypto/sha/sha_one.c",
- "crypto/sha/sha_dgst.c",
- "crypto/sha/sha512.c",
- "crypto/sha/sha1_one.c",
- "crypto/sha/sha1dgst.c",
- "crypto/sha/sha256.c",
- "crypto/whrlpool/wp_dgst.c",
- "crypto/objects/obj_xref.c",
- "crypto/objects/o_names.c",
- "crypto/objects/obj_err.c",
- "crypto/objects/obj_dat.c",
- "crypto/objects/obj_lib.c",
- "crypto/mem.c",
- "crypto/fips_ers.c",
- "crypto/o_fips.c",
- "crypto/engine/eng_rdrand.c",
- "crypto/engine/eng_err.c",
- "crypto/engine/tb_ecdsa.c",
- "crypto/engine/tb_rsa.c",
- "crypto/engine/tb_cipher.c",
- "crypto/engine/tb_dsa.c",
- "crypto/engine/eng_lib.c",
- "crypto/engine/tb_asnmth.c",
- "crypto/engine/tb_ecdh.c",
- "crypto/engine/tb_dh.c",
- "crypto/engine/tb_store.c",
- "crypto/engine/eng_init.c",
- "crypto/engine/eng_cnf.c",
- "crypto/engine/eng_all.c",
- "crypto/engine/tb_digest.c",
- "crypto/engine/tb_pkmeth.c",
- "crypto/engine/eng_table.c",
- "crypto/engine/eng_ctrl.c",
- "crypto/engine/eng_list.c",
- "crypto/engine/eng_cryptodev.c",
- "crypto/engine/eng_pkey.c",
- "crypto/engine/tb_rand.c",
- "crypto/engine/eng_openssl.c",
- "crypto/engine/eng_fat.c",
- "crypto/engine/eng_dyn.c",
- "crypto/ts/ts_rsp_verify.c",
- "crypto/ts/ts_req_print.c",
- "crypto/ts/ts_verify_ctx.c",
- "crypto/ts/ts_req_utils.c",
- "crypto/ts/ts_err.c",
- "crypto/ts/ts_rsp_print.c",
- "crypto/ts/ts_rsp_utils.c",
- "crypto/ts/ts_lib.c",
- "crypto/ts/ts_conf.c",
- "crypto/ts/ts_asn1.c",
- "crypto/ts/ts_rsp_sign.c",
- "crypto/ocsp/ocsp_ext.c",
- "crypto/ocsp/ocsp_cl.c",
- "crypto/ocsp/ocsp_ht.c",
- "crypto/ocsp/ocsp_lib.c",
- "crypto/ocsp/ocsp_srv.c",
- "crypto/ocsp/ocsp_vfy.c",
- "crypto/ocsp/ocsp_err.c",
- "crypto/ocsp/ocsp_prn.c",
- "crypto/ocsp/ocsp_asn.c",
- "crypto/bf/bf_cfb64.c",
- "crypto/bf/bf_ecb.c",
- "crypto/bf/bf_enc.c",
- "crypto/bf/bf_skey.c",
- "crypto/bf/bf_ofb64.c",
- "crypto/idea/i_skey.c",
- "crypto/idea/i_ofb64.c",
- "crypto/idea/i_cbc.c",
- "crypto/idea/i_ecb.c",
- "crypto/idea/i_cfb64.c",
- "crypto/cmac/cm_ameth.c",
- "crypto/cmac/cmac.c",
- "crypto/cmac/cm_pmeth.c",
- "crypto/dh/dh_lib.c",
- "crypto/dh/dh_key.c",
- "crypto/dh/dh_asn1.c",
- "crypto/dh/dh_depr.c",
- "crypto/dh/dh_pmeth.c",
- "crypto/dh/dh_prn.c",
- "crypto/dh/dh_gen.c",
- "crypto/dh/dh_ameth.c",
- "crypto/dh/dh_check.c",
- "crypto/dh/dh_err.c",
- "crypto/dh/dh_kdf.c",
- "crypto/dh/dh_rfc5114.c",
- "crypto/modes/ccm128.c",
- "crypto/modes/ofb128.c",
- "crypto/modes/cts128.c",
- "crypto/modes/ctr128.c",
- "crypto/modes/gcm128.c",
- "crypto/modes/cbc128.c",
- "crypto/modes/cfb128.c",
- "crypto/modes/xts128.c",
- "crypto/modes/wrap128.c",
- "crypto/camellia/cmll_cfb.c",
- "crypto/camellia/cmll_ecb.c",
- "crypto/camellia/cmll_utl.c",
- "crypto/camellia/cmll_misc.c",
- "crypto/camellia/cmll_ofb.c",
- "crypto/camellia/cmll_ctr.c",
- "crypto/seed/seed_ecb.c",
- "crypto/seed/seed_cbc.c",
- "crypto/seed/seed.c",
- "crypto/seed/seed_ofb.c",
- "crypto/seed/seed_cfb.c",
- "crypto/txt_db/txt_db.c",
- "crypto/cpt_err.c",
- "crypto/pem/pem_pk8.c",
- "crypto/pem/pem_lib.c",
- "crypto/pem/pem_sign.c",
- "crypto/pem/pem_all.c",
- "crypto/pem/pem_info.c",
- "crypto/pem/pem_pkey.c",
- "crypto/pem/pem_seal.c",
- "crypto/pem/pem_err.c",
- "crypto/pem/pem_xaux.c",
- "crypto/pem/pvkfmt.c",
- "crypto/pem/pem_x509.c",
- "crypto/pem/pem_oth.c",
- "crypto/rand/rand_lib.c",
- "crypto/rand/randfile.c",
- "crypto/rand/rand_os2.c",
- "crypto/rand/rand_unix.c",
- "crypto/rand/rand_nw.c",
- "crypto/rand/md_rand.c",
- "crypto/rand/rand_err.c",
- "crypto/rand/rand_win.c",
- "crypto/rand/rand_egd.c",
- "crypto/cversion.c",
- "crypto/cast/c_ecb.c",
- "crypto/cast/c_skey.c",
- "crypto/cast/c_ofb64.c",
- "crypto/cast/c_enc.c",
- "crypto/cast/c_cfb64.c",
- "crypto/o_time.c",
- "crypto/mdc2/mdc2dgst.c",
- "crypto/mdc2/mdc2_one.c",
- "crypto/rc4/rc4_utl.c",
- "crypto/ui/ui_compat.c",
- "crypto/ui/ui_util.c",
- "crypto/ui/ui_lib.c",
- "crypto/ui/ui_err.c",
- "crypto/ui/ui_openssl.c",
- "crypto/bio/bf_buff.c",
- "crypto/bio/bss_null.c",
- "crypto/bio/bss_acpt.c",
- "crypto/bio/bss_conn.c",
- "crypto/bio/bss_fd.c",
- "crypto/bio/bf_null.c",
- "crypto/bio/bio_err.c",
- "crypto/bio/bss_sock.c",
- "crypto/bio/bss_mem.c",
- "crypto/bio/b_dump.c",
- "crypto/bio/b_print.c",
- "crypto/bio/b_sock.c",
- "crypto/bio/bss_dgram.c",
- "crypto/bio/bf_nbio.c",
- "crypto/bio/bio_lib.c",
- "crypto/bio/bss_file.c",
- "crypto/bio/bss_bio.c",
- "crypto/bio/bss_log.c",
- "crypto/bio/bio_cb.c",
- "crypto/o_init.c",
- "crypto/rc2/rc2_skey.c",
- "crypto/rc2/rc2_cbc.c",
- "crypto/rc2/rc2cfb64.c",
- "crypto/rc2/rc2_ecb.c",
- "crypto/rc2/rc2ofb64.c",
- "crypto/bn/bn_x931p.c",
- "crypto/bn/bn_blind.c",
- "crypto/bn/bn_gf2m.c",
- "crypto/bn/bn_const.c",
- "crypto/bn/bn_sqr.c",
- "crypto/bn/bn_nist.c",
- "crypto/bn/bn_rand.c",
- "crypto/bn/bn_err.c",
- "crypto/bn/bn_div.c",
- "crypto/bn/bn_kron.c",
- "crypto/bn/bn_ctx.c",
- "crypto/bn/bn_shift.c",
- "crypto/bn/bn_mod.c",
- "crypto/bn/bn_exp2.c",
- "crypto/bn/bn_word.c",
- "crypto/bn/bn_add.c",
- "crypto/bn/bn_exp.c",
- "crypto/bn/bn_mont.c",
- "crypto/bn/bn_print.c",
- "crypto/bn/bn_mul.c",
- "crypto/bn/bn_prime.c",
- "crypto/bn/bn_depr.c",
- "crypto/bn/bn_gcd.c",
- "crypto/bn/bn_mpi.c",
- "crypto/bn/bn_sqrt.c",
- "crypto/bn/bn_recp.c",
- "crypto/bn/bn_lib.c",
- "crypto/ripemd/rmd_dgst.c",
- "crypto/ripemd/rmd_one.c",
- "crypto/rsa/rsa_x931.c",
- "crypto/rsa/rsa_depr.c",
- "crypto/rsa/rsa_saos.c",
- "crypto/rsa/rsa_crpt.c",
- "crypto/rsa/rsa_pss.c",
- "crypto/rsa/rsa_oaep.c",
- "crypto/rsa/rsa_null.c",
- "crypto/rsa/rsa_gen.c",
- "crypto/rsa/rsa_prn.c",
- "crypto/rsa/rsa_pmeth.c",
- "crypto/rsa/rsa_asn1.c",
- "crypto/rsa/rsa_ssl.c",
- "crypto/rsa/rsa_ameth.c",
- "crypto/rsa/rsa_pk1.c",
- "crypto/rsa/rsa_err.c",
- "crypto/rsa/rsa_lib.c",
- "crypto/rsa/rsa_none.c",
- "crypto/rsa/rsa_chk.c",
- "crypto/rsa/rsa_eay.c",
- "crypto/rsa/rsa_sign.c",
- "crypto/srp/srp_lib.c",
- "crypto/srp/srp_vfy.c",
- "crypto/err/err.c",
- "crypto/err/err_prn.c",
- "crypto/err/err_all.c",
- "crypto/mem_clr.c",
- "crypto/rc4/rc4_skey.c",
- "crypto/rc4/rc4_enc.c",
- "crypto/camellia/camellia.c",
- "crypto/camellia/cmll_cbc.c",
- #"crypto/aes/aes_x86core.c",
- "crypto/aes/aes_core.c",
- "crypto/aes/aes_cbc.c",
- "crypto/whrlpool/wp_block.c",
- "crypto/bn/bn_asm.c",
- ]
+ thirdparty_sources = [
+ "ssl/t1_lib.c",
+ "ssl/t1_ext.c",
+ "ssl/s3_srvr.c",
+ "ssl/t1_enc.c",
+ "ssl/t1_meth.c",
+ "ssl/s23_clnt.c",
+ "ssl/ssl_asn1.c",
+ "ssl/tls_srp.c",
+ "ssl/kssl.c",
+ "ssl/d1_both.c",
+ "ssl/t1_clnt.c",
+ "ssl/bio_ssl.c",
+ "ssl/d1_srtp.c",
+ "ssl/t1_reneg.c",
+ "ssl/ssl_cert.c",
+ "ssl/s3_lib.c",
+ "ssl/d1_srvr.c",
+ "ssl/s23_meth.c",
+ "ssl/ssl_stat.c",
+ "ssl/ssl_err.c",
+ "ssl/ssl_algs.c",
+ "ssl/s3_cbc.c",
+ "ssl/d1_clnt.c",
+ "ssl/s3_pkt.c",
+ "ssl/d1_meth.c",
+ "ssl/s3_both.c",
+ "ssl/s2_enc.c",
+ "ssl/s3_meth.c",
+ "ssl/s3_enc.c",
+ "ssl/s23_pkt.c",
+ "ssl/s2_pkt.c",
+ "ssl/d1_pkt.c",
+ "ssl/ssl_rsa.c",
+ "ssl/s23_srvr.c",
+ "ssl/s2_meth.c",
+ "ssl/s3_clnt.c",
+ "ssl/s23_lib.c",
+ "ssl/t1_srvr.c",
+ "ssl/ssl_lib.c",
+ "ssl/ssl_txt.c",
+ "ssl/s2_srvr.c",
+ "ssl/ssl_sess.c",
+ "ssl/s2_clnt.c",
+ "ssl/d1_lib.c",
+ "ssl/s2_lib.c",
+ "ssl/ssl_err2.c",
+ "ssl/ssl_ciph.c",
+ "crypto/dsa/dsa_lib.c",
+ "crypto/dsa/dsa_pmeth.c",
+ "crypto/dsa/dsa_ossl.c",
+ "crypto/dsa/dsa_gen.c",
+ "crypto/dsa/dsa_asn1.c",
+ "crypto/dsa/dsa_prn.c",
+ "crypto/dsa/dsa_sign.c",
+ "crypto/dsa/dsa_key.c",
+ "crypto/dsa/dsa_vrf.c",
+ "crypto/dsa/dsa_err.c",
+ "crypto/dsa/dsa_ameth.c",
+ "crypto/dsa/dsa_depr.c",
+ "crypto/x509/x509_lu.c",
+ "crypto/x509/x509cset.c",
+ "crypto/x509/x509_set.c",
+ "crypto/x509/x509_d2.c",
+ "crypto/x509/x509_txt.c",
+ "crypto/x509/x509rset.c",
+ "crypto/x509/by_dir.c",
+ "crypto/x509/x509_vpm.c",
+ "crypto/x509/x509_vfy.c",
+ "crypto/x509/x509_trs.c",
+ "crypto/x509/by_file.c",
+ "crypto/x509/x509_obj.c",
+ "crypto/x509/x509spki.c",
+ "crypto/x509/x509_v3.c",
+ "crypto/x509/x509_req.c",
+ "crypto/x509/x509_att.c",
+ "crypto/x509/x_all.c",
+ "crypto/x509/x509_ext.c",
+ "crypto/x509/x509type.c",
+ "crypto/x509/x509_def.c",
+ "crypto/x509/x509_err.c",
+ "crypto/x509/x509name.c",
+ "crypto/x509/x509_r2x.c",
+ "crypto/x509/x509_cmp.c",
+ "crypto/asn1/x_pkey.c",
+ "crypto/asn1/a_gentm.c",
+ "crypto/asn1/x_sig.c",
+ "crypto/asn1/t_req.c",
+ "crypto/asn1/t_pkey.c",
+ "crypto/asn1/p8_pkey.c",
+ "crypto/asn1/a_i2d_fp.c",
+ "crypto/asn1/x_val.c",
+ "crypto/asn1/f_string.c",
+ "crypto/asn1/p5_pbe.c",
+ "crypto/asn1/bio_ndef.c",
+ "crypto/asn1/a_bool.c",
+ "crypto/asn1/asn1_gen.c",
+ "crypto/asn1/x_algor.c",
+ "crypto/asn1/bio_asn1.c",
+ "crypto/asn1/asn_mime.c",
+ "crypto/asn1/t_x509.c",
+ "crypto/asn1/a_strex.c",
+ "crypto/asn1/x_nx509.c",
+ "crypto/asn1/asn1_err.c",
+ "crypto/asn1/x_crl.c",
+ "crypto/asn1/a_print.c",
+ "crypto/asn1/a_type.c",
+ "crypto/asn1/tasn_new.c",
+ "crypto/asn1/n_pkey.c",
+ "crypto/asn1/x_bignum.c",
+ "crypto/asn1/asn_pack.c",
+ "crypto/asn1/evp_asn1.c",
+ "crypto/asn1/t_bitst.c",
+ "crypto/asn1/x_req.c",
+ "crypto/asn1/a_time.c",
+ "crypto/asn1/x_name.c",
+ "crypto/asn1/x_pubkey.c",
+ "crypto/asn1/tasn_typ.c",
+ "crypto/asn1/asn_moid.c",
+ "crypto/asn1/a_utctm.c",
+ "crypto/asn1/asn1_lib.c",
+ "crypto/asn1/x_x509a.c",
+ "crypto/asn1/a_set.c",
+ "crypto/asn1/t_crl.c",
+ "crypto/asn1/p5_pbev2.c",
+ "crypto/asn1/tasn_enc.c",
+ "crypto/asn1/a_mbstr.c",
+ "crypto/asn1/tasn_dec.c",
+ "crypto/asn1/x_x509.c",
+ "crypto/asn1/a_octet.c",
+ "crypto/asn1/x_long.c",
+ "crypto/asn1/a_bytes.c",
+ "crypto/asn1/t_x509a.c",
+ "crypto/asn1/a_enum.c",
+ "crypto/asn1/a_int.c",
+ "crypto/asn1/tasn_prn.c",
+ "crypto/asn1/i2d_pr.c",
+ "crypto/asn1/a_utf8.c",
+ "crypto/asn1/t_spki.c",
+ "crypto/asn1/a_digest.c",
+ "crypto/asn1/a_dup.c",
+ "crypto/asn1/i2d_pu.c",
+ "crypto/asn1/a_verify.c",
+ "crypto/asn1/f_enum.c",
+ "crypto/asn1/a_sign.c",
+ "crypto/asn1/d2i_pr.c",
+ "crypto/asn1/asn1_par.c",
+ "crypto/asn1/x_spki.c",
+ "crypto/asn1/a_d2i_fp.c",
+ "crypto/asn1/f_int.c",
+ "crypto/asn1/x_exten.c",
+ "crypto/asn1/tasn_utl.c",
+ "crypto/asn1/nsseq.c",
+ "crypto/asn1/a_bitstr.c",
+ "crypto/asn1/x_info.c",
+ "crypto/asn1/a_strnid.c",
+ "crypto/asn1/a_object.c",
+ "crypto/asn1/tasn_fre.c",
+ "crypto/asn1/d2i_pu.c",
+ "crypto/asn1/ameth_lib.c",
+ "crypto/asn1/x_attrib.c",
+ "crypto/evp/m_sha.c",
+ "crypto/evp/e_camellia.c",
+ "crypto/evp/e_aes.c",
+ "crypto/evp/bio_b64.c",
+ "crypto/evp/m_sigver.c",
+ "crypto/evp/m_wp.c",
+ "crypto/evp/m_sha1.c",
+ "crypto/evp/p_seal.c",
+ "crypto/evp/c_alld.c",
+ "crypto/evp/p5_crpt.c",
+ "crypto/evp/e_rc4.c",
+ "crypto/evp/m_ecdsa.c",
+ "crypto/evp/bio_enc.c",
+ "crypto/evp/e_des3.c",
+ "crypto/evp/m_null.c",
+ "crypto/evp/bio_ok.c",
+ "crypto/evp/pmeth_gn.c",
+ "crypto/evp/e_rc5.c",
+ "crypto/evp/e_rc2.c",
+ "crypto/evp/p_dec.c",
+ "crypto/evp/p_verify.c",
+ "crypto/evp/e_rc4_hmac_md5.c",
+ "crypto/evp/pmeth_lib.c",
+ "crypto/evp/m_ripemd.c",
+ "crypto/evp/m_md5.c",
+ "crypto/evp/e_bf.c",
+ "crypto/evp/p_enc.c",
+ "crypto/evp/m_dss.c",
+ "crypto/evp/bio_md.c",
+ "crypto/evp/evp_pbe.c",
+ "crypto/evp/e_seed.c",
+ "crypto/evp/e_cast.c",
+ "crypto/evp/p_open.c",
+ "crypto/evp/p5_crpt2.c",
+ "crypto/evp/m_dss1.c",
+ "crypto/evp/names.c",
+ "crypto/evp/evp_acnf.c",
+ "crypto/evp/e_des.c",
+ "crypto/evp/evp_cnf.c",
+ "crypto/evp/evp_lib.c",
+ "crypto/evp/digest.c",
+ "crypto/evp/evp_err.c",
+ "crypto/evp/evp_enc.c",
+ "crypto/evp/e_old.c",
+ "crypto/evp/c_all.c",
+ "crypto/evp/m_md2.c",
+ "crypto/evp/e_xcbc_d.c",
+ "crypto/evp/pmeth_fn.c",
+ "crypto/evp/p_lib.c",
+ "crypto/evp/evp_key.c",
+ "crypto/evp/encode.c",
+ "crypto/evp/e_aes_cbc_hmac_sha1.c",
+ "crypto/evp/e_aes_cbc_hmac_sha256.c",
+ "crypto/evp/m_mdc2.c",
+ "crypto/evp/e_null.c",
+ "crypto/evp/p_sign.c",
+ "crypto/evp/e_idea.c",
+ "crypto/evp/c_allc.c",
+ "crypto/evp/evp_pkey.c",
+ "crypto/evp/m_md4.c",
+ "crypto/ex_data.c",
+ "crypto/pkcs12/p12_p8e.c",
+ "crypto/pkcs12/p12_crt.c",
+ "crypto/pkcs12/p12_utl.c",
+ "crypto/pkcs12/p12_attr.c",
+ "crypto/pkcs12/p12_npas.c",
+ "crypto/pkcs12/p12_decr.c",
+ "crypto/pkcs12/p12_init.c",
+ "crypto/pkcs12/p12_kiss.c",
+ "crypto/pkcs12/p12_add.c",
+ "crypto/pkcs12/p12_p8d.c",
+ "crypto/pkcs12/p12_mutl.c",
+ "crypto/pkcs12/p12_crpt.c",
+ "crypto/pkcs12/pk12err.c",
+ "crypto/pkcs12/p12_asn.c",
+ "crypto/pkcs12/p12_key.c",
+ "crypto/ecdh/ech_key.c",
+ "crypto/ecdh/ech_ossl.c",
+ "crypto/ecdh/ech_lib.c",
+ "crypto/ecdh/ech_err.c",
+ "crypto/ecdh/ech_kdf.c",
+ "crypto/o_str.c",
+ "crypto/conf/conf_api.c",
+ "crypto/conf/conf_err.c",
+ "crypto/conf/conf_def.c",
+ "crypto/conf/conf_lib.c",
+ "crypto/conf/conf_mall.c",
+ "crypto/conf/conf_sap.c",
+ "crypto/conf/conf_mod.c",
+ "crypto/ebcdic.c",
+ "crypto/ecdsa/ecs_lib.c",
+ "crypto/ecdsa/ecs_asn1.c",
+ "crypto/ecdsa/ecs_ossl.c",
+ "crypto/ecdsa/ecs_vrf.c",
+ "crypto/ecdsa/ecs_sign.c",
+ "crypto/ecdsa/ecs_err.c",
+ "crypto/dso/dso_win32.c",
+ "crypto/dso/dso_lib.c",
+ "crypto/dso/dso_dlfcn.c",
+ "crypto/dso/dso_dl.c",
+ "crypto/dso/dso_beos.c",
+ "crypto/dso/dso_null.c",
+ "crypto/dso/dso_vms.c",
+ "crypto/dso/dso_err.c",
+ "crypto/dso/dso_openssl.c",
+ "crypto/cryptlib.c",
+ "crypto/md5/md5_one.c",
+ "crypto/md5/md5_dgst.c",
+ "crypto/pkcs7/pkcs7err.c",
+ "crypto/pkcs7/pk7_smime.c",
+ "crypto/pkcs7/bio_pk7.c",
+ "crypto/pkcs7/pk7_mime.c",
+ "crypto/pkcs7/pk7_lib.c",
+ "crypto/pkcs7/pk7_asn1.c",
+ "crypto/pkcs7/pk7_doit.c",
+ "crypto/pkcs7/pk7_attr.c",
+ "crypto/md4/md4_one.c",
+ "crypto/md4/md4_dgst.c",
+ "crypto/o_dir.c",
+ "crypto/buffer/buf_err.c",
+ "crypto/buffer/buf_str.c",
+ "crypto/buffer/buffer.c",
+ "crypto/cms/cms_lib.c",
+ "crypto/cms/cms_io.c",
+ "crypto/cms/cms_err.c",
+ "crypto/cms/cms_dd.c",
+ "crypto/cms/cms_smime.c",
+ "crypto/cms/cms_att.c",
+ "crypto/cms/cms_pwri.c",
+ "crypto/cms/cms_cd.c",
+ "crypto/cms/cms_sd.c",
+ "crypto/cms/cms_asn1.c",
+ "crypto/cms/cms_env.c",
+ "crypto/cms/cms_enc.c",
+ "crypto/cms/cms_ess.c",
+ "crypto/cms/cms_kari.c",
+ "crypto/mem_dbg.c",
+ "crypto/uid.c",
+ "crypto/stack/stack.c",
+ "crypto/ec/ec_ameth.c",
+ "crypto/ec/ec_err.c",
+ "crypto/ec/ec_lib.c",
+ "crypto/ec/ec_curve.c",
+ "crypto/ec/ec_oct.c",
+ "crypto/ec/ec_asn1.c",
+ "crypto/ec/ecp_oct.c",
+ "crypto/ec/ec_print.c",
+ "crypto/ec/ec2_smpl.c",
+ "crypto/ec/ecp_nistp224.c",
+ "crypto/ec/ec2_oct.c",
+ "crypto/ec/eck_prn.c",
+ "crypto/ec/ec_key.c",
+ "crypto/ec/ecp_nist.c",
+ "crypto/ec/ec_check.c",
+ "crypto/ec/ecp_smpl.c",
+ "crypto/ec/ec2_mult.c",
+ "crypto/ec/ecp_mont.c",
+ "crypto/ec/ecp_nistp521.c",
+ "crypto/ec/ec_mult.c",
+ "crypto/ec/ecp_nistputil.c",
+ "crypto/ec/ec_pmeth.c",
+ "crypto/ec/ec_cvt.c",
+ "crypto/ec/ecp_nistp256.c",
+ "crypto/krb5/krb5_asn.c",
+ "crypto/hmac/hmac.c",
+ "crypto/hmac/hm_ameth.c",
+ "crypto/hmac/hm_pmeth.c",
+ "crypto/comp/c_rle.c",
+ "crypto/comp/c_zlib.c",
+ "crypto/comp/comp_lib.c",
+ "crypto/comp/comp_err.c",
+ "crypto/des/fcrypt.c",
+ "crypto/des/str2key.c",
+ "crypto/des/cbc_cksm.c",
+ "crypto/des/des_enc.c",
+ "crypto/des/ofb_enc.c",
+ "crypto/des/read2pwd.c",
+ "crypto/des/ecb3_enc.c",
+ "crypto/des/rand_key.c",
+ "crypto/des/cfb64ede.c",
+ "crypto/des/rpc_enc.c",
+ "crypto/des/ofb64ede.c",
+ "crypto/des/qud_cksm.c",
+ "crypto/des/enc_writ.c",
+ "crypto/des/set_key.c",
+ "crypto/des/xcbc_enc.c",
+ "crypto/des/fcrypt_b.c",
+ "crypto/des/ede_cbcm_enc.c",
+ "crypto/des/des_old2.c",
+ "crypto/des/cfb_enc.c",
+ "crypto/des/ecb_enc.c",
+ "crypto/des/enc_read.c",
+ "crypto/des/des_old.c",
+ "crypto/des/ofb64enc.c",
+ "crypto/des/pcbc_enc.c",
+ "crypto/des/cbc_enc.c",
+ "crypto/des/cfb64enc.c",
+ "crypto/lhash/lh_stats.c",
+ "crypto/lhash/lhash.c",
+ "crypto/x509v3/v3_genn.c",
+ "crypto/x509v3/pcy_cache.c",
+ "crypto/x509v3/v3_sxnet.c",
+ "crypto/x509v3/v3_scts.c",
+ "crypto/x509v3/v3err.c",
+ "crypto/x509v3/v3_conf.c",
+ "crypto/x509v3/v3_utl.c",
+ "crypto/x509v3/v3_akeya.c",
+ "crypto/x509v3/v3_lib.c",
+ "crypto/x509v3/pcy_lib.c",
+ "crypto/x509v3/v3_cpols.c",
+ "crypto/x509v3/v3_ia5.c",
+ "crypto/x509v3/v3_bitst.c",
+ "crypto/x509v3/v3_skey.c",
+ "crypto/x509v3/v3_info.c",
+ "crypto/x509v3/v3_asid.c",
+ "crypto/x509v3/pcy_tree.c",
+ "crypto/x509v3/v3_pcons.c",
+ "crypto/x509v3/v3_bcons.c",
+ "crypto/x509v3/v3_pku.c",
+ "crypto/x509v3/v3_ocsp.c",
+ "crypto/x509v3/pcy_map.c",
+ "crypto/x509v3/v3_ncons.c",
+ "crypto/x509v3/v3_purp.c",
+ "crypto/x509v3/v3_enum.c",
+ "crypto/x509v3/v3_pmaps.c",
+ "crypto/x509v3/pcy_node.c",
+ "crypto/x509v3/v3_pcia.c",
+ "crypto/x509v3/v3_crld.c",
+ "crypto/x509v3/v3_pci.c",
+ "crypto/x509v3/v3_akey.c",
+ "crypto/x509v3/v3_addr.c",
+ "crypto/x509v3/v3_int.c",
+ "crypto/x509v3/v3_alt.c",
+ "crypto/x509v3/v3_extku.c",
+ "crypto/x509v3/v3_prn.c",
+ "crypto/x509v3/pcy_data.c",
+ "crypto/aes/aes_ofb.c",
+ "crypto/aes/aes_ctr.c",
+ "crypto/aes/aes_ecb.c",
+ "crypto/aes/aes_cfb.c",
+ "crypto/aes/aes_wrap.c",
+ "crypto/aes/aes_ige.c",
+ "crypto/aes/aes_misc.c",
+ "crypto/pqueue/pqueue.c",
+ "crypto/sha/sha_one.c",
+ "crypto/sha/sha_dgst.c",
+ "crypto/sha/sha512.c",
+ "crypto/sha/sha1_one.c",
+ "crypto/sha/sha1dgst.c",
+ "crypto/sha/sha256.c",
+ "crypto/whrlpool/wp_dgst.c",
+ "crypto/objects/obj_xref.c",
+ "crypto/objects/o_names.c",
+ "crypto/objects/obj_err.c",
+ "crypto/objects/obj_dat.c",
+ "crypto/objects/obj_lib.c",
+ "crypto/mem.c",
+ "crypto/fips_ers.c",
+ "crypto/o_fips.c",
+ "crypto/engine/eng_rdrand.c",
+ "crypto/engine/eng_err.c",
+ "crypto/engine/tb_ecdsa.c",
+ "crypto/engine/tb_rsa.c",
+ "crypto/engine/tb_cipher.c",
+ "crypto/engine/tb_dsa.c",
+ "crypto/engine/eng_lib.c",
+ "crypto/engine/tb_asnmth.c",
+ "crypto/engine/tb_ecdh.c",
+ "crypto/engine/tb_dh.c",
+ "crypto/engine/tb_store.c",
+ "crypto/engine/eng_init.c",
+ "crypto/engine/eng_cnf.c",
+ "crypto/engine/eng_all.c",
+ "crypto/engine/tb_digest.c",
+ "crypto/engine/tb_pkmeth.c",
+ "crypto/engine/eng_table.c",
+ "crypto/engine/eng_ctrl.c",
+ "crypto/engine/eng_list.c",
+ "crypto/engine/eng_cryptodev.c",
+ "crypto/engine/eng_pkey.c",
+ "crypto/engine/tb_rand.c",
+ "crypto/engine/eng_openssl.c",
+ "crypto/engine/eng_fat.c",
+ "crypto/engine/eng_dyn.c",
+ "crypto/ts/ts_rsp_verify.c",
+ "crypto/ts/ts_req_print.c",
+ "crypto/ts/ts_verify_ctx.c",
+ "crypto/ts/ts_req_utils.c",
+ "crypto/ts/ts_err.c",
+ "crypto/ts/ts_rsp_print.c",
+ "crypto/ts/ts_rsp_utils.c",
+ "crypto/ts/ts_lib.c",
+ "crypto/ts/ts_conf.c",
+ "crypto/ts/ts_asn1.c",
+ "crypto/ts/ts_rsp_sign.c",
+ "crypto/ocsp/ocsp_ext.c",
+ "crypto/ocsp/ocsp_cl.c",
+ "crypto/ocsp/ocsp_ht.c",
+ "crypto/ocsp/ocsp_lib.c",
+ "crypto/ocsp/ocsp_srv.c",
+ "crypto/ocsp/ocsp_vfy.c",
+ "crypto/ocsp/ocsp_err.c",
+ "crypto/ocsp/ocsp_prn.c",
+ "crypto/ocsp/ocsp_asn.c",
+ "crypto/bf/bf_cfb64.c",
+ "crypto/bf/bf_ecb.c",
+ "crypto/bf/bf_enc.c",
+ "crypto/bf/bf_skey.c",
+ "crypto/bf/bf_ofb64.c",
+ "crypto/idea/i_skey.c",
+ "crypto/idea/i_ofb64.c",
+ "crypto/idea/i_cbc.c",
+ "crypto/idea/i_ecb.c",
+ "crypto/idea/i_cfb64.c",
+ "crypto/cmac/cm_ameth.c",
+ "crypto/cmac/cmac.c",
+ "crypto/cmac/cm_pmeth.c",
+ "crypto/dh/dh_lib.c",
+ "crypto/dh/dh_key.c",
+ "crypto/dh/dh_asn1.c",
+ "crypto/dh/dh_depr.c",
+ "crypto/dh/dh_pmeth.c",
+ "crypto/dh/dh_prn.c",
+ "crypto/dh/dh_gen.c",
+ "crypto/dh/dh_ameth.c",
+ "crypto/dh/dh_check.c",
+ "crypto/dh/dh_err.c",
+ "crypto/dh/dh_kdf.c",
+ "crypto/dh/dh_rfc5114.c",
+ "crypto/modes/ccm128.c",
+ "crypto/modes/ofb128.c",
+ "crypto/modes/cts128.c",
+ "crypto/modes/ctr128.c",
+ "crypto/modes/gcm128.c",
+ "crypto/modes/cbc128.c",
+ "crypto/modes/cfb128.c",
+ "crypto/modes/xts128.c",
+ "crypto/modes/wrap128.c",
+ "crypto/camellia/cmll_cfb.c",
+ "crypto/camellia/cmll_ecb.c",
+ "crypto/camellia/cmll_utl.c",
+ "crypto/camellia/cmll_misc.c",
+ "crypto/camellia/cmll_ofb.c",
+ "crypto/camellia/cmll_ctr.c",
+ "crypto/seed/seed_ecb.c",
+ "crypto/seed/seed_cbc.c",
+ "crypto/seed/seed.c",
+ "crypto/seed/seed_ofb.c",
+ "crypto/seed/seed_cfb.c",
+ "crypto/txt_db/txt_db.c",
+ "crypto/cpt_err.c",
+ "crypto/pem/pem_pk8.c",
+ "crypto/pem/pem_lib.c",
+ "crypto/pem/pem_sign.c",
+ "crypto/pem/pem_all.c",
+ "crypto/pem/pem_info.c",
+ "crypto/pem/pem_pkey.c",
+ "crypto/pem/pem_seal.c",
+ "crypto/pem/pem_err.c",
+ "crypto/pem/pem_xaux.c",
+ "crypto/pem/pvkfmt.c",
+ "crypto/pem/pem_x509.c",
+ "crypto/pem/pem_oth.c",
+ "crypto/rand/rand_lib.c",
+ "crypto/rand/randfile.c",
+ "crypto/rand/rand_os2.c",
+ "crypto/rand/rand_unix.c",
+ "crypto/rand/rand_nw.c",
+ "crypto/rand/md_rand.c",
+ "crypto/rand/rand_err.c",
+ "crypto/rand/rand_win.c",
+ "crypto/rand/rand_egd.c",
+ "crypto/cversion.c",
+ "crypto/cast/c_ecb.c",
+ "crypto/cast/c_skey.c",
+ "crypto/cast/c_ofb64.c",
+ "crypto/cast/c_enc.c",
+ "crypto/cast/c_cfb64.c",
+ "crypto/o_time.c",
+ "crypto/mdc2/mdc2dgst.c",
+ "crypto/mdc2/mdc2_one.c",
+ "crypto/rc4/rc4_utl.c",
+ "crypto/ui/ui_compat.c",
+ "crypto/ui/ui_util.c",
+ "crypto/ui/ui_lib.c",
+ "crypto/ui/ui_err.c",
+ "crypto/ui/ui_openssl.c",
+ "crypto/bio/bf_buff.c",
+ "crypto/bio/bss_null.c",
+ "crypto/bio/bss_acpt.c",
+ "crypto/bio/bss_conn.c",
+ "crypto/bio/bss_fd.c",
+ "crypto/bio/bf_null.c",
+ "crypto/bio/bio_err.c",
+ "crypto/bio/bss_sock.c",
+ "crypto/bio/bss_mem.c",
+ "crypto/bio/b_dump.c",
+ "crypto/bio/b_print.c",
+ "crypto/bio/b_sock.c",
+ "crypto/bio/bss_dgram.c",
+ "crypto/bio/bf_nbio.c",
+ "crypto/bio/bio_lib.c",
+ "crypto/bio/bss_file.c",
+ "crypto/bio/bss_bio.c",
+ "crypto/bio/bss_log.c",
+ "crypto/bio/bio_cb.c",
+ "crypto/o_init.c",
+ "crypto/rc2/rc2_skey.c",
+ "crypto/rc2/rc2_cbc.c",
+ "crypto/rc2/rc2cfb64.c",
+ "crypto/rc2/rc2_ecb.c",
+ "crypto/rc2/rc2ofb64.c",
+ "crypto/bn/bn_x931p.c",
+ "crypto/bn/bn_blind.c",
+ "crypto/bn/bn_gf2m.c",
+ "crypto/bn/bn_const.c",
+ "crypto/bn/bn_sqr.c",
+ "crypto/bn/bn_nist.c",
+ "crypto/bn/bn_rand.c",
+ "crypto/bn/bn_err.c",
+ "crypto/bn/bn_div.c",
+ "crypto/bn/bn_kron.c",
+ "crypto/bn/bn_ctx.c",
+ "crypto/bn/bn_shift.c",
+ "crypto/bn/bn_mod.c",
+ "crypto/bn/bn_exp2.c",
+ "crypto/bn/bn_word.c",
+ "crypto/bn/bn_add.c",
+ "crypto/bn/bn_exp.c",
+ "crypto/bn/bn_mont.c",
+ "crypto/bn/bn_print.c",
+ "crypto/bn/bn_mul.c",
+ "crypto/bn/bn_prime.c",
+ "crypto/bn/bn_depr.c",
+ "crypto/bn/bn_gcd.c",
+ "crypto/bn/bn_mpi.c",
+ "crypto/bn/bn_sqrt.c",
+ "crypto/bn/bn_recp.c",
+ "crypto/bn/bn_lib.c",
+ "crypto/ripemd/rmd_dgst.c",
+ "crypto/ripemd/rmd_one.c",
+ "crypto/rsa/rsa_x931.c",
+ "crypto/rsa/rsa_depr.c",
+ "crypto/rsa/rsa_saos.c",
+ "crypto/rsa/rsa_crpt.c",
+ "crypto/rsa/rsa_pss.c",
+ "crypto/rsa/rsa_oaep.c",
+ "crypto/rsa/rsa_null.c",
+ "crypto/rsa/rsa_gen.c",
+ "crypto/rsa/rsa_prn.c",
+ "crypto/rsa/rsa_pmeth.c",
+ "crypto/rsa/rsa_asn1.c",
+ "crypto/rsa/rsa_ssl.c",
+ "crypto/rsa/rsa_ameth.c",
+ "crypto/rsa/rsa_pk1.c",
+ "crypto/rsa/rsa_err.c",
+ "crypto/rsa/rsa_lib.c",
+ "crypto/rsa/rsa_none.c",
+ "crypto/rsa/rsa_chk.c",
+ "crypto/rsa/rsa_eay.c",
+ "crypto/rsa/rsa_sign.c",
+ "crypto/srp/srp_lib.c",
+ "crypto/srp/srp_vfy.c",
+ "crypto/err/err.c",
+ "crypto/err/err_prn.c",
+ "crypto/err/err_all.c",
+ "crypto/mem_clr.c",
+ "crypto/rc4/rc4_skey.c",
+ "crypto/rc4/rc4_enc.c",
+ "crypto/camellia/camellia.c",
+ "crypto/camellia/cmll_cbc.c",
+ #"crypto/aes/aes_x86core.c",
+ "crypto/aes/aes_core.c",
+ "crypto/aes/aes_cbc.c",
+ "crypto/whrlpool/wp_block.c",
+ "crypto/bn/bn_asm.c",
+ ]
- if "platform" in env and env["platform"] == "winrt":
- thirdparty_sources += ['winrt.cpp']
+ if "platform" in env and env["platform"] == "winrt":
+ thirdparty_sources += ['winrt.cpp']
- thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
+ thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
- env_openssl.add_source_files(env.modules_sources, thirdparty_sources)
+ env_openssl.add_source_files(env.modules_sources, thirdparty_sources)
- # FIXME: Clone the environment to make a env_openssl and not pollute the modules env
- thirdparty_include_paths = [
- "",
- "crypto",
- "crypto/asn1",
- "crypto/evp",
- "crypto/modes",
- "openssl",
- ]
- env_openssl.Append(CPPPATH = [thirdparty_dir + "/" + dir for dir in thirdparty_include_paths])
+ # FIXME: Clone the environment to make a env_openssl and not pollute the modules env
+ thirdparty_include_paths = [
+ "",
+ "crypto",
+ "crypto/asn1",
+ "crypto/evp",
+ "crypto/modes",
+ "openssl",
+ ]
+ env_openssl.Append(CPPPATH=[thirdparty_dir + "/" + dir for dir in thirdparty_include_paths])
- env_openssl.Append(CPPFLAGS = ["-DOPENSSL_NO_ASM", "-DOPENSSL_THREADS", "-DL_ENDIAN"])
+ env_openssl.Append(CPPFLAGS=["-DOPENSSL_NO_ASM", "-DOPENSSL_THREADS", "-DL_ENDIAN"])
- # Workaround for compilation error with GCC/Clang when -Werror is too greedy (GH-4517)
- import os
- import methods
- if not (os.name=="nt" and os.getenv("VCINSTALLDIR")): # not Windows and not MSVC
- env_openssl.Append(CFLAGS = ["-Wno-error=implicit-function-declaration"])
+ # Workaround for compilation error with GCC/Clang when -Werror is too greedy (GH-4517)
+ import os
+ import methods
+ if not (os.name == "nt" and os.getenv("VCINSTALLDIR")): # not Windows and not MSVC
+ env_openssl.Append(CFLAGS=["-Wno-error=implicit-function-declaration"])
# Module sources
@@ -681,7 +681,7 @@ env_openssl.add_source_files(env.modules_sources, "*.c")
# platform/winrt need to know openssl is available, pass to main env
if "platform" in env and env["platform"] == "winrt":
- env.Append(CPPPATH = [thirdparty_dir])
- env.Append(CPPFLAGS = ['-DOPENSSL_ENABLED']);
+ env.Append(CPPPATH=[thirdparty_dir])
+ env.Append(CPPFLAGS=['-DOPENSSL_ENABLED'])
Export('env')
diff --git a/modules/openssl/config.py b/modules/openssl/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/openssl/config.py
+++ b/modules/openssl/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/opus/SCsub b/modules/opus/SCsub
index 603f5a48c4..e116fc4607 100644
--- a/modules/opus/SCsub
+++ b/modules/opus/SCsub
@@ -6,210 +6,210 @@ Import('env_modules')
env_opus = env_modules.Clone()
# Thirdparty source files
-if (env["opus"] != "system"): # builtin
- thirdparty_dir = "#thirdparty/opus/"
+if (env["opus"] != "system"): # builtin
+ 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")
diff --git a/modules/opus/config.py b/modules/opus/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/opus/config.py
+++ b/modules/opus/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/pbm/config.py b/modules/pbm/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/pbm/config.py
+++ b/modules/pbm/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/pvr/SCsub b/modules/pvr/SCsub
index 4ead52f82f..ddca7a794e 100644
--- a/modules/pvr/SCsub
+++ b/modules/pvr/SCsub
@@ -9,16 +9,16 @@ 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]
env_pvr.add_source_files(env.modules_sources, thirdparty_sources)
-env_pvr.Append(CPPPATH = [thirdparty_dir])
+env_pvr.Append(CPPPATH=[thirdparty_dir])
# Godot source files
env_pvr.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/pvr/config.py b/modules/pvr/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/pvr/config.py
+++ b/modules/pvr/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/regex/config.py b/modules/regex/config.py
index 667b5d8ba6..5347cfd243 100644
--- a/modules/regex/config.py
+++ b/modules/regex/config.py
@@ -1,8 +1,9 @@
#!/usr/bin/env python
+
def can_build(platform):
return True
+
def configure(env):
pass
-
diff --git a/modules/squish/SCsub b/modules/squish/SCsub
index 3fdc587652..462b6a05cf 100644
--- a/modules/squish/SCsub
+++ b/modules/squish/SCsub
@@ -6,24 +6,24 @@ Import('env_modules')
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",
- ]
+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_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")
diff --git a/modules/squish/config.py b/modules/squish/config.py
index d28d9c702e..cc8f098010 100644
--- a/modules/squish/config.py
+++ b/modules/squish/config.py
@@ -1,10 +1,11 @@
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")
diff --git a/modules/theora/SCsub b/modules/theora/SCsub
index 22c618fe8b..ff34b85879 100644
--- a/modules/theora/SCsub
+++ b/modules/theora/SCsub
@@ -6,78 +6,78 @@ Import('env_modules')
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",
- ]
+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_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")
diff --git a/modules/theora/config.py b/modules/theora/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/theora/config.py
+++ b/modules/theora/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/visual_script/config.py b/modules/visual_script/config.py
index ea7e83378a..5698a37295 100644
--- a/modules/visual_script/config.py
+++ b/modules/visual_script/config.py
@@ -1,11 +1,8 @@
def can_build(platform):
- return True
+ return True
def configure(env):
- pass
-
-
-
+ pass
diff --git a/modules/vorbis/SCsub b/modules/vorbis/SCsub
index 3220cb454c..3bd092105e 100644
--- a/modules/vorbis/SCsub
+++ b/modules/vorbis/SCsub
@@ -6,44 +6,44 @@ Import('env_modules')
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",
- ]
+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_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")
diff --git a/modules/vorbis/config.py b/modules/vorbis/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/vorbis/config.py
+++ b/modules/vorbis/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/webm/SCsub b/modules/webm/SCsub
index fbd936a2c3..c4a707b8e0 100644
--- a/modules/webm/SCsub
+++ b/modules/webm/SCsub
@@ -8,27 +8,27 @@ 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]
env_webm.add_source_files(env.modules_sources, thirdparty_libsimplewebm_sources)
-env_webm.Append(CPPPATH = [thirdparty_libsimplewebm_dir, thirdparty_libsimplewebm_dir + "libwebm/"])
+env_webm.Append(CPPPATH=[thirdparty_libsimplewebm_dir, thirdparty_libsimplewebm_dir + "libwebm/"])
# also requires libogg, libvorbis and libopus
-if (env["libogg"] != "system"): # builtin
- env_webm.Append(CPPPATH = ["#thirdparty/libogg"])
-if (env["libvorbis"] != "system"): # builtin
- env_webm.Append(CPPPATH = ["#thirdparty/libvorbis"])
-if (env["opus"] != "system"): # builtin
- env_webm.Append(CPPPATH = ["#thirdparty"])
+if (env["libogg"] != "system"): # builtin
+ env_webm.Append(CPPPATH=["#thirdparty/libogg"])
+if (env["libvorbis"] != "system"): # builtin
+ env_webm.Append(CPPPATH=["#thirdparty/libvorbis"])
+if (env["opus"] != "system"): # builtin
+ env_webm.Append(CPPPATH=["#thirdparty"])
-if (env["libvpx"] != "system"): # builtin
- Export('env_webm')
- SConscript("libvpx/SCsub")
+if (env["libvpx"] != "system"): # builtin
+ Export('env_webm')
+ SConscript("libvpx/SCsub")
# Godot source files
env_webm.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/webm/config.py b/modules/webm/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/webm/config.py
+++ b/modules/webm/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/modules/webm/libvpx/SCsub b/modules/webm/libvpx/SCsub
index 706db97206..a7eca29c05 100644
--- a/modules/webm/libvpx/SCsub
+++ b/modules/webm/libvpx/SCsub
@@ -3,231 +3,231 @@
libvpx_dir = "#thirdparty/libvpx/"
libvpx_sources = [
- "vp8/vp8_dx_iface.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/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/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",
-
-
- "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_mem/vpx_mem.c",
-
-
- "vpx_scale/vpx_scale_rtcd.c",
-
- "vpx_scale/generic/yv12config.c",
- "vpx_scale/generic/yv12extend.c",
-
-
- "vpx_util/vpx_thread.c"
+ "vp8/vp8_dx_iface.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/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/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",
+
+
+ "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_mem/vpx_mem.c",
+
+
+ "vpx_scale/vpx_scale_rtcd.c",
+
+ "vpx_scale/generic/yv12config.c",
+ "vpx_scale/generic/yv12extend.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",
-
-
- "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"
+ "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_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",
-
-
- "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"
+ "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",
+
+
+ "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]
@@ -248,143 +248,143 @@ libvpx_sources_arm_neon_gas_apple = [libvpx_dir + file for file in libvpx_source
Import('env')
Import('env_webm')
-env_webm.Append(CPPPATH = [libvpx_dir])
+env_webm.Append(CPPPATH=[libvpx_dir])
env_libvpx = env.Clone()
-env_libvpx.Append(CPPPATH = [libvpx_dir])
+env_libvpx.Append(CPPPATH=[libvpx_dir])
cpu_bits = env["bits"]
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
-
- yasm_paths = [
- "yasm",
- "../../../yasm",
- ]
-
- 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
-
- if not yasm_found:
- webm_cpu_x86 = False
- print "YASM is necessary for WebM SIMD optimizations."
+ import subprocess
+ import os
+
+ yasm_paths = [
+ "yasm",
+ "../../../yasm",
+ ]
+
+ 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
+
+ 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
-
- 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'
-
- env_libvpx.Append(CCFLAGS=['-DWEBM_X86ASM'])
-
- webm_simd_optimizations = True
+ 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'
+
+ if cpu_bits == '32':
+ env_libvpx["ASCPU"] = 'X86_32'
+ elif cpu_bits == '64':
+ env_libvpx["ASCPU"] = 'X86_64'
+
+ env_libvpx.Append(CCFLAGS=['-DWEBM_X86ASM'])
+
+ 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_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)
+ 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)
+
+ 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)
diff --git a/modules/webm/libvpx/yasm_osx_fat.py b/modules/webm/libvpx/yasm_osx_fat.py
index bcee50b389..0065e2766c 100644
--- a/modules/webm/libvpx/yasm_osx_fat.py
+++ b/modules/webm/libvpx/yasm_osx_fat.py
@@ -3,9 +3,9 @@
import sys
import os
-includes = sys.argv[1]
+includes = sys.argv[1]
output_file = sys.argv[2]
-input_file = sys.argv[3]
+input_file = sys.argv[3]
can_remove = {}
@@ -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)
diff --git a/modules/webp/SCsub b/modules/webp/SCsub
index 38585a1ff2..ab60bfd6b2 100644
--- a/modules/webp/SCsub
+++ b/modules/webp/SCsub
@@ -6,116 +6,116 @@ Import('env_modules')
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]
+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]
- 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")
diff --git a/modules/webp/config.py b/modules/webp/config.py
index 368e97e152..fb920482f5 100644
--- a/modules/webp/config.py
+++ b/modules/webp/config.py
@@ -1,6 +1,7 @@
def can_build(platform):
- return True
+ return True
+
def configure(env):
- pass
+ pass
diff --git a/platform/android/SCsub b/platform/android/SCsub
index 4f9a9709cb..146f7c25a3 100644
--- a/platform/android/SCsub
+++ b/platform/android/SCsub
@@ -6,127 +6,127 @@ 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')
+# env.Depends('#core/math/vector3.h', 'vector3_psp.h')
#obj = env.SharedObject('godot_android.cpp')
env_android = env.Clone()
if env['target'] == "profile":
- env_android.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
+ env_android.Append(CPPFLAGS=['-DPROFILER_ENABLED'])
-android_objects=[]
+android_objects = []
for x in android_files:
- android_objects.append( env_android.SharedObject( x ) )
+ android_objects.append(env_android.SharedObject(x))
prog = None
-abspath=env.Dir(".").abspath
+abspath = env.Dir(".").abspath
-gradle_basein = open(abspath+"/build.gradle.template","rb")
-gradle_baseout = open(abspath+"/java/build.gradle","wb")
+gradle_basein = open(abspath + "/build.gradle.template", "rb")
+gradle_baseout = open(abspath + "/java/build.gradle", "wb")
gradle_text = gradle_basein.read()
-gradle_maven_repos_text=""
+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=""
+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=""
+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=""
+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=""
+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=""
+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_asset_dirs_text = ""
-gradle_default_config_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)
-gradle_text = gradle_text.replace("$$GRADLE_JAVA_DIRS$$",gradle_java_dirs_text)
-gradle_text = gradle_text.replace("$$GRADLE_RES_DIRS$$",gradle_res_dirs_text)
-gradle_text = gradle_text.replace("$$GRADLE_ASSET_DIRS$$",gradle_asset_dirs_text)
-gradle_text = gradle_text.replace("$$GRADLE_AIDL_DIRS$$",gradle_aidl_dirs_text)
-gradle_text = gradle_text.replace("$$GRADLE_JNI_DIRS$$",gradle_jni_dirs_text)
-gradle_text = gradle_text.replace("$$GRADLE_DEFAULT_CONFIG$$",gradle_default_config_text)
+gradle_text = gradle_text.replace("$$GRADLE_REPOSITORY_URLS$$", gradle_maven_repos_text)
+gradle_text = gradle_text.replace("$$GRADLE_DEPENDENCIES$$", gradle_maven_dependencies_text)
+gradle_text = gradle_text.replace("$$GRADLE_JAVA_DIRS$$", gradle_java_dirs_text)
+gradle_text = gradle_text.replace("$$GRADLE_RES_DIRS$$", gradle_res_dirs_text)
+gradle_text = gradle_text.replace("$$GRADLE_ASSET_DIRS$$", gradle_asset_dirs_text)
+gradle_text = gradle_text.replace("$$GRADLE_AIDL_DIRS$$", gradle_aidl_dirs_text)
+gradle_text = gradle_text.replace("$$GRADLE_JNI_DIRS$$", gradle_jni_dirs_text)
+gradle_text = gradle_text.replace("$$GRADLE_DEFAULT_CONFIG$$", gradle_default_config_text)
-gradle_baseout.write( gradle_text )
+gradle_baseout.write(gradle_text)
gradle_baseout.close()
-pp_basein = open(abspath+"/AndroidManifest.xml.template","rb")
-pp_baseout = open(abspath+"/java/AndroidManifest.xml","wb")
+pp_basein = open(abspath + "/AndroidManifest.xml.template", "rb")
+pp_baseout = open(abspath + "/java/AndroidManifest.xml", "wb")
manifest = pp_basein.read()
-manifest = manifest.replace("$$ADD_APPLICATION_CHUNKS$$",env.android_manifest_chunk)
-manifest = manifest.replace("$$ADD_PERMISSION_CHUNKS$$",env.android_permission_chunk)
-manifest = manifest.replace("$$ADD_APPATTRIBUTE_CHUNKS$$",env.android_appattributes_chunk)
-pp_baseout.write( manifest )
+manifest = manifest.replace("$$ADD_APPLICATION_CHUNKS$$", env.android_manifest_chunk)
+manifest = manifest.replace("$$ADD_PERMISSION_CHUNKS$$", env.android_permission_chunk)
+manifest = manifest.replace("$$ADD_APPATTRIBUTE_CHUNKS$$", env.android_appattributes_chunk)
+pp_baseout.write(manifest)
-env_android.SharedLibrary("#bin/libgodot",[android_objects],SHLIBSUFFIX=env["SHLIBSUFFIX"])
+env_android.SharedLibrary("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])
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'
-
- 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"))
+ 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"))
diff --git a/platform/android/detect.py b/platform/android/detect.py
index 842036f986..d52bb57c0f 100644
--- a/platform/android/detect.py
+++ b/platform/android/detect.py
@@ -3,248 +3,251 @@ import sys
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"):
-
- 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 mySpawn(sh, escape, cmd, args, env):
-
- 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 )
-
- return rv
-
- env['SPAWN'] = mySpawn
-
- ndk_platform=env['ndk_platform']
-
- 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['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)
-
- 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
-
- 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"
-
- 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'
-
- 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])
+ # Workaround for MinGW. See:
+ # http://www.scons.org/wiki/LongCmdLinesOnWin32
+ import os
+ if (os.name == "nt"):
+
+ 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 mySpawn(sh, escape, cmd, args, env):
+
+ 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)
+
+ return rv
+
+ env['SPAWN'] = mySpawn
+
+ ndk_platform = env['ndk_platform']
+
+ 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['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)
+
+ 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
+
+ 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"
+
+ 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'
+
+ 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.Append(LDPATH=[ld_path])
- env.Append(LIBS=['OpenSLES'])
+ 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(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"
-
- 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(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'])
-
-
- 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()
+ # 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"])
+
+ 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(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')})
+
+ env.use_windows_spawn_fix()
diff --git a/platform/bb10/SCsub b/platform/bb10/SCsub
index 84fff0828b..c19f46d579 100644
--- a/platform/bb10/SCsub
+++ b/platform/bb10/SCsub
@@ -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
diff --git a/platform/bb10/detect.py b/platform/bb10/detect.py
index 2b76aa3496..95720794b2 100644
--- a/platform/bb10/detect.py
+++ b/platform/bb10/detect.py
@@ -5,85 +5,89 @@ 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
+def configure(env):
- 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'
+ if env['PLATFORM'] == 'win32':
+ env.Tool('mingw')
+ env['SPAWN'] = methods.win32_spawn
- 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['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.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['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['CC'] = '$qnx_prefix-gcc'
- env['CXX'] = '$qnx_prefix-g++'
- env['AR'] = '$qnx_prefix-ar'
- env['RANLIB'] = '$qnx_prefix-ranlib'
+ 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.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['CC'] = '$qnx_prefix-gcc'
+ env['CXX'] = '$qnx_prefix-g++'
+ env['AR'] = '$qnx_prefix-ar'
+ env['RANLIB'] = '$qnx_prefix-ranlib'
- #env.Append(LINKFLAGS = string.split()
+ 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'])
- if (env["target"]=="release"):
+ # env.Append(LINKFLAGS = string.split()
- env.Append(CCFLAGS=['-O3','-DRELEASE_BUILD'])
+ if (env["target"] == "release"):
- elif (env["target"]=="debug"):
+ env.Append(CCFLAGS=['-O3', '-DRELEASE_BUILD'])
- env.Append(CCFLAGS=['-g', '-O0','-DDEBUG_ENABLED', '-D_DEBUG'])
- env.Append(LINKFLAGS=['-g'])
+ elif (env["target"] == "debug"):
- env.Append(LIBS=['bps', 'pps', 'screen', 'socket', 'EGL', 'GLESv2', 'GLESv1_CM', 'm', 'asound'])
+ 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'])
diff --git a/platform/haiku/SCsub b/platform/haiku/SCsub
index b5a584baa4..d0c244a194 100644
--- a/platform/haiku/SCsub
+++ b/platform/haiku/SCsub
@@ -3,25 +3,26 @@
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')
+
+def addResourcesAction(target=None, source=None, env=None):
+ return env.Execute('xres -o ' + File(target)[0].path + ' bin/godot.rsrc')
env.AddPostAction(target, addResourcesAction)
env.Depends(target, command)
diff --git a/platform/haiku/detect.py b/platform/haiku/detect.py
index af997a5737..71202a9a49 100644
--- a/platform/haiku/detect.py
+++ b/platform/haiku/detect.py
@@ -1,61 +1,67 @@
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
-
- if (env["bits"]=="default"):
- if (is64):
- env["bits"]="64"
- else:
- env["bits"]="32"
-
- env.Append(CPPPATH = ['#platform/haiku'])
-
- 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'])
-
- #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')})
+ is64 = sys.maxsize > 2**32
+
+ if (env["bits"] == "default"):
+ if (is64):
+ env["bits"] = "64"
+ else:
+ env["bits"] = "32"
+
+ env.Append(CPPPATH=['#platform/haiku'])
+
+ 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'])
+
+ # 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')})
diff --git a/platform/iphone/SCsub b/platform/iphone/SCsub
index 236630bef4..38f789259c 100644
--- a/platform/iphone/SCsub
+++ b/platform/iphone/SCsub
@@ -4,33 +4,33 @@ 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')
+# env.Depends('#core/math/vector3.h', 'vector3_psp.h')
#iphone_lib = env.Library('iphone', iphone_lib)
-env_ios = env.Clone();
+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":
+# if env['ios_appirater'] == "yes":
# env_ios.Append(CPPFLAGS=['-DAPPIRATER_ENABLED'])
@@ -38,5 +38,5 @@ obj = env_ios.Object('godot_iphone.cpp')
prog = None
prog = env_ios.Program('#bin/godot', [obj] + iphone_lib)
-action = "$IPHONEPATH/usr/bin/dsymutil "+File(prog)[0].path+" -o " + File(prog)[0].path + ".dSYM"
+action = "$IPHONEPATH/usr/bin/dsymutil " + File(prog)[0].path + " -o " + File(prog)[0].path + ".dSYM"
env.AddPostAction(prog, action)
diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py
index 1be63891b1..229038697c 100644
--- a/platform/iphone/detect.py
+++ b/platform/iphone/detect.py
@@ -3,187 +3,190 @@ 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
- ]
+def get_flags():
+ return [
+ ('tools', 'no'),
+ ('webp', 'yes'),
+ ('builtin_zlib', 'yes'),
+ ('openssl', 'builtin'), # use builtin openssl
+ ]
def configure(env):
- env.Append(CPPPATH=['#platform/iphone'])
-
- 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'
-
- 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['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['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'])
-
- if (env["target"]=="release"):
-
- 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"]=="debug"):
-
- env.Append(CCFLAGS=['-D_DEBUG', '-DDEBUG=1', '-gdwarf-2', '-Wall', '-O0', '-DDEBUG_ENABLED'])
- env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
-
- elif (env["target"]=="profile"):
-
- 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'])
-
- # 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'
-
- 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(CPPPATH=['#platform/iphone'])
+
+ 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'
+
+ 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['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['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'])
+
+ if (env["target"] == "release"):
+
+ 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"] == "debug"):
+
+ env.Append(CCFLAGS=['-D_DEBUG', '-DDEBUG=1', '-gdwarf-2', '-Wall', '-O0', '-DDEBUG_ENABLED'])
+ env.Append(CPPFLAGS=['-DDEBUG_MEMORY_ENABLED'])
+
+ elif (env["target"] == "profile"):
+
+ 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'])
+
+ # 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'
+
+ 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')})
diff --git a/platform/javascript/SCsub b/platform/javascript/SCsub
index 59e5aa175d..5d5cd1590a 100644
--- a/platform/javascript/SCsub
+++ b/platform/javascript/SCsub
@@ -3,35 +3,35 @@
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=[]
+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"'])
+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"'])
-build = env.Program('#bin/godot',javascript_objects,PROGSUFFIX=env["PROGSUFFIX"]+".html")
+build = env.Program('#bin/godot', javascript_objects, PROGSUFFIX=env["PROGSUFFIX"] + ".html")
def make_html_shell(target, source, env):
- html_path = target[0].rstr()
- assert html_path[:4] == 'bin/'
- assert html_path[-5:] == '.html'
- basename = html_path[4:-5]
- with open(html_path, 'r+') as html_file:
- fixed_html = html_file.read().replace('.html.mem', '.mem').replace(basename, '$GODOT_BASE')
- html_file.seek(0)
- html_file.truncate()
- html_file.write(fixed_html)
+ html_path = target[0].rstr()
+ assert html_path[:4] == 'bin/'
+ assert html_path[-5:] == '.html'
+ basename = html_path[4:-5]
+ with open(html_path, 'r+') as html_file:
+ fixed_html = html_file.read().replace('.html.mem', '.mem').replace(basename, '$GODOT_BASE')
+ html_file.seek(0)
+ html_file.truncate()
+ html_file.write(fixed_html)
env.AddPostAction(build, Action(make_html_shell, "Creating HTML shell file"))
diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py
index b6a6a453b3..ec99392987 100644
--- a/platform/javascript/detect.py
+++ b/platform/javascript/detect.py
@@ -2,104 +2,108 @@ import os
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'),
- ]
+def get_flags():
+ 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'])
-
- # 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'])
+ 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"
+
+ 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') } )
diff --git a/platform/osx/SCsub b/platform/osx/SCsub
index 217dee81eb..c8e0e17612 100644
--- a/platform/osx/SCsub
+++ b/platform/osx/SCsub
@@ -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)
+env.Program('#bin/godot', files)
diff --git a/platform/osx/detect.py b/platform/osx/detect.py
index 4e772e37eb..9191f1aabc 100644
--- a/platform/osx/detect.py
+++ b/platform/osx/detect.py
@@ -4,99 +4,97 @@ 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 [
- ]
+def get_flags():
+ return [
+ ]
def configure(env):
- env.Append(CPPPATH=['#platform/osx'])
-
- if (env["bits"]=="default"):
- env["bits"]="32"
-
- if (env["target"]=="release"):
-
- env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer','-ftree-vectorize','-msse2'])
-
- elif (env["target"]=="release_debug"):
+ env.Append(CPPPATH=['#platform/osx'])
- env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
+ if (env["bits"] == "default"):
+ env["bits"] = "32"
- elif (env["target"]=="debug"):
+ if (env["target"] == "release"):
- env.Append(CCFLAGS=['-g3', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
+ env.Append(CCFLAGS=['-O2', '-ffast-math', '-fomit-frame-pointer', '-ftree-vectorize', '-msse2'])
+ elif (env["target"] == "release_debug"):
+ env.Append(CCFLAGS=['-O2', '-DDEBUG_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"]+"-"
+ elif (env["target"] == "debug"):
+ env.Append(CCFLAGS=['-g3', '-Wall', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
- env['CC'] = basecmd+"cc"
- env['CXX'] = basecmd+"c++"
- env['AR'] = basecmd+"ar"
- env['RANLIB'] = basecmd+"ranlib"
- env['AS'] = basecmd+"as"
+ 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.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
diff --git a/platform/server/SCsub b/platform/server/SCsub
index 12758c5db0..30195bb908 100644
--- a/platform/server/SCsub
+++ b/platform/server/SCsub
@@ -3,8 +3,8 @@
Import('env')
-common_server=[\
- "os_server.cpp",\
+common_server = [\
+ "os_server.cpp",\
]
-env.Program('#bin/godot_server',['godot_server.cpp']+common_server)
+env.Program('#bin/godot_server', ['godot_server.cpp'] + common_server)
diff --git a/platform/server/detect.py b/platform/server/detect.py
index ce14100fd0..b367e1f2c3 100644
--- a/platform/server/detect.py
+++ b/platform/server/detect.py
@@ -4,73 +4,72 @@ 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 [
- ]
+def get_flags():
+ return [
+ ]
def configure(env):
- env.Append(CPPPATH=['#platform/server'])
- if (env["use_llvm"]=="yes"):
- env["CC"]="clang"
- env["CXX"]="clang++"
- env["LD"]="clang++"
-
- is64=sys.maxsize > 2**32
-
- if (env["bits"]=="default"):
- if (is64):
- env["bits"]="64"
- else:
- env["bits"]="32"
-
+ env.Append(CPPPATH=['#platform/server'])
+ if (env["use_llvm"] == "yes"):
+ env["CC"] = "clang"
+ env["CXX"] = "clang++"
+ env["LD"] = "clang++"
- #if (env["tools"]=="no"):
- # #no tools suffix
- # env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
- # env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
+ is64 = sys.maxsize > 2**32
+ if (env["bits"] == "default"):
+ if (is64):
+ env["bits"] = "64"
+ else:
+ env["bits"] = "32"
- if (env["target"]=="release"):
+ # if (env["tools"]=="no"):
+ # #no tools suffix
+ # env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
+ # env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
- env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer'])
+ if (env["target"] == "release"):
- elif (env["target"]=="release_debug"):
+ env.Append(CCFLAGS=['-O2', '-ffast-math', '-fomit-frame-pointer'])
- env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED'])
+ elif (env["target"] == "release_debug"):
- elif (env["target"]=="debug"):
+ env.Append(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
- env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
+ elif (env["target"] == "debug"):
- env.Append(CPPFLAGS=['-DSERVER_ENABLED','-DUNIX_ENABLED'])
- env.Append(LIBS=['pthread','z']) #TODO detect linux/BSD!
+ env.Append(CCFLAGS=['-g2', '-Wall', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED'])
- if (env["CXX"]=="clang++"):
- env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND'])
- env["CC"]="clang"
- env["LD"]="clang++"
+ 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++"
diff --git a/platform/windows/SCsub b/platform/windows/SCsub
index e53eb7af34..32c23b906a 100644
--- a/platform/windows/SCsub
+++ b/platform/windows/SCsub
@@ -3,27 +3,27 @@
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",
+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",
]
-restarget="godot_res"+env["OBJSUFFIX"]
+restarget = "godot_res" + env["OBJSUFFIX"]
-obj = env.RES(restarget,'godot_res.rc')
+obj = env.RES(restarget, 'godot_res.rc')
common_win.append(obj)
-env.Program('#bin/godot',['godot_win.cpp']+common_win,PROGSUFFIX=env["PROGSUFFIX"])
+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)]
+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)]
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 7ae0100762..0576b0bfa9 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -85,7 +85,7 @@
#####
# TODO :
-#
+#
# - finish to cleanup this script to remove all the remains of previous hacks and workarounds
# - make it work with the Windows7 SDK that is supposed to enable 64bits compilation for MSVC2010-Express
# - confirm it works well with other Visual Studio versions.
@@ -99,300 +99,297 @@ import sys
import methods
-def is_active():
- return True
-
-def get_name():
- 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")
-
- 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
-
- if (os.name=="posix"):
-
- 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")
-
- 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
-
-def get_opts():
-
- 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.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),
- ]
-
-def get_flags():
-
- 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
-
-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'])
-
-
- if (env["target"]=="release"):
-
- env.Append(CCFLAGS=['/O2'])
- env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
- env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
-
- elif (env["target"]=="release_debug"):
-
- 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'])
-
- 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=['/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(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=""
-
- 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'])
-
- # 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
-
- 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
-
- else:
-
- # 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
-
- mingw_prefix=""
-
- 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"];
-
- nulstr=""
+def is_active():
+ return True
- if (os.name=="posix"):
- nulstr=">/dev/null"
- else:
- nulstr=">nul"
+def get_name():
+ return "Windows"
- # 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)
+def can_build():
- if (env["target"]=="release"):
+ 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")
- env.Append(CCFLAGS=['-msse2'])
+ 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.")
- if (env["bits"]=="64"):
- env.Append(CCFLAGS=['-O3'])
- else:
- env.Append(CCFLAGS=['-O2'])
+ return True
- env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
+ if (os.name == "posix"):
- elif (env["target"]=="release_debug"):
+ mingw = "i586-mingw32msvc-"
+ mingw64 = "x86_64-w64-mingw32-"
+ mingw32 = "i686-w64-mingw32-"
- env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED'])
+ if (os.getenv("MINGW32_PREFIX")):
+ mingw32 = os.getenv("MINGW32_PREFIX")
+ mingw = mingw32
+ if (os.getenv("MINGW64_PREFIX")):
+ mingw64 = os.getenv("MINGW64_PREFIX")
- elif (env["target"]=="debug"):
+ 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
- env.Append(CCFLAGS=['-g', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED'])
+ return False
+def get_opts():
- 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
+ mingw = ""
+ mingw32 = ""
+ mingw64 = ""
+ if (os.name == "posix"):
+ mingw = "i586-mingw32msvc-"
+ mingw32 = "i686-w64-mingw32-"
+ mingw64 = "x86_64-w64-mingw32-"
- #env['CC'] = "winegcc"
- #env['CXX'] = "wineg++"
+ if os.system(mingw32 + "gcc --version &>/dev/null") != 0:
+ mingw32 = mingw
- 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 (os.getenv("MINGW32_PREFIX")):
+ mingw32 = os.getenv("MINGW32_PREFIX")
+ mingw = mingw32
+ if (os.getenv("MINGW64_PREFIX")):
+ mingw64 = os.getenv("MINGW64_PREFIX")
- # if (env["bits"]=="32"):
- # env.Append(LIBS=['gcc_s'])
- # #--with-arch=i686
- # env.Append(CPPFLAGS=['-march=i686'])
- # env.Append(LINKFLAGS=['-march=i686'])
+ 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
+ ]
+
+
+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
- #'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') } )
+def configure(env):
- 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(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"):
+
+ env.Append(CCFLAGS=['/O2'])
+ env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
+ env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
+
+ elif (env["target"] == "release_debug"):
+
+ 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'])
+
+ 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=['/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(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 = ""
+
+ 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'])
+
+ # 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
+
+ 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
+
+ else:
+
+ # 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
+
+ mingw_prefix = ""
+
+ 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"]
+
+ nulstr = ""
+
+ 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 (env["target"] == "release"):
+
+ env.Append(CCFLAGS=['-msse2'])
+
+ if (env["bits"] == "64"):
+ env.Append(CCFLAGS=['-O3'])
+ else:
+ env.Append(CCFLAGS=['-O2'])
+
+ env.Append(LINKFLAGS=['-Wl,--subsystem,windows'])
+
+ elif (env["target"] == "release_debug"):
+
+ env.Append(CCFLAGS=['-O2', '-DDEBUG_ENABLED'])
+
+ elif (env["target"] == "debug"):
+
+ 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'] = "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'])
+
+ # 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'])
+
+ # 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')})
diff --git a/platform/winrt/SCsub b/platform/winrt/SCsub
index 91a179084d..5259e7dc22 100644
--- a/platform/winrt/SCsub
+++ b/platform/winrt/SCsub
@@ -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])
diff --git a/platform/winrt/detect.py b/platform/winrt/detect.py
index a7bc62f685..2156e593e8 100644
--- a/platform/winrt/detect.py
+++ b/platform/winrt/detect.py
@@ -6,161 +6,163 @@ 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()
-
- 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="
+ 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 os.path.isfile(str(os.getenv("ANGLE_SRC_PATH")) + "/winrt/10/src/angle.sln"):
- env["build_angle"] = True
+ arch = ""
+ env['ENV'] = os.environ
- if os.getenv('Platform') == "ARM":
+ # 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="
- print "Compiled program architecture will be an ARM executable. (forcing bits=32)."
+ if os.path.isfile(str(os.getenv("ANGLE_SRC_PATH")) + "/winrt/10/src/angle.sln"):
+ env["build_angle"] = True
- arch="arm"
- env["bits"]="32"
- env.Append(LINKFLAGS=['/MACHINE:ARM'])
- env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/arm'])
+ if os.getenv('Platform') == "ARM":
- angle_build_cmd += "ARM"
+ print "Compiled program architecture will be an ARM executable. (forcing bits=32)."
- env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_ARM/lib'])
+ arch = "arm"
+ env["bits"] = "32"
+ env.Append(LINKFLAGS=['/MACHINE:ARM'])
+ env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/arm'])
- else:
+ angle_build_cmd += "ARM"
- compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
+ env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_ARM/lib'])
- 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"
+ else:
- if (env["bits"] == "32"):
- arch = "x86"
+ compiler_version_str = methods.detect_visual_c_compiler_version(env['ENV'])
- angle_build_cmd += "Win32"
+ 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"
- 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'])
+ if (env["bits"] == "32"):
+ arch = "x86"
- else:
- arch = "x64"
+ angle_build_cmd += "Win32"
- angle_build_cmd += "x64"
+ 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(LINKFLAGS=['/MACHINE:X64'])
- env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/amd64'])
- env.Append(LIBPATH=[angle_root + '/winrt/10/src/Release_x64/lib'])
+ else:
+ arch = "x64"
- 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'])
+ angle_build_cmd += "x64"
- env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/references'])
+ 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'])
- if (env["target"]=="release"):
+ 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(CPPFLAGS=['/O2', '/GL'])
- env.Append(CPPFLAGS=['/MD'])
- env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS', '/LTCG'])
+ env.Append(LIBPATH=[os.environ['VCINSTALLDIR'] + 'lib/store/references'])
- elif (env["target"]=="release_debug"):
+ if (env["target"] == "release"):
- env.Append(CCFLAGS=['/O2','/Zi','/DDEBUG_ENABLED'])
- env.Append(CPPFLAGS=['/MD'])
- env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
+ env.Append(CPPFLAGS=['/O2', '/GL'])
+ env.Append(CPPFLAGS=['/MD'])
+ env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS', '/LTCG'])
- elif (env["target"]=="debug"):
+ elif (env["target"] == "release_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=['/O2', '/Zi', '/DDEBUG_ENABLED'])
+ env.Append(CPPFLAGS=['/MD'])
+ env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
+ elif (env["target"] == "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=['/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["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')})
diff --git a/platform/x11/SCsub b/platform/x11/SCsub
index e20bd44f8d..0defd4f025 100644
--- a/platform/x11/SCsub
+++ b/platform/x11/SCsub
@@ -3,11 +3,11 @@
Import('env')
-common_x11=[\
- "context_gl_x11.cpp",\
- "os_x11.cpp",\
- "key_mapping_x11.cpp",\
- "joystick_linux.cpp",\
+common_x11 = [\
+ "context_gl_x11.cpp",\
+ "os_x11.cpp",\
+ "key_mapping_x11.cpp",\
+ "joystick_linux.cpp",\
]
-env.Program('#bin/godot',['godot_x11.cpp']+common_x11)
+env.Program('#bin/godot', ['godot_x11.cpp'] + common_x11)
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index e90af2c697..935a9fcc26 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -5,236 +5,232 @@ 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'),
- ]
+def get_flags():
+ return [
+ ("openssl", "system"),
+ ('freetype', 'system'),
+ ('libpng', 'system'),
+ ]
def configure(env):
- is64=sys.maxsize > 2**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"
-
- 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["tools"]=="no"):
- # #no tools suffix
- # env['OBJSUFFIX'] = ".nt"+env['OBJSUFFIX']
- # env['LIBSUFFIX'] = ".nt"+env['LIBSUFFIX']
-
-
- 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'])
- if (env["debug_release"]=="yes"):
- env.Append(CCFLAGS=['-g2'])
-
- elif (env["target"]=="debug"):
-
- 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')
-
- if (env["openssl"] == "system"):
- env.ParseConfig('pkg-config openssl --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["libpng"] == "system"):
- env.ParseConfig('pkg-config libpng --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')
-
- # 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["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["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')
-
-
- env.Append(CPPFLAGS=['-DOPENGL_ENABLED'])
-
- if (env["glew"] == "system"):
- env.ParseConfig('pkg-config glew --cflags --libs')
+ is64 = sys.maxsize > 2**32
- 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 (env["bits"] == "default"):
+ if (is64):
+ env["bits"] = "64"
+ else:
+ env["bits"] = "32"
- 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")
+ 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 (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["use_sanitizer"] == "yes"):
+ env.Append(CXXFLAGS=['-fsanitize=address', '-fno-omit-frame-pointer'])
+ env.Append(LINKFLAGS=['-fsanitize=address'])
+ env.extra_suffix += "s"
- 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["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["target"] == "release"):
- 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'])
+ 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'])
+ if (env["debug_release"] == "yes"):
+ env.Append(CCFLAGS=['-g2'])
-#host compiler is default..
+ elif (env["target"] == "debug"):
+
+ 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')
- 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 (env["openssl"] == "system"):
+ env.ParseConfig('pkg-config openssl --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["libpng"] == "system"):
+ env.ParseConfig('pkg-config libpng --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')
+
+ # 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["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["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')
+
+ env.Append(CPPFLAGS=['-DOPENGL_ENABLED'])
+
+ 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 (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 (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")
- import methods
+ 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( 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') } )
+# host compiler is default..
- if (env["use_static_cpp"]=="yes"):
- env.Append(LINKFLAGS=['-static-libstdc++'])
+ 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'])
- 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
+ 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') } )
+
+ 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
diff --git a/scene/2d/SCsub b/scene/2d/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/2d/SCsub
+++ b/scene/2d/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/3d/SCsub b/scene/3d/SCsub
index 1205deb94a..90e78ba8d3 100644
--- a/scene/3d/SCsub
+++ b/scene/3d/SCsub
@@ -3,11 +3,11 @@
Import('env')
-if (env["disable_3d"]=="yes"):
+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')
diff --git a/scene/SCsub b/scene/SCsub
index 79da365192..bd2da1eab9 100644
--- a/scene/SCsub
+++ b/scene/SCsub
@@ -2,21 +2,21 @@
Import('env')
-env.scene_sources=[]
-env.add_source_files(env.scene_sources,"*.cpp")
+env.scene_sources = []
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
-SConscript('main/SCsub');
-SConscript('gui/SCsub');
-SConscript('3d/SCsub');
-SConscript('2d/SCsub');
-SConscript('animation/SCsub');
-SConscript('audio/SCsub');
-SConscript('resources/SCsub');
-SConscript('io/SCsub');
+SConscript('main/SCsub')
+SConscript('gui/SCsub')
+SConscript('3d/SCsub')
+SConscript('2d/SCsub')
+SConscript('animation/SCsub')
+SConscript('audio/SCsub')
+SConscript('resources/SCsub')
+SConscript('io/SCsub')
-lib = env.Library("scene",env.scene_sources)
+lib = env.Library("scene", env.scene_sources)
env.Prepend(LIBS=[lib])
diff --git a/scene/animation/SCsub b/scene/animation/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/animation/SCsub
+++ b/scene/animation/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/audio/SCsub b/scene/audio/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/audio/SCsub
+++ b/scene/audio/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/gui/SCsub b/scene/gui/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/gui/SCsub
+++ b/scene/gui/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/io/SCsub b/scene/io/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/io/SCsub
+++ b/scene/io/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/main/SCsub b/scene/main/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/main/SCsub
+++ b/scene/main/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/resources/SCsub b/scene/resources/SCsub
index 702ed1a9bf..60b16cd0d4 100644
--- a/scene/resources/SCsub
+++ b/scene/resources/SCsub
@@ -2,9 +2,9 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
-env.add_source_files(env.scene_sources,"*.c")
+env.add_source_files(env.scene_sources, "*.cpp")
+env.add_source_files(env.scene_sources, "*.c")
Export('env')
-SConscript("default_theme/SCsub");
+SConscript("default_theme/SCsub")
diff --git a/scene/resources/default_theme/SCsub b/scene/resources/default_theme/SCsub
index 9fa89edbf7..bf9125be7f 100644
--- a/scene/resources/default_theme/SCsub
+++ b/scene/resources/default_theme/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.scene_sources,"*.cpp")
+env.add_source_files(env.scene_sources, "*.cpp")
Export('env')
diff --git a/scene/resources/default_theme/make_header.py b/scene/resources/default_theme/make_header.py
index 2d3f989e01..68c9e92527 100644
--- a/scene/resources/default_theme/make_header.py
+++ b/scene/resources/default_theme/make_header.py
@@ -1,72 +1,71 @@
-import os;
-import glob;
-import string;
+import os
+import glob
+import string
-#Generate include files
+# Generate include files
-f=open("theme_data.h","wb")
+f = open("theme_data.h", "wb")
-f.write("// THIS FILE HAS BEEN AUTOGENERATED, DONT EDIT!!\n");
+f.write("// THIS FILE HAS BEEN AUTOGENERATED, DONT EDIT!!\n")
-f.write("\n\n");
+f.write("\n\n")
-#Generate png image block
+# Generate png image block
-pixmaps = glob.glob("*.png");
+pixmaps = glob.glob("*.png")
-pixmaps.sort();
+pixmaps.sort()
-f.write("\n\n\n");
+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
+# Generate shaders block
shaders = glob.glob("*.gsl")
-shaders.sort();
+shaders.sort()
-f.write("\n\n\n");
+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();
+f.close()
diff --git a/servers/SCsub b/servers/SCsub
index 57b5b36758..eefa6278c4 100644
--- a/servers/SCsub
+++ b/servers/SCsub
@@ -2,18 +2,18 @@
Import('env')
-env.servers_sources=[]
-env.add_source_files(env.servers_sources,"*.cpp")
+env.servers_sources = []
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
-SConscript('physics/SCsub');
-SConscript('physics_2d/SCsub');
-SConscript('visual/SCsub');
-SConscript('audio/SCsub');
-SConscript('spatial_sound/SCsub');
-SConscript('spatial_sound_2d/SCsub');
+SConscript('physics/SCsub')
+SConscript('physics_2d/SCsub')
+SConscript('visual/SCsub')
+SConscript('audio/SCsub')
+SConscript('spatial_sound/SCsub')
+SConscript('spatial_sound_2d/SCsub')
-lib = env.Library("servers",env.servers_sources)
+lib = env.Library("servers", env.servers_sources)
env.Prepend(LIBS=[lib])
diff --git a/servers/audio/SCsub b/servers/audio/SCsub
index 4684bd6cf3..ccc76e823f 100644
--- a/servers/audio/SCsub
+++ b/servers/audio/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/servers/physics/SCsub b/servers/physics/SCsub
index b527f38ceb..c0ee2cc739 100644
--- a/servers/physics/SCsub
+++ b/servers/physics/SCsub
@@ -2,7 +2,7 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/servers/physics/joints/SCsub b/servers/physics/joints/SCsub
index 4684bd6cf3..ccc76e823f 100644
--- a/servers/physics/joints/SCsub
+++ b/servers/physics/joints/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/servers/physics_2d/SCsub b/servers/physics_2d/SCsub
index 2114782faa..d730144861 100644
--- a/servers/physics_2d/SCsub
+++ b/servers/physics_2d/SCsub
@@ -2,4 +2,4 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
diff --git a/servers/spatial_sound/SCsub b/servers/spatial_sound/SCsub
index 4684bd6cf3..ccc76e823f 100644
--- a/servers/spatial_sound/SCsub
+++ b/servers/spatial_sound/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/servers/spatial_sound_2d/SCsub b/servers/spatial_sound_2d/SCsub
index 4684bd6cf3..ccc76e823f 100644
--- a/servers/spatial_sound_2d/SCsub
+++ b/servers/spatial_sound_2d/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/servers/visual/SCsub b/servers/visual/SCsub
index 4684bd6cf3..ccc76e823f 100644
--- a/servers/visual/SCsub
+++ b/servers/visual/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.servers_sources,"*.cpp")
+env.add_source_files(env.servers_sources, "*.cpp")
Export('env')
diff --git a/tools/SCsub b/tools/SCsub
index b0b33d4f01..43cad794d4 100644
--- a/tools/SCsub
+++ b/tools/SCsub
@@ -2,124 +2,120 @@
Import('env')
-env.tool_sources=[]
-env.add_source_files(env.tool_sources,"*.cpp")
+env.tool_sources = []
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
-def make_translations_header(target,source,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")
-
- import zlib
- import os.path
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
+ g.write("#define _EDITOR_TRANSLATIONS_H\n")
- paths = [node.srcnode().abspath for node in source]
- sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
+ import zlib
+ import os.path
- 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]
+ paths = [node.srcnode().abspath for node in source]
+ sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[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")
+ 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("};\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")
- xl_names.append([name,len(buf),str(decomp_size)])
+ 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")
+ xl_names.append([name, len(buf), str(decomp_size)])
- g.write("#endif")
+ 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")
-def make_fonts_header(target,source,env):
+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
+
+ 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("};\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
-
- name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
+ g.write("#endif")
- 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("#endif")
-
-
-if (env["tools"]!="no"):
+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])
diff --git a/tools/collada/SCsub b/tools/collada/SCsub
index 473474201a..4bc64ffdc2 100644
--- a/tools/collada/SCsub
+++ b/tools/collada/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
diff --git a/tools/doc/SCsub b/tools/doc/SCsub
index 473474201a..4bc64ffdc2 100644
--- a/tools/doc/SCsub
+++ b/tools/doc/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
diff --git a/tools/editor/SCsub b/tools/editor/SCsub
index f6cb16dc24..caf45d25be 100644
--- a/tools/editor/SCsub
+++ b/tools/editor/SCsub
@@ -3,86 +3,78 @@
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)
-
-
- 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)
-
-
- 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")
-
-
-
-
-
-
-
-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()
-
- 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)
-
- #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")
-
- Export('env')
- SConscript('icons/SCsub');
- SConscript('plugins/SCsub');
- SConscript('fileserver/SCsub');
- SConscript('io_plugins/SCsub');
+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)
+
+ 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)
+
+ 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")
+
+
+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()
+
+ 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)
+
+ # 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")
+
+ Export('env')
+ SConscript('icons/SCsub')
+ SConscript('plugins/SCsub')
+ SConscript('fileserver/SCsub')
+ SConscript('io_plugins/SCsub')
diff --git a/tools/editor/fileserver/SCsub b/tools/editor/fileserver/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/fileserver/SCsub
+++ b/tools/editor/fileserver/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub
index 9e05d8f391..af6ebd67fd 100644
--- a/tools/editor/icons/SCsub
+++ b/tools/editor/icons/SCsub
@@ -2,97 +2,95 @@
Import('env')
-def make_editor_icons_action(target, source, env):
-
- import os
- import cStringIO
- dst = target[0].srcnode().abspath
- pixmaps = source
-
- s = cStringIO.StringIO()
+def make_editor_icons_action(target, source, env):
- 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")
+ import os
+ import cStringIO
- hidpi_list=[]
+ dst = target[0].srcnode().abspath
+ pixmaps = source
- for x in pixmaps:
+ s = cStringIO.StringIO()
- x=str(x)
- var_str=os.path.basename(x)[:-4]+"_png";
- #print(var_str)
+ 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("static const unsigned char "+ var_str +"[]={\n");
+ hidpi_list = []
- pngf=open(x,"rb");
+ for x in pixmaps:
- b=pngf.read(1);
- while(len(b)==1):
- s.write(hex(ord(b)))
- b=pngf.read(1);
- if (len(b)==1):
- s.write(",")
+ x = str(x)
+ var_str = os.path.basename(x)[:-4] + "_png"
+ # print(var_str)
- s.write("\n};\n\n");
+ s.write("static const unsigned char " + var_str + "[]={\n")
- pngf.close();
- var_str=os.path.basename(x)[:-4]+"_hidpi_png";
- try:
+ pngf = open(x, "rb")
- pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(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(",")
- s.write("static const unsigned char "+ var_str +"[]={\n");
+ s.write("\n};\n\n")
- b=pngf.read(1);
- while(len(b)==1):
- s.write(hex(ord(b)))
- b=pngf.read(1);
- if (len(b)==1):
- s.write(",")
+ pngf.close()
+ var_str = os.path.basename(x)[:-4] + "_hidpi_png"
+ try:
- s.write("\n};\n\n\n");
- hidpi_list.append(x)
+ pngf = open(os.path.dirname(x) + "/2x/" + os.path.basename(x), "rb")
- except:
- s.write("static const unsigned char* "+ var_str +"=NULL;\n\n\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(",")
+ s.write("\n};\n\n\n")
+ hidpi_list.append(x)
+ 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')
-env['BUILDERS']['MakeEditorIconsBuilder']=make_editor_icons_builder
-env.Alias('editor_icons',[env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp',Glob("*.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"))])
env.tool_sources.append("#tools/editor/editor_icons.cpp")
Export('env')
diff --git a/tools/editor/io_plugins/SCsub b/tools/editor/io_plugins/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/io_plugins/SCsub
+++ b/tools/editor/io_plugins/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/editor/plugins/SCsub b/tools/editor/plugins/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/plugins/SCsub
+++ b/tools/editor/plugins/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/scripts/addheader.py b/tools/scripts/addheader.py
index d040d8b5d6..7838e16ae0 100644
--- a/tools/scripts/addheader.py
+++ b/tools/scripts/addheader.py
@@ -1,4 +1,4 @@
-header="""\
+header = """\
/*************************************************************************/
/* $filename */
/*************************************************************************/
@@ -29,44 +29,42 @@ header="""\
/*************************************************************************/
"""
-f = open("files","rb")
+f = open("files", "rb")
fname = f.readline()
-while (fname!=""):
+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()
diff --git a/tools/scripts/file-hex-array.py b/tools/scripts/file-hex-array.py
index 05352396f1..a6cdfe541f 100755
--- a/tools/scripts/file-hex-array.py
+++ b/tools/scripts/file-hex-array.py
@@ -2,34 +2,38 @@ import binascii
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 +44,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() \ No newline at end of file
+ usage()
diff --git a/tools/scripts/make_bmfhdr.py b/tools/scripts/make_bmfhdr.py
index 0f6f453004..1d3c40f9c6 100644
--- a/tools/scripts/make_bmfhdr.py
+++ b/tools/scripts/make_bmfhdr.py
@@ -2,69 +2,66 @@
import sys
-if (len(sys.argv)!=2):
- print("Pass me a .fnt argument!")
+if (len(sys.argv) != 2):
+ print("Pass me a .fnt argument!")
-f = open(sys.argv[1],"rb")
+f = open(sys.argv[1], "rb")
-name = sys.argv[1].lower().replace(".fnt","")
+name = sys.argv[1].lower().replace(".fnt", "")
l = f.readline()
-font_height=0
-font_ascent=0
-font_charcount=0
-font_chars=[]
-font_cc=0
-
-while(l!=""):
-
- 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]
-
-
- 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
-
-
-
- l = f.readline()
-
-
-print("static const int _bi_font_"+name+"_height="+str(font_height)+";")
-print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";")
-print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";")
-cstr="static const int _bi_font_"+name+"_characters={"
+font_height = 0
+font_ascent = 0
+font_charcount = 0
+font_chars = []
+font_cc = 0
+
+while(l != ""):
+
+ 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]
+
+ 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
+
+ l = f.readline()
+
+
+print("static const int _bi_font_" + name + "_height=" + str(font_height) + ";")
+print("static const int _bi_font_" + name + "_ascent=" + str(font_ascent) + ";")
+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+=("};")
+cstr += ("};")
-print(cstr) \ No newline at end of file
+print(cstr)
diff --git a/tools/scripts/make_glwrapper.py b/tools/scripts/make_glwrapper.py
index b4c582f1eb..5694d2327e 100644
--- a/tools/scripts/make_glwrapper.py
+++ b/tools/scripts/make_glwrapper.py
@@ -1,32 +1,32 @@
#! /usr/bin/env python
import sys
-if (len(sys.argv)<2):
- print("usage: make_glwrapper.py <headers>")
- sys.exit(255)
+if (len(sys.argv) < 2):
+ print("usage: make_glwrapper.py <headers>")
+ sys.exit(255)
-functions=[]
-types=[]
-constants=[]
+functions = []
+types = []
+constants = []
-READ_FUNCTIONS=0
-READ_TYPES=1
-READ_CONSTANTS=2
+READ_FUNCTIONS = 0
+READ_TYPES = 1
+READ_CONSTANTS = 2
-read_what=READ_TYPES
+read_what = READ_TYPES
-for x in (range(len(sys.argv)-1)):
- f=open(sys.argv[x+1],"r")
+for x in (range(len(sys.argv) - 1)):
+ 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,67 +38,66 @@ 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)
+# print(types)
+# print(constants)
+# print(functions)
-#print(types)
-#print(constants)
-#print(functions)
-
-f=open("glwrapper.h","w")
+f = open("glwrapper.h", "w")
f.write("#ifndef GL_WRAPPER\n")
f.write("#define GL_WRAPPER\n\n\n")
-header_code="""\
+header_code = """\
#if defined(__gl_h_) || defined(__GL_H__)
#error gl.h included before glwrapper.h
#endif
@@ -128,56 +127,52 @@ header_code="""\
f.write("#include <stddef.h>\n\n\n")
-f.write(header_code);
+f.write(header_code)
f.write("#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n")
f.write("#if defined(_WIN32) && !defined(__CYGWIN__)\n")
f.write("#define GLWRP_APIENTRY __stdcall\n")
-f.write("#else\n");
+f.write("#else\n")
f.write("#define GLWRP_APIENTRY \n")
-f.write("#endif\n\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");
+f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n")
f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n")
f.write("#ifdef __cplusplus\n}\n#endif\n")
f.write("#endif\n\n")
-f=open("glwrapper.c","w")
+f = open("glwrapper.c", "w")
f.write("\n\n")
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")
f.write("\n\n")
-
-
-
-
diff --git a/tools/scripts/makeargs.py b/tools/scripts/makeargs.py
index 8c5539c5fe..2cd47ae087 100644
--- a/tools/scripts/makeargs.py
+++ b/tools/scripts/makeargs.py
@@ -1,5 +1,5 @@
-text="""
+text = """
#define FUNC$numR(m_r,m_func,$argt)\\
virtual m_r m_func($argtp) { \\
if (Thread::get_caller_ID()!=server_thread) {\\
@@ -64,25 +64,19 @@ text="""
"""
+for i in range(1, 8):
-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))
-
- t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i))
- print(t)
-
-
-
-
+ 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)
diff --git a/tools/scripts/memsort.py b/tools/scripts/memsort.py
index d2e4fe0226..fb636b0f78 100644
--- a/tools/scripts/memsort.py
+++ b/tools/scripts/memsort.py
@@ -1,35 +1,35 @@
import sys
-arg="memdump.txt"
+arg = "memdump.txt"
-if (len(sys.argv)>1):
- arg=sys.argv[1]
+if (len(sys.argv) > 1):
+ arg = sys.argv[1]
-f = open(arg,"rb")
+f = open(arg, "rb")
-l=f.readline()
+l = f.readline()
sum = {}
-cnt={}
+cnt = {}
-while(l!=""):
+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]))
diff --git a/tools/scripts/svgs_2_pngs.py b/tools/scripts/svgs_2_pngs.py
index 879926ab42..b24324dcd7 100644
--- a/tools/scripts/svgs_2_pngs.py
+++ b/tools/scripts/svgs_2_pngs.py
@@ -51,7 +51,7 @@ def export_icons():
# name without extensions
name_only = file_name.replace('.svg', '')
- out_icon_names = [name_only] # export to a png with the same file name
+ out_icon_names = [name_only] # export to a png with the same file name
theme_out_icon_names = []
# special cases
if special_icons.has_key(name_only):
@@ -73,7 +73,6 @@ def export_icons():
svg_to_png(source_path, theme_dir_base + theme_out_icon_name, 90)
-
def export_theme():
svgs_path = theme_dir_source
file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))]
@@ -82,7 +81,7 @@ def export_theme():
# name without extensions
name_only = file_name.replace('.svg', '')
- out_icon_names = [name_only] # export to a png with the same file name
+ out_icon_names = [name_only] # export to a png with the same file name
# special cases
if theme_icons.has_key(name_only):
special_icon = theme_icons[name_only]
@@ -102,36 +101,36 @@ special_icons = {
output_names=['icon_add'],
theme_output_names=['icon_add', 'icon_zoom_more']
),
- 'icon_new': dict( output_names=['icon_file'] ),
- 'icon_animation_tree_player': dict( output_names=['icon_animation_tree'] ),
+ 'icon_new': dict(output_names=['icon_file']),
+ 'icon_animation_tree_player': dict(output_names=['icon_animation_tree']),
'icon_tool_rotate': dict(
output_names=['icon_reload'],
- theme_output_names= ['icon_reload']
+ theme_output_names=['icon_reload']
),
- 'icon_multi_edit': dict( output_names=['icon_multi_node_edit'] ),
+ 'icon_multi_edit': dict(output_names=['icon_multi_node_edit']),
'icon_folder': dict(
output_names=['icon_load', 'icon_open'],
- theme_output_names= ['icon_folder']
+ theme_output_names=['icon_folder']
),
- 'icon_file_list': dict( output_names=['icon_enum'] ),
- 'icon_collision_2d': dict( output_names=['icon_collision_polygon_2d', 'icon_polygon_2d'] ),
- 'icon_class_list': dict( output_names=['icon_filesystem'] ),
- 'icon_color_ramp': dict( output_names=['icon_graph_color_ramp'] ),
- 'icon_translation': dict( output_names=['icon_p_hash_translation'] ),
- 'icon_shader': dict( output_names=['icon_shader_material', 'icon_material_shader'] ),
- 'icon_canvas_item_shader_graph': dict( output_names=['icon_material_shader_graph'] ),
-
- 'icon_color_pick': dict( theme_output_names= ['icon_color_pick'], avoid_self=True ),
- 'icon_play': dict( theme_output_names= ['icon_play'] ),
- 'icon_stop': dict( theme_output_names= ['icon_stop'] ),
- 'icon_zoom_less': dict( theme_output_names= ['icon_zoom_less'], avoid_self=True ),
- 'icon_zoom_reset': dict( theme_output_names= ['icon_zoom_reset'], avoid_self=True ),
+ 'icon_file_list': dict(output_names=['icon_enum']),
+ 'icon_collision_2d': dict(output_names=['icon_collision_polygon_2d', 'icon_polygon_2d']),
+ 'icon_class_list': dict(output_names=['icon_filesystem']),
+ 'icon_color_ramp': dict(output_names=['icon_graph_color_ramp']),
+ 'icon_translation': dict(output_names=['icon_p_hash_translation']),
+ 'icon_shader': dict(output_names=['icon_shader_material', 'icon_material_shader']),
+ 'icon_canvas_item_shader_graph': dict(output_names=['icon_material_shader_graph']),
+
+ 'icon_color_pick': dict(theme_output_names=['icon_color_pick'], avoid_self=True),
+ 'icon_play': dict(theme_output_names=['icon_play']),
+ 'icon_stop': dict(theme_output_names=['icon_stop']),
+ 'icon_zoom_less': dict(theme_output_names=['icon_zoom_less'], avoid_self=True),
+ 'icon_zoom_reset': dict(theme_output_names=['icon_zoom_reset'], avoid_self=True),
'icon_snap': dict(theme_output_names=['icon_snap'])
}
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()
diff --git a/tools/translations/extract.py b/tools/translations/extract.py
index 61b07b5799..bd6f03237b 100755
--- a/tools/translations/extract.py
+++ b/tools/translations/extract.py
@@ -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")
-
- 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
-
- 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)
-
- 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
-
- f.close()
+ f = open(fname, "rb")
+
+ 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
+
+ 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)
+
+ 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
+
+ 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)))
diff --git a/version.py b/version.py
index bf1d33c1cf..d014a538c9 100644
--- a/version.py
+++ b/version.py
@@ -1,5 +1,5 @@
-short_name="godot"
-name="Godot Engine"
-major=2
-minor=2
-status="alpha"
+short_name = "godot"
+name = "Godot Engine"
+major = 2
+minor = 2
+status = "alpha"