12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/usr/bin/env python3
- #
- # Copyright 2019 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- """Creates a GN include file for building dav1d from source."""
- __author__ = "dalecurtis@chromium.org (Dale Curtis)"
- import datetime
- import glob
- import os
- _COPYRIGHT = """# Copyright %d The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- # NOTE: this file is autogenerated by dav1d/generate_sources.py - DO NOT EDIT.
- """ % (
- datetime.datetime.now().year)
- # .c files which don't need -DBIT_DEPTH specified for each compilation.
- _DAV1D_ENTRY_POINT_SOURCES = [
- "libdav1d/src/lib.c",
- "libdav1d/src/thread_task.c",
- "libdav1d/src/thread_task.h",
- ]
- def _Glob(pattern):
- # Replace path separator. Needed when running on Windows.
- return [i.replace(os.sep, '/') for i in glob.glob(pattern)]
- def _WriteArray(fd, var_name, array, filter_list=[], last_entry=False):
- if len(array) == 0:
- fd.write("var_name = []\n")
- return
- fd.write("%s = [\n" % var_name)
- for item in sorted(array):
- if item not in filter_list:
- fd.write(" \"%s\",\n" % item)
- fd.write("]\n")
- if not last_entry:
- fd.write("\n")
- def _WriteGn(fd):
- fd.write(_COPYRIGHT)
- _WriteArray(fd, "x86_asm_sources", _Glob("libdav1d/src/x86/*.asm"),
- ["libdav1d/src/x86/filmgrain_common.asm"])
- _WriteArray(fd, "x86_template_sources", _Glob("libdav1d/src/x86/*_tmpl.c"))
- _WriteArray(
- fd, "arm32_asm_sources", _Glob("libdav1d/src/arm/32/*.S"),
- _Glob("libdav1d/src/arm/32/*_tmpl.S") + ["libdav1d/src/arm/32/util.S"])
- _WriteArray(
- fd, "arm64_asm_sources", _Glob("libdav1d/src/arm/64/*.S"),
- _Glob("libdav1d/src/arm/64/*_tmpl.S") + ["libdav1d/src/arm/64/util.S"])
- _WriteArray(fd, "arm_template_sources", _Glob("libdav1d/src/arm/*_tmpl.c"))
- _WriteArray(fd, "ppc64_template_sources", _Glob("libdav1d/src/ppc/*_tmpl.c"))
- template_sources = _Glob("libdav1d/src/*_tmpl.c")
- _WriteArray(fd, "template_sources", template_sources)
- # Generate list of sources which need to be compiled multiple times with the
- # correct -DBIT_DEPTH=8|10 option specified each time.
- _WriteArray(fd, "c_headers", _Glob("libdav1d/src/*.h"),
- _DAV1D_ENTRY_POINT_SOURCES + template_sources)
- _WriteArray(fd, "c_sources", _Glob("libdav1d/src/*.c"),
- _DAV1D_ENTRY_POINT_SOURCES + template_sources)
- _WriteArray(fd,
- "entry_point_sources",
- _DAV1D_ENTRY_POINT_SOURCES,
- last_entry=True)
- def main():
- with open("dav1d_generated.gni", "w") as fd:
- _WriteGn(fd)
- if __name__ == "__main__":
- main()
|