Skip to content

Commit 8810dd3

Browse files
committed
Include pkg_types.h file in RcppExports.cpp if it's present in inst/include or src
1 parent e47cd95 commit 8810dd3

File tree

4 files changed

+263
-228
lines changed

4 files changed

+263
-228
lines changed

ChangeLog

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
2014-02-03 JJ Allaire <jj@rstudio.org>
2+
3+
* R/Attributes.R: Include pkg_types.h file in RcppExports.cpp
4+
if it's present in inst/include or src
5+
* src/attributes.cpp: Include pkg_types.h file in generated
6+
C++ interface file if it's present in inst/include or src
7+
18
2015-01-25 Kevin Ushey <kevinushey@gmail.com>
29

310
* inst/include/Rcpp/utils/tinyformat.h: define an error handler for

R/Attributes.R

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,15 +380,24 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) {
380380
linkingTo <- .readPkgDescField(pkgDesc, "LinkingTo")
381381
includes <- .linkingToIncludes(linkingTo, TRUE)
382382

383-
# if a master include file is defined for the package then include it
384-
pkgHeader <- paste(pkgname, ".h", sep="")
383+
# if a master include file or types file is in inst/include then use it
384+
typesHeader <- c(paste0(pkgname, "_types.h"), paste0(pkgname, "_types.hpp"))
385+
pkgHeader <- c(paste0(pkgname, ".h"), typesHeader)
385386
pkgHeaderPath <- file.path(pkgdir, "inst", "include", pkgHeader)
386-
if (file.exists(pkgHeaderPath)) {
387+
pkgHeader <- pkgHeader[file.exists(pkgHeaderPath)]
388+
if (length(pkgHeader) > 0) {
387389
pkgInclude <- paste("#include \"../inst/include/",
388390
pkgHeader, "\"", sep="")
389391
includes <- c(pkgInclude, includes)
390392
}
391393

394+
# if a _types file is in src then include it
395+
pkgHeader <- typesHeader
396+
pkgHeaderPath <- file.path(pkgdir, "src", pkgHeader)
397+
pkgHeader <- pkgHeader[file.exists(pkgHeaderPath)]
398+
if (length(pkgHeader) > 0)
399+
includes <- c(paste0("#include \"", pkgHeader ,"\""), includes)
400+
392401
# generate exports
393402
invisible(.Call("compileAttributes", PACKAGE="Rcpp",
394403
pkgdir, pkgname, depends, cppFiles, cppFileBasenames,

0 commit comments

Comments
 (0)