On 14 October 2020 at 15:56, Joseph Park wrote: | Dear R-devel, | | The Writing R Extensions manual states: | | 6.14 Platform and version information | The header files define USING_R, which can be used to test if the code | is indeed being used with R. | | I suppose this only applies to building R itself? Or, perhaps when Rcpp | is used for the interface, or if one includes R headers explicitly. | | I have a C++ library that is built with no R-dependencies, then wrapped | with an Rcpp interface. This same library is wrapped with pybind11 in | the Python world, and directly used in C++ applications. | | How can the C++ library code "know" that it's R building the library? Is | there a platform-independent environment variable or macro?
So if I have this right you have - a library LIB using only standard C++ components - that you wrapped into a Python package via pybind11, and - that you want to build for R and 'let it know it used for R' Well I think you would then use a (wrapper) R package R_LIB and could set up a -DR_BUILD in the src/Makevars for R_LIB. This presume that you actually recompile LIB as part of the build; if you were to link with a static or shared build then you could not do this _for lack of a subsequent compilation_ and can only rely on run-time information. Hope this helps, and that I didn't misunderstand the question. Dirk -- https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel