About this project ================== The RobotPy project maintains Python wrappers around many different C++ libraries to allow its users to use Python for the FIRST Robotics Competition. It was much too work to create/maintain handwritten wrappers around these libraries, and other tools in the python ecosystem did not meet our needs. robotpy-build was created to automate large parts of the work required to maintain these wrappers. If you have this problem too, we hope that robotpy-build will be useful for you as well. Goals ----- A primary goal of robotpy-build is to make it really simple to define and build python wrappers for C++ code using pybind11. To make that possible, it also bundles these capabilities: * Manages native/binary C/C++ dependencies via pypi compatible packages * Autogenerate python wrappers around the native code by parsing C++ header files, including those that contain modern C++ features * Support extensive customization of the wrappers when the autogeneration fails * Builds normal python wheels from the generated and handwritten code that can be installed by pip and imported as a normal python package * robotpy-build projects can depend on native/binary libraries installed by other robotpy-build projects robotpy-build is intended to be a generally useful tool for any python project that has C/C++ dependencies. If you find that isn't the case, please report a bug on github. Non-goals --------- * robotpy-build built wheels do not currently conform to the manylinux specification as it prohibits dependencies outside of the wheel * We don't intend to build wrappers around libraries installed on your system