2018-08-21 17:06:28 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
import os
|
|
|
|
import subprocess
|
|
|
|
import sys
|
|
|
|
import zipfile
|
|
|
|
|
2018-09-18 13:48:01 +00:00
|
|
|
EXTENSIONS_TO_SKIP = [
|
|
|
|
'.pdb'
|
|
|
|
]
|
|
|
|
|
|
|
|
PATHS_TO_SKIP = [
|
2018-09-21 20:58:33 +00:00
|
|
|
'angledata', #Skipping because it is an output of //ui/gl that we don't need
|
|
|
|
'swiftshader', #Skipping because it is an output of //ui/gl that we don't need
|
2018-10-02 15:12:37 +00:00
|
|
|
'./libVkLayer_', #Skipping because these are outputs that we don't need
|
|
|
|
'./VkLayerLayer_', #Skipping because these are outputs that we don't need
|
2018-09-18 13:48:01 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
def skip_path(dep):
|
2018-09-20 15:02:47 +00:00
|
|
|
should_skip = (
|
|
|
|
any(dep.startswith(path) for path in PATHS_TO_SKIP) or
|
|
|
|
any(dep.endswith(ext) for ext in EXTENSIONS_TO_SKIP))
|
2018-09-21 20:58:33 +00:00
|
|
|
if should_skip:
|
|
|
|
print("Skipping {}".format(dep))
|
2018-09-20 15:02:47 +00:00
|
|
|
return should_skip
|
2018-09-18 13:48:01 +00:00
|
|
|
|
2018-08-21 17:06:28 +00:00
|
|
|
def execute(argv):
|
|
|
|
try:
|
|
|
|
output = subprocess.check_output(argv, stderr=subprocess.STDOUT)
|
|
|
|
return output
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
|
|
print e.output
|
|
|
|
raise e
|
|
|
|
|
|
|
|
def main(argv):
|
|
|
|
dist_zip, runtime_deps, target_cpu, target_os = argv
|
2018-10-03 04:49:10 +00:00
|
|
|
dist_files = set()
|
2018-08-21 17:06:28 +00:00
|
|
|
with open(runtime_deps) as f:
|
|
|
|
for dep in f.readlines():
|
|
|
|
dep = dep.strip()
|
2018-10-03 04:49:10 +00:00
|
|
|
dist_files.add(dep)
|
2018-08-21 17:06:28 +00:00
|
|
|
if sys.platform == 'darwin':
|
2018-10-03 04:49:10 +00:00
|
|
|
execute(['zip', '-r', '-y', dist_zip] + list(dist_files))
|
2018-08-21 17:06:28 +00:00
|
|
|
else:
|
2018-10-10 11:06:58 +00:00
|
|
|
with zipfile.ZipFile(dist_zip, 'w', zipfile.ZIP_DEFLATED) as z:
|
2018-08-21 17:06:28 +00:00
|
|
|
for dep in dist_files:
|
2018-09-18 13:48:01 +00:00
|
|
|
if skip_path(dep):
|
|
|
|
continue
|
2018-08-21 17:06:28 +00:00
|
|
|
if os.path.isdir(dep):
|
|
|
|
for root, dirs, files in os.walk(dep):
|
|
|
|
for file in files:
|
2018-09-22 01:29:55 +00:00
|
|
|
z.write(os.path.join(root, file))
|
2018-08-21 17:06:28 +00:00
|
|
|
else:
|
|
|
|
z.write(dep)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys.exit(main(sys.argv[1:]))
|