script/archive.py (85 lines of code) (raw):

#! /usr/bin/env python3 import common, os, pathlib, sys, zipfile def parents(path): res = [] parent = path.parent while '.' != str(parent): res.insert(0, parent) parent = parent.parent return res def main(): os.chdir(os.path.join(os.path.dirname(__file__), os.pardir, 'skia')) build_type = common.build_type() version = common.version() machine = common.machine() target = common.target() classifier = common.classifier() out_bin = 'out/' + build_type + '-' + target + '-' + machine globs = [ out_bin + '/*.a', out_bin + '/*.lib', out_bin + '/icudtl.dat', 'include/**/*', 'modules/particles/include/*.h', 'modules/skottie/include/*.h', 'modules/skottie/src/*.h', 'modules/skottie/src/animator/*.h', 'modules/skottie/src/effects/*.h', 'modules/skottie/src/layers/*.h', 'modules/skottie/src/layers/shapelayer/*.h', 'modules/skottie/src/text/*.h', 'modules/skparagraph/include/*.h', 'modules/skplaintexteditor/include/*.h', 'modules/skresources/include/*.h', 'modules/sksg/include/*.h', 'modules/skshaper/include/*.h', 'modules/skshaper/src/*.h', 'modules/svg/include/*.h', 'modules/skcms/src/*.h', 'modules/skcms/*.h', 'modules/skunicode/include/*.h', 'modules/skunicode/src/*.h', 'modules/jsonreader/*.h', 'src/base/*.h', 'src/core/*.h', 'src/gpu/ganesh/gl/*.h', 'src/utils/*.h', 'third_party/externals/angle2/LICENSE', 'third_party/externals/angle2/include/**/*', 'third_party/externals/freetype/docs/FTL.TXT', 'third_party/externals/freetype/docs/GPLv2.TXT', 'third_party/externals/freetype/docs/LICENSE.TXT', 'third_party/externals/freetype/include/**/*', 'third_party/externals/icu/source/common/**/*.h', 'third_party/externals/libpng/LICENSE', 'third_party/externals/libpng/*.h', 'third_party/externals/libwebp/COPYING', 'third_party/externals/libwebp/PATENTS', 'third_party/externals/libwebp/src/dec/*.h', 'third_party/externals/libwebp/src/dsp/*.h', 'third_party/externals/libwebp/src/enc/*.h', 'third_party/externals/libwebp/src/mux/*.h', 'third_party/externals/libwebp/src/utils/*.h', 'third_party/externals/libwebp/src/webp/*.h', 'third_party/externals/harfbuzz/COPYING', 'third_party/externals/harfbuzz/src/*.h', 'third_party/externals/swiftshader/LICENSE.txt', 'third_party/externals/swiftshader/include/**/*', 'third_party/externals/zlib/LICENSE', 'third_party/externals/zlib/*.h', "third_party/icu/*.h" ] dist = 'Skia-' + version + '-' + target + '-' + build_type + '-' + machine + classifier + '.zip' print('> Writing', dist) with zipfile.ZipFile(os.path.join(os.pardir, dist), 'w', compression=zipfile.ZIP_DEFLATED) as zip: dirs = set() for glob in globs: for path in pathlib.Path().glob(glob): if not path.is_dir(): for dir in parents(path): if not dir in dirs: zip.write(str(dir)) dirs.add(dir) zip.write(str(path)) return 0 if __name__ == '__main__': sys.exit(main())