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 )
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)
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"])
def generate_rust(config): ffi = FFI(config["header"]) root = config["outpath"] rust.write_ffi(os.path.join(root, "lib.rs"), ffi)
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)
def generate_python(config): ffi = FFI(config["header"]) root = config["outpath"] python.write_ffi(os.path.join(root, "ffi.py"), ffi.enums, ffi.functions)
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)
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)