#!/usr/bin/env python from __future__ import print_function import sys import os import traceback if len(sys.argv) != 3: print('Usage: "generate_spirv_offline.py "') exit(1) compilation_cache_dir = sys.argv[1] cl_device_info_filename = sys.argv[2] def generate_spirv(): print("Generating SPIR-V files") build_options = '' if os.path.exists(compilation_cache_dir): for root, dirs, files in os.walk(compilation_cache_dir): for file in files: if file.endswith('.cl'): options_file_name = file[:-2] + "options" if os.path.exists(os.path.join(root, options_file_name)): optFile = open (os.path.join(root, options_file_name), 'r') build_options = optFile.readline().strip() print(build_options) source_filename = os.path.join(root, file) output_filename = os.path.join(root, file[:-2]) + "spv" command_line = ("cl_offline_compiler" + " --source=" + source_filename + " --output=" + output_filename + " --cl-device-info=" + cl_device_info_filename + " --mode=spir-v -- " + '"' + build_options + '"') print(command_line) os.system(command_line) return 0 def main(): try: generate_spirv() except Exception: traceback.print_exc(file=sys.stdout) sys.exit(0) if __name__ == "__main__": main()