Пример #1
0
def generate_fortran(config):
    ffi = FFI(
        [config["header"]],
        includes=[config["cxx_includes"]],
        defines=[("CHFL_EXPORT", "")]
    )

    root = config["outpath"]
    fortran.write_enums(os.path.join(root, "cenums.f90"), ffi.enums)
    fortran.write_cdef(os.path.join(root, "cdef.f90"), ffi.functions)

    fortran.write_types(os.path.join(root, "ftypes.f90"), ffi.functions)

    ffi.functions = [f for f in ffi.functions if f.name != "chfl_log_callback"]
    fortran.write_interface(
        os.path.join(root, "interface.f90"),
        ffi.functions
    )
Пример #2
0
def generate_fortran(config):
    ffi = FFI(config["header"])

    root = config["outpath"]
    try:
        os.mkdir(os.path.join(root, "cdef"))
    except OSError:
        pass

    try:
        os.mkdir(os.path.join(root, "wrapper"))
    except OSError:
        pass

    fortran.write_enums(os.path.join(root, "cenums.f90"), ffi.enums)
    fortran.write_types(os.path.join(root, "types.f90"), ffi.functions)
    fortran.write_definitions(os.path.join(root, "cdef"), ffi.functions)
    fortran.write_wrappers(os.path.join(root, "wrapper"), ffi.functions)
Пример #3
0
def generate_java(config):
    ffi = FFI(config["header"])
    outfile = os.path.join(config["outpath"], "Lib.java")
    java.write_functions(outfile, ffi.functions)
    java.write_types(config["outpath"])
Пример #4
0
def generate_rust(config):
    ffi = FFI(config["header"])
    root = config["outpath"]
    rust.write_ffi(os.path.join(root, "lib.rs"), ffi)
Пример #5
0
def generate_julia(config):
    ffi = FFI(config["header"])
    root = config["outpath"]
    julia.write_types(os.path.join(root, "types.jl"), ffi.enums)
    julia.write_functions(os.path.join(root, "cdef.jl"), ffi.functions)
Пример #6
0
def generate_python(config):
    ffi = FFI(config["header"])
    root = config["outpath"]
    python.write_ffi(os.path.join(root, "ffi.py"), ffi.enums, ffi.functions)
Пример #7
0
def generate_js(config):
    ffi = FFI(config["header"])
    root = config["outpath"]
    javascript.write_cmake_export(os.path.join(root, "exported.cmake"), ffi.functions)
    javascript.write_js(os.path.join(root, "index.js"), ffi.enums)
    javascript.write_dts(os.path.join(root, "index.d.ts"), ffi.functions, ffi.enums)
Пример #8
0
def generate_fortran(config):
    ffi = FFI(config["header"])
    root = config["outpath"]

    fortran.write_enums(os.path.join(root, "enums.f90"), ffi.enums)
    fortran.write_definitions(root, ffi.functions)