12345678910111213141516171819202122232425262728293031323334353637 |
- import sys
- from check_objects import to_recompile
- from compile import do_compile
- from link_and_load import link_and_load
- import random
- import multiprocessing
- import glob
- import os
- def do_compile_wrapper(args):
- address, taskname, filename = args
- do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
- def main(address, taskname, files):
- new_files = to_recompile(address, files)
- if os.name == "posix":
- # At least linux decently implements forking, so use as many cores as possible
- p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
- p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
- else:
- # Other systems are less intelligent, so just do this sequentially
- map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
- link_and_load(address, taskname, files)
- if __name__ == "__main__":
- if len(sys.argv) < 4:
- sys.stderr.write("Expected different parameters!\n")
- sys.stderr.write(" %s address taskname [file]*\n" % sys.argv[0])
- sys.exit(1)
- address = sys.argv[1]
- taskname = sys.argv[2]
- files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
- main(address, taskname, files)
|