2016-10-17 06:50:25 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
2014-02-10 01:10:30 +00:00
|
|
|
Import('env')
|
|
|
|
|
2016-10-15 10:39:28 +00:00
|
|
|
env_png = env.Clone()
|
2014-02-10 01:10:30 +00:00
|
|
|
|
2016-10-15 10:39:28 +00:00
|
|
|
# Thirdparty source files
|
2017-09-25 04:22:58 +00:00
|
|
|
if env['builtin_libpng']:
|
2016-10-30 17:44:57 +00:00
|
|
|
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]
|
2016-10-15 13:36:18 +00:00
|
|
|
|
2019-04-30 11:12:02 +00:00
|
|
|
env_png.Prepend(CPPPATH=[thirdparty_dir])
|
2018-10-01 08:59:03 +00:00
|
|
|
# Needed for drivers includes and in platform/javascript
|
2019-04-30 11:12:02 +00:00
|
|
|
env.Prepend(CPPPATH=[thirdparty_dir])
|
2014-02-10 01:10:30 +00:00
|
|
|
|
2016-10-30 17:44:57 +00:00
|
|
|
# Currently .ASM filter_neon.S does not compile on NT.
|
|
|
|
import os
|
2018-09-28 11:29:52 +00:00
|
|
|
use_neon = "neon_enabled" in env and env["neon_enabled"] and os.name != "nt"
|
|
|
|
if use_neon:
|
2019-07-03 07:16:20 +00:00
|
|
|
env_png.Append(CPPDEFINES=[("PNG_ARM_NEON_OPT", 2)])
|
2018-09-28 11:29:52 +00:00
|
|
|
else:
|
2019-07-03 07:16:20 +00:00
|
|
|
env_png.Append(CPPDEFINES=[("PNG_ARM_NEON_OPT", 0)])
|
2018-09-28 11:29:52 +00:00
|
|
|
|
|
|
|
env_thirdparty = env_png.Clone()
|
|
|
|
env_thirdparty.disable_warnings()
|
|
|
|
env_thirdparty.add_source_files(env.drivers_sources, thirdparty_sources)
|
|
|
|
|
|
|
|
if use_neon:
|
|
|
|
env_neon = env_thirdparty.Clone()
|
2016-10-30 17:44:57 +00:00
|
|
|
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"))
|
2019-03-04 11:38:24 +00:00
|
|
|
neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/palette_neon_intrinsics.c"))
|
2016-10-30 17:44:57 +00:00
|
|
|
env.drivers_sources += neon_sources
|
2016-10-09 21:36:17 +00:00
|
|
|
|
2016-10-15 10:39:28 +00:00
|
|
|
# Godot source files
|
|
|
|
env_png.add_source_files(env.drivers_sources, "*.cpp")
|
2016-10-09 21:36:17 +00:00
|
|
|
|
2014-02-10 01:10:30 +00:00
|
|
|
Export('env')
|