diff --git a/R/RcppExports.R b/R/RcppExports.R index ad658f2c..be4bf9be 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -105,3 +105,7 @@ fast_weighted_sample <- function(size, probs) { .Call(`_malariasimulation_fast_weighted_sample`, size, probs) } +individual_headers_version <- function() { + .Call(`_malariasimulation_individual_headers_version`) +} + diff --git a/R/zzz.R b/R/zzz.R new file mode 100644 index 00000000..6859a0c2 --- /dev/null +++ b/R/zzz.R @@ -0,0 +1,13 @@ +.onLoad <- function(libname, pkgname){ + headers_version <- individual_headers_version() + package_version <- as.character(packageVersion("individual")) + if (!identical(package_version, headers_version)) { + warning(sprintf(paste( + "malariasimulation was compiled against version '%s' of the individual,", + "but version '%s' is currently loaded. This is likely to cause,", + "malariasimulation to misbehave. You should re-install", + "malariasimulation. If using devtools, run `devtools::clean_dll` and", + "then load malariasimulation again." + ), headers_version, package_version)) + } +} diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index e2a6b9d6..a4bb281f 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -347,6 +347,16 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// individual_headers_version +std::string individual_headers_version(); +RcppExport SEXP _malariasimulation_individual_headers_version() { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + rcpp_result_gen = Rcpp::wrap(individual_headers_version()); + return rcpp_result_gen; +END_RCPP +} RcppExport SEXP run_testthat_tests(void); @@ -377,6 +387,7 @@ static const R_CallMethodDef CallEntries[] = { {"_malariasimulation_bernoulli_multi_p_cpp", (DL_FUNC) &_malariasimulation_bernoulli_multi_p_cpp, 1}, {"_malariasimulation_bitset_index_cpp", (DL_FUNC) &_malariasimulation_bitset_index_cpp, 2}, {"_malariasimulation_fast_weighted_sample", (DL_FUNC) &_malariasimulation_fast_weighted_sample, 2}, + {"_malariasimulation_individual_headers_version", (DL_FUNC) &_malariasimulation_individual_headers_version, 0}, {"run_testthat_tests", (DL_FUNC) &run_testthat_tests, 0}, {NULL, NULL, 0} }; diff --git a/src/utils.cpp b/src/utils.cpp index bc5162b4..70bddf30 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -62,3 +62,8 @@ Rcpp::IntegerVector fast_weighted_sample( values = values + 1; return values; } + +//[[Rcpp::export]] +std::string individual_headers_version() { + return INDIVIDUAL_VERSION; +}