diff --git a/.gitignore b/.gitignore index cfffda2e..6b71d2b1 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,8 @@ /deps/pcre/bin/ /deps/pcre/lib/pkgconfig/libpcreposix.pc /deps/pcre/lib/libpcreposix.a +/deps/png/bin/png-fix-itxt +/deps/png/bin/pngfix /deps/sndfile/bin/ /deps/sndfile/include/sndfile.hh /deps/sndfile/lib/cmake/ diff --git a/build.py b/build.py index d1f1b1f8..376d83ad 100755 --- a/build.py +++ b/build.py @@ -1072,6 +1072,32 @@ class PkgConfigTarget(ConfigureMakeDependencyTarget): shutil.copy(src_path, dst_path) +class PngTarget(ConfigureMakeStaticDependencyTarget): + def __init__(self, name='png'): + super().__init__(name) + + def prepare_source(self, builder: 'Builder'): + builder.download_source( + 'https://downloads.sourceforge.net/libpng/libpng-1.6.37.tar.xz', + '505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca') + + def detect(self, builder: 'Builder') -> bool: + return os.path.exists(builder.source_path + 'libpng.pc.in') + + def post_build(self, builder: 'Builder'): + super().post_build(builder) + + prefix = 'prefix=' + + def update_prefix(line: str) -> str: + if line.startswith(prefix): + return prefix + r'"$(cd "${0%/*}/.."; pwd)"' + os.linesep + + return line + + Target.update_text_file(builder.prefix_path + '/bin/libpng16-config', update_prefix) + + class SndFileTarget(CMakeStaticDependencyTarget): def __init__(self, name='sndfile'): super().__init__(name) @@ -1435,6 +1461,7 @@ class Builder(object): OpusFileTarget(), PcreTarget(), PkgConfigTarget(), + PngTarget(), SndFileTarget(), VorbisTarget(), VpxTarget(),