123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env python
- Import('env')
- env_png = env.Clone()
- # Thirdparty source files
- if env['builtin_libpng']:
- 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.Append(CPPPATH=[thirdparty_dir])
- # Needed for drivers includes and in platform/javascript
- env.Append(CPPPATH=[thirdparty_dir])
- # Currently .ASM filter_neon.S does not compile on NT.
- import os
- use_neon = "neon_enabled" in env and env["neon_enabled"] and os.name != "nt"
- if use_neon:
- env_png.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=2"])
- else:
- env_png.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=0"])
- 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()
- 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"))
- neon_sources.append(env_neon.Object(thirdparty_dir + "/arm/palette_neon_intrinsics.c"))
- env.drivers_sources += neon_sources
- # Godot source files
- env_png.add_source_files(env.drivers_sources, "*.cpp")
- Export('env')
|