R/plugin.R

Defines functions inlineCxxPlugin .microsimulationLdFlags

Documented in inlineCxxPlugin .microsimulationLdFlags

#' Internal function
#'
#' @rdname Utilities
.microsimulationLdFlags <- function(){
    paste( '-L"', system.file( "lib", package = "microsimulation" ), '" -lmicrosimulation',
          sep = "" )
}

#' Code to use the microsimulation package inline
#' @param ... arguments
#' @rdname Utilities
#' @export
inlineCxxPlugin <- function(...) {
    ismacos <- Sys.info()[["sysname"]] == "Darwin"
    openmpflag <- if (ismacos) "" else "$(SHLIB_OPENMP_CFLAGS)"
    plugin <- Rcpp::Rcpp.plugin.maker(include.before = "#include <microsimulation.h>",
                                      libs           = paste(openmpflag,
                                                             .microsimulationLdFlags(),
                                                             "$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)"),
                                      package        = "microsimulation")
    settings <- plugin()
    settings$env$PKG_CPPFLAGS <- paste("-I../inst/include", openmpflag)
    ## if (!ismacos) settings$env$USE_CXX11 <- "yes"
    settings
}

Try the microsimulation package in your browser

Any scripts or data that you put into this service are public.

microsimulation documentation built on July 26, 2023, 6:10 p.m.