def build_worker(codestring, path_to_results, specification_class, write_header=True, extra_args=[], needs_mpi=False): path = os.path.abspath(path_to_results) codefile = os.path.join(path, "code.o") headerfile = os.path.join(path, "worker_code.h") interfacefile = os.path.join(path, "interface.o") exefile = os.path.join(path, "c_worker") c_compile(codefile, codestring) uc = create_c.GenerateACHeaderStringFromASpecificationClass() uc.specification_class = specification_class uc.needs_mpi = needs_mpi header = uc.result if write_header: with open(headerfile, "w") as f: f.write(header) extra_args = extra_args + ["-I", path] uc = create_c.GenerateACSourcecodeStringFromASpecificationClass() uc.specification_class = specification_class uc.needs_mpi = needs_mpi code = uc.result cxx_compile(interfacefile, code if write_header else header + "\n\n" + code, extra_args=extra_args) c_build(exefile, [interfacefile, codefile], extra_args=extra_args) return exefile
def build_worker(self): path = os.path.abspath(get_path_to_results()) codefile = os.path.join(path, "code.o") interfacefile = os.path.join(path, "interface.o") self.exefile = os.path.join(path, "c_worker") self.c_compile(codefile, codestring) uc = create_c.GenerateACHeaderStringFromASpecificationClass() uc.specification_class = TestCode uc.make_extern_c = False header = uc.result uc = create_c.GenerateACSourcecodeStringFromASpecificationClass() uc.specification_class = TestCode uc.needs_mpi = False code = uc.result string = '\n\n'.join([header, code]) #print string self.cxx_compile(interfacefile, string) self.c_build(self.exefile, [interfacefile, codefile])
def build_worker(self): path = os.path.abspath(self.get_path_to_results()) codefile = os.path.join(path,"code.o") headerfile = os.path.join(path,"worker_code.h") interfacefile = os.path.join(path,"interface.o") self.exefile = os.path.join(path,"c_worker") self.c_compile(codefile, codestring) uc = create_c.GenerateACHeaderStringFromASpecificationClass() uc.specification_class = ForTestingInterface uc.needs_mpi = False header = uc.result with open(headerfile, "w") as f: f.write(header) uc = create_c.GenerateACSourcecodeStringFromASpecificationClass() uc.specification_class = ForTestingInterface uc.needs_mpi = False code = uc.result #print string self.cxx_compile(interfacefile, code) self.c_build(self.exefile, [interfacefile, codefile] )
def build_worker(self): path = os.path.abspath(self.get_path_to_results()) codefile = os.path.join(path, "code.o") interfacefile = os.path.join(path, "interface.o") self.exefile = os.path.join(path, "c_worker") self.cxx_compile(codefile, codestring) uc = create_c.GenerateACHeaderStringFromASpecificationClass() uc.specification_class = self.get_interface_class() uc.make_extern_c = True uc.needs_mpi = True uc.ignore_functions_from_specification_classes = [ stopping_conditions.StoppingConditionInterface ] header = uc.result uc = create_c.GenerateACSourcecodeStringFromASpecificationClass() uc.needs_mpi = True uc.specification_class = self.get_interface_class() code = uc.result string = '\n\n'.join([header, code]) #print string self.cxx_compile(interfacefile, string) self.c_build(self.exefile, [interfacefile, codefile])