
R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> ## This is only for RxODE
> for (f in c("inst/include/RxODE_RcppExports.h", "src/RcppExports.cpp")) {
+   l <- readLines(f)
+   w <- which(regexpr("^[#]include <RcppArmadillo.h>", l) != -1)
+   if (length(w) == 1) {
+     l <- l[-w]
+     message("Excluding RcppArmadillo from", f)
+     unlink(f)
+     file.out <- file(f, "wb")
+     writeLines(l, file.out)
+     close(file.out)
+   }
+ }
> 
> .in <- suppressWarnings(readLines("src/Makevars.in"))
> .in <- gsub("@ARMA@", file.path(find.package("RcppArmadillo"),"include"), .in)
> .in <- gsub("@BH@", file.path(find.package("BH"),"include"), .in)
> .in <- gsub("@RCPP@", file.path(find.package("Rcpp"),"include"), .in)
> .in <- gsub("@EG@", file.path(find.package("RcppEigen"),"include"), .in)
> 
> .badStan <- ""
> .in <- gsub("@SH@", gsub("-I", "-@ISYSTEM@",
+                          paste(## capture.output(StanHeaders:::CxxFlags()),
+                                ## capture.output(RcppParallel:::CxxFlags()),
+                                paste0("-@ISYSTEM@'", system.file('include', 'src', package = 'StanHeaders', mustWork = TRUE), "'"),
+                                .badStan)),
+             .in)
> 
> .in <- gsub("@SL@", "", ##paste(capture.output(StanHeaders:::LdFlags()), capture.output(RcppParallel:::RcppParallelLibs())),
+             .in)
> 
> if (.Platform$OS.type == "windows" && !file.exists("src/Makevars.win")) {
+   .in <- gsub("@CXX14STD@", "-std=c++1y", .in)
+   file.out <- file("src/Makevars.win", "wb")
+   writeLines(gsub("@ISYSTEM@", "I", .in),
+              file.out)
+   close(file.out)
+ } else {
+   .in <- gsub("@CXX14STD@", "-std=gnu++14", .in)
+   file.out <- file("src/Makevars", "wb")
+   writeLines(gsub("@ISYSTEM@", "isystem", .in),
+              file.out)
+   close(file.out)
+ }
> 
> if (file.exists("man/reexports.Rd")) {
+   l <- readLines("man/reexports.Rd")
+   if (!any(regexpr("[\\]value", l) != -1)) {
+     l <- c(l, "\\value{ Inherited from parent routine }")
+     file.out <- file("man/reexports.Rd", "wb")
+     writeLines(l, file.out)
+     close(file.out)
+   }
+ }
> 
> 
> unlink("R/RxODE_md5.R")
> 
> cpp <- list.files("src", pattern = ".(c|h|cpp|f)$")
> include <- list.files("inst/include")
> Rfiles <- list.files("R/", pattern = ".R")
> md5 <- digest::digest(lapply(c(paste0("src/", cpp),
+                                paste0("inst/include/", include),
+                                paste0("R/", Rfiles)), digest::digest, file = TRUE))
> unlink("R/RxODE_md5.R")
> md5file <- file("R/RxODE_md5.R", "wb")
> writeLines(sprintf("RxODE.md5 <- \"%s\"\n", md5), md5file)
> close(md5file)
> 
> l <- readLines("DESCRIPTION")
> w <- which(regexpr("Version[:] *(.*)$", l) != -1)
> v <- gsub("Version[:] *(.*)$", "\\1", l[w])
> 
> unlink("src/ode.h")
> ode.h <- file("src/ode.h", "wb")
> writeLines(c(sprintf("#define __VER_md5__ \"%s\"", md5),
+              "#define __VER_repo__ \"https://github.com/nlmixrdevelopment/RxODE\"",
+              sprintf("#define __VER_ver__ \"%s\"", v)),
+            ode.h)
> close(ode.h)
> 
> unlink("src/codegen2.h")
> l <- readLines("inst/include/RxODE_model_shared.c")
> 
> l <- l[l != ""]
> l <- gsub(" *= *NULL;", "=NULL;", l)
> 
> def <- l
> w <- which(regexpr("double _prod", def) != -1) - 1
> def <- def[1:w]
> def <- gsub("=NULL", "", def)
> def <- gsub("[^ ]* *[*]?([^;]*);", "\\1", def)
> 
> def <- unique(c(def, c("_sum", "_sign", "_prod", "_max", "_min", "_transit4P", "_transit3P", "_assignFuns0", "_assignFuns", "_getRxSolve_", "_solveData")))
> 
> ## deparse1 came from R 4.0, use deparse2
> deparse2 <- function (expr, collapse = " ", width.cutoff = 500L, ...) {
+   paste(deparse(expr, width.cutoff, ...), collapse = collapse)
+ }
> 
> final <- c("#include <time.h>",
+            "#include <stdlib.h>",
+            "unsigned long int __timeId=0;",
+            "void writeHeader(const char *md5, const char *extra) {",
+            paste0("sAppend(&sbOut, \"#define ", def, " _rx%s%s%ld\\n\", extra, md5, __timeId++);"),
+            "}",
+            "void writeBody() {",
+            paste0("sAppendN(&sbOut, ", vapply(paste0(l, "\n"), deparse2, character(1)), ", ", nchar(l) + 1, ");"),
+            "}",
+            "void writeFooter() {",
+            paste0("sAppendN(&sbOut, \"#undef ", def, "\\n\", ", nchar(def) + 8, ");"),
+            "}"
+            )
> 
> codegen2.h <- file("src/codegen2.h", "wb")
> writeLines(final,
+            codegen2.h)
> close(codegen2.h)
> 
> proc.time()
   user  system elapsed 
   0.20    0.09    0.31 
