On 18 July 2012 at 17:13, Vaclav Petras wrote: | Hello, | | how should be an include path for a plugin created by | Rcpp:::Rcpp.plugin.maker specified? | | I'm using a library which is not in the standard path. I'm able to | specify -Wl,-rpath and -L options but I don't know where -I should be | specified. | | As an example I used the GSL example from Rcpp-FAQ. GSL headers are in | standard path so everything works. But if I modify this example to use | gsl_rng.h instead of gsl/gsl_rng.h it is necessary to set
Why? Every GSL example uses #include <gsl/somefile.h> and it is standard to specify it with directory/filename. Many libraries (eg Boost) do the same. | -I/usr/include/gsl somewhere. Only thing which worked for me is: | | Sys.setenv(PKG_CXXFLAGS="-I/usr/include/gsl/") | | export CXXFLAGS or PKG_CXXFLAGS in command line (and than running | Rscript) or using Makefile="-I/usr/include/gsl/" (plugin.maker param) | didn't helped. I also tried | myplugin$env$PKG_CXXFLAGS <- "-I/usr/include/gsl/" | but I got some R errors. | | My platform is GNU/Linux, dist. Ubuntu 10.04. Many of us develop on that platform. "It just works." | Now I'm trying compile simple function only but in the future I want | to build some R package too, so I'm asking if there can be problem | with this also in this case (I didn't studied documentation for | building packages yet). | | I think that some parameter is missing in the interface | (Rcpp.plugin.maker) or that the documentation is not complete (or I'm | just missing something of course). Yes, I think you just confused yourself. For _truly new libraries_ and non-standard locations, you may have to use a combination of autoconf / configure to specify what goes into the plugin maker. But for something as common as the GSL, this not an issue. If I misunderstood your question and you are wondering how to generally modify the plugin components: you probably want to look at the code in the inline package, as well as for the R commands. As I recall, every variable set in the plugin environment gets passed on before system() is called. So you could try PKG_CFLAGS etc as documented for R CMD INSTALL et al. Dirk | | Thanks for help, | Vaclav | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel