| Title: | Bindings for the Visualization Toolkit ('VTK') |
|---|---|
| Description: | Provides pre-compiled static 'VTK' libraries and headers so that downstream R packages can link against the Visualization Toolkit without requiring users to install 'VTK' manually. On all platforms the package first honours a user-supplied 'VTK_DIR' environment variable. On macOS it then tries 'Homebrew', followed by 'pkg-config'. On Linux it tries 'pkg-config' and well-known system prefixes ('/usr', '/usr/local'). If no suitable system installation is found on macOS or Linux, pre-built static libraries are downloaded automatically from the package's GitHub releases. On Windows the package tries 'VTK_DIR', then 'Rtools45' 'pacman', then common 'MSYS2' prefixes, accepting both static ('.a') and shared ('.dll.a' import libs + DLLs) installations. When shared libraries are used, the VTK DLLs are staged in 'inst/vtk-dlls/' and an '.onLoad' hook prepends that directory to PATH via 'Sys.setenv()' when the package is loaded, and restored in '.onUnload()'. The pre-built fallback downloads static libraries by default; set 'VTK_LINK_TYPE=shared' before installation to download the DLL build instead. Note that on Windows the modules 'VTK_IONetCDF', 'VTK_IOHDF', 'VTK_GeovisCore', and 'VTK_RenderingCore' are disabled because 'netcdf' and 'libproj' are not available in the 'Rtools45' 'static.posix' sysroot. Downstream packages can declare 'Imports: rvtk' and obtain the correct compiler and linker flags at install time via rvtk::CppFlags() and rvtk::LdFlagsFile(). |
| Authors: | Aymeric Stamm [aut, cre] (ORCID: <https://orcid.org/0000-0002-8725-3654>) |
| Maintainer: | Aymeric Stamm <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.3 |
| Built: | 2026-05-11 10:51:30 UTC |
| Source: | https://github.com/cran/rvtk |
Returns the C pre-processor flags (-I paths) required to compile C++ code
that includes VTK headers. Intended to be called from a downstream
package's configure or configure.win script:
CppFlags()CppFlags()
VTK_CPPFLAGS="$("${R_HOME}/bin/Rscript" --vanilla -e "rvtk::CppFlags()")"
A single character string of compiler flags, written to stdout (so
that it can be captured by shell command substitution in configure) and
returned invisibly.
flags <- CppFlags()flags <- CppFlags()
Returns the linker flags (-L paths and -l library names) required to
link C++ code against VTK. Intended to be called from a downstream
package's configure or configure.win script:
LdFlags()LdFlags()
VTK_LIBS="$("${R_HOME}/bin/Rscript" --vanilla -e "rvtk::LdFlags()")"
On Windows the full set of VTK linker flags can exceed the 8 191-character
command-line limit. Prefer LdFlagsFile() on Windows to write the flags
to a response file instead.
A single character string of linker flags, written to stdout (so
that it can be captured by shell command substitution in configure) and
returned invisibly.
flags <- LdFlags()flags <- LdFlags()
On Windows the full set of VTK linker flags can exceed the 8 191-character
Windows command-line limit, causing the linker to drop flags at the end of
the list. This function writes the flags to a plain-text response file that
the linker reads via the @file syntax, keeping the command line short.
LdFlagsFile(path, os_type = .Platform$OS.type)LdFlagsFile(path, os_type = .Platform$OS.type)
path |
Path (relative to the package source root, i.e. where
|
os_type |
A string identifying the operating-system type, defaulting to
|
Intended to be called from a downstream package's configure or
configure.win script:
VTK_LIBS="$("${R_HOME}/bin/Rscript" --vanilla -e \
"rvtk::LdFlagsFile('src/vtk_libs.rsp')")"
# VTK_LIBS is now the short string "@src/vtk_libs.rsp" on Windows,
# or the raw flags on macOS/Linux.
On Windows the flags are written to path and the function returns the
@basename(path) token for the linker. On macOS and Linux, ld does not
reliably support @file response files at the compiler-driver level, so
no file is written and the raw flags are returned directly.
Invisibly, the string to embed in configure (either
@basename(path) on Windows or the raw flags on other platforms). The
string is also written to stdout so that shell command substitution
captures it.
rsp <- file.path(tempdir(), "vtk_libs.rsp") ref <- LdFlagsFile(rsp)rsp <- file.path(tempdir(), "vtk_libs.rsp") ref <- LdFlagsFile(rsp)
VTK version used by this package
VtkVersion()VtkVersion()
A character string with the VTK version, e.g. "9.3.1".
VtkVersion()VtkVersion()