Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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])
Ejemplo n.º 3
0
    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])