Automatically install the OOP C++ header#379
Conversation
|
Looks good to me.
|
No, not needed. Everything is being checked in the CI. So it was more whether or not you agree with the concept.
I believe (if I recall correctly) that this discussion was RE the Fortran side. |
|
Note that the C++ header was installed in the past, but I decided to no longer do that in commit addf958. See the commit for a better way to install it. However, every interface that we decide to support adds a lot of maintenance burden to us and SemVer restricts us in ways in which we can change it. As far as I can remember we bent the rules quite a bit with C++ and thus I would refrain from calling it an official API, which are C, Python and Rust. C++ and Fortran are wrappers, both of which use the C interface. We can change the wrappers anytime we want and in any way we see fit, because we assume the people using the wrappers copy them to their source tree. I think this is a good practice and I would keep it that way. |
|
Sorry @cschwan for the very late reply, things have been very busy lately.
Yes, that's correct. However, in this sense it is at the same as the Python API whereby we also quite strongly bend the rules in major versions. But in overall I agree with your argument and so I'll close this. |
So far, the OOP C++ header had to be copied manually into where the C header is located or within the project. This allows one to specify a
PINEAPPL_C_INSTALL_PREFIXenvironment variable so that the header is automatically copied at build time. The release workflow has also been adjusted so that this is automatically installed when copying the pre-built binaries:curl --proto ... | sh -s -- --prefix /my/custom/installation/pathTO DO: