Static igraph libraries for R packages
| Environment | Status |
|---|---|
| BioC-release | |
| BioC-devel |
Builds the igraph static library for use in R/Bioconductor packages. This is primarily intended for R packages that wrap other C/C++ libraries that depend on the igraph C library and cannot easily be modified to use the usual igraph R package. By vendoring in the source code, we reduce our susceptibility to out-of-release-schedule changes in results due to igraph updates. It also allows developers to access functionality that might yet not be available from the R bindings.
For downstream package developers, use of Rigraphlib is as simple as adding:
to the DESCRIPTION, and setting:
RIGRAPH_FLAGS=$(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e 'Rigraphlib::pkgconfig("PKG_CPPFLAGS")') PKG_CPPFLAGS=$(RIGRAPH_FLAGS) RIGRAPH_LIBS=$(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e 'Rigraphlib::pkgconfig("PKG_LIBS")') PKG_LIBS=$(RIGRAPH_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
in the src/Makevars.
We use R's own BLAS and LAPACK libraries to avoid redundant recompilation of igraph's vendored copies.
We can update the vendored copy of the source code by running tools/igraph_download.sh.