Kişisel olarak aşağıdaki kodu, tüm komut dosyalarımda çağırdığım "dataManagement" paketinde kullanıyorum. Roxygen belgelerine ve örneklerine sahiptir. Aslında basitçe document () işlevini çağırırsınız ve doxygen'in src / içinde C kodunda çalıştırılmasını sağlarsınız. Belge, inst / doxygen'e yerleştirilir, böylece paketiniz CRAN için hazırdır.
R son kullanıcıları için tasarlanan R dokümantasyonu , C koduna bakmamalı. C kodu dokümantasyonunu klasik R dokümantasyonuna entegre etmedim, ancak sonuçta ortaya çıkan C dokümantasyonunu bir "vinyet" olarak kopyalamak muhtemelen iyi bir uygulama olacaktır. .
library("testthat")
library("devtools")
ReplaceTag <- function(fileStrings,tag,newVal){
iLine <- grep(paste0("^",tag,"\\>"),fileStrings)
nLines <- length(iLine)
if(nLines == 0){
line <- paste0(tag,"\t= ",newVal)
iLine <- length(fileStrings)+1
}else if (nLines > 0){
line <- gsub("=.*",paste0("= ",newVal),fileStrings[iLine])
if(nLines >1){
warning(paste0("File has",nLines,"for key",tag,"check it up manually"))
}
}
fileStrings[iLine] <- line
return(fileStrings)
}
DoxInit <- function(rootFolder="."){
doxyFileName <- "Doxyfile"
initFolder <- getwd()
if(rootFolder != "."){
setwd(rootFolder)
}
rootFileYes <- length(grep("DESCRIPTION",dir()))>0
doxDir <- "inst/doxygen"
if(!file.exists(doxDir)){
dir.create(doxDir,recursive=TRUE)
}
setwd(doxDir)
system(paste0("doxygen -g ",doxyFileName))
doxyfile <- readLines("Doxyfile")
doxyfile <- ReplaceTag(doxyfile,"EXTRACT_ALL","YES")
doxyfile <- ReplaceTag(doxyfile,"INPUT","src/")
doxyfile <- ReplaceTag(doxyfile,"OUTPUT_DIRECTORY","inst/doxygen/")
cat(doxyfile,file=doxyFileName,sep="\n")
setwd(initFolder)
return(NULL)
}
document <- function(doxygen=file.exists("src")){
if(doxygen){
doxyFileName<-"inst/doxygen/Doxyfile"
if(!file.exists(doxyFileName)){
DoxInit()
}
system(paste("doxygen",doxyFileName))
}
devtools::document()
}