File: inline.R

package info (click to toggle)
rcpp 1.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,480 kB
  • sloc: cpp: 27,436; ansic: 7,778; sh: 53; makefile: 2
file content (57 lines) | stat: -rw-r--r-- 1,982 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Copyright (C) 2009 - 2017  Dirk Eddelbuettel and Romain Francois
#
# This file is part of Rcpp.
#
# Rcpp is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Rcpp is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.

Rcpp.plugin.maker <- function(include.before = "",
                              include.after = "",
                              LinkingTo     = unique(c(package, "Rcpp")),
                              Depends       = unique(c(package, "Rcpp")),
                              Imports       = unique(c(package, "Rcpp")),
                              libs          = "",
                              Makevars      = NULL ,
                              Makevars.win  = NULL,
                              package       = "Rcpp") {
    function(...) {
        includes <- sprintf("%s
#include <Rcpp.h>
%s

#ifndef BEGIN_RCPP
#define BEGIN_RCPP
#endif

#ifndef END_RCPP
#define END_RCPP
#endif

using namespace Rcpp;", include.before, include.after)

        out <- list(env = list( PKG_LIBS = libs ),
                    includes = includes,
                    LinkingTo = LinkingTo ,
                    body = function( x ) {
                        sprintf( "BEGIN_RCPP\n%s\nEND_RCPP", x )
                    },
                    Depends = Depends,
                    Imports = Imports)
	if (!is.null(Makevars))     out$Makevars <- Makevars
  	if (!is.null(Makevars.win)) out$Makevars.win <- Makevars.win
  	out
    }
}

inlineCxxPlugin <- Rcpp.plugin.maker()