make_parallel.py 981 B

1234567891011121314151617181920212223242526272829303132
  1. import sys
  2. from check_objects import to_recompile
  3. from compile import do_compile
  4. from link_and_load import link_and_load
  5. import random
  6. import multiprocessing
  7. import glob
  8. def do_compile_wrapper(args):
  9. address, taskname, filename = args
  10. do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
  11. def main(address, taskname, files):
  12. p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
  13. new_files = to_recompile(address, files)
  14. p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
  15. link_and_load(address, taskname, files)
  16. if __name__ == "__main__":
  17. if len(sys.argv) < 4:
  18. sys.stderr.write("Expected different parameters!\n")
  19. sys.stderr.write(" %s address taskname [file]*\n" % sys.argv[0])
  20. sys.exit(1)
  21. address = sys.argv[1]
  22. taskname = sys.argv[2]
  23. files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
  24. main(address, taskname, files)