Rigraphlib 1.3.2
Rigraphlib 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 also reduce our susceptibility to out-of-release-schedule changes in results due to igraph updates. This also allows developers to access functionality that might yet not be available from the R bindings.
Currently, this package contains version 1.0.0 of the C igraph library.
Downstream package developers can use Rigraphlib by adding:
Imports: Rigraphlib
to their package 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 their src/Makevars.
We use R’s own BLAS and LAPACK libraries to avoid redundant recompilation of igraph’s vendored copies.
If the RIGRAPHLIB_PKG_CPPFLAGS environment is set, its contents will be printed by pkgconfig("PKG_CPPFLAGS").
Similarly, if the RIGRAPHLIB_PKG_LIBS environment is set, its contents will be printed by pkgconfig("PKG_LIBS").
These take precedence over any other options or environment variables.
If the RIGRAPHLIB_USE_SYSTEM_LIBRARY environment variable is set to 1 during or after installation of Rigraphlib,
pkgconfig() will instead call pkg-config igraph to link to the system igraph installation.
In addition, if this environment variable is set during Rigraphlib installation,
the vendored source code will not be compiled unless the RIGRAPHLIB_FORCE_BUILD environment variable is set to 1.
In both cases, the version of igraph referenced by any custom flags should be consistent with the version of the vendored igraph source. This ensures that downstream packages based on Rigraphlib will build and run as expected.
sessionInfo()
## R Under development (unstable) (2025-10-20 r88955)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 LTS
##
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.23-bioc/R/lib/libRblas.so
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0 LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_GB LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: America/New_York
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_1.50 BiocStyle_2.39.0
##
## loaded via a namespace (and not attached):
## [1] digest_0.6.39 R6_2.6.1 bookdown_0.46
## [4] fastmap_1.2.0 xfun_0.54 cachem_1.1.0
## [7] htmltools_0.5.9 rmarkdown_2.30 lifecycle_1.0.4
## [10] cli_3.6.5 sass_0.4.10 jquerylib_0.1.4
## [13] compiler_4.6.0 tools_4.6.0 evaluate_1.0.5
## [16] bslib_0.9.0 yaml_2.3.11 BiocManager_1.30.27
## [19] Rigraphlib_1.3.2 jsonlite_2.0.0 rlang_1.1.6