Skip to content

Library for generating C and Fortran bindings for C++ functions from C++

License

Notifications You must be signed in to change notification settings

wdeconinck/cpp_bindgen

 
 

Repository files navigation



License: BSD

cpp_bindgen is a library to generate C and Fortran bindings for C++ functions from C++. It is part of the GridTools framework, a set of libraries and utilities to develop performance portable applications in the area of weather and climate.

Currently the documentation of cpp_bindgen is part of the GridTools documentation. For simple examples, see the examples folder of this repository. More advanced examples are available in https://github.com/GridTools/gridtools.

Installation instructions

You can easily integrate cpp_bindgen in your CMake project with the following snippet which makes the function bindgen_add_library() available.

include(FetchContent)
FetchContent_Declare(
  cpp_bindgen
  GIT_REPOSITORY https://github.com/GridTools/cpp_bindgen.git
  GIT_TAG        master # consider replacing master by a tagged version
)
FetchContent_MakeAvailable(cpp_bindgen)

See also https://github.com/GridTools/cpp_bindgen/tree/master/example/simple_fetch_content.

Requirements
  • Boost (1.65.1 or later)
  • CMake (3.14.5 or later)
Known issues
  • The library doesn't work with NVCC <= 9.2 using Clang as host compiler, if c++14 is enabled, due to a bug in NVCC.

Continuous integration

We use Jenkins to test this library. To test your PR use

  • launch jenkins to execute the tests which are part of this repository.
  • launch gridtools to run the changes against the GridTools integration tests from the GridTools/gridtools repository.

Contributing

Contributions to the GridTools framework are welcome. Please open an issue for any bugs that you encounter or provide a fix or enhancement as a PR. External contributions to GridTools require us a signed copy of a copyright release form to ETH Zurich. We will contact you on the PR.

About

Library for generating C and Fortran bindings for C++ functions from C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 71.2%
  • CMake 18.1%
  • Fortran 4.7%
  • Cuda 2.5%
  • C 2.0%
  • Shell 1.5%