Thomas Dowrick, Mian Ahmed, Stephen Thompson, James Hetherington, Jonathan Cooper, Matt Clarkson
{"title":"CMakeCatchTemplate: A C++ template project.","authors":"Thomas Dowrick, Mian Ahmed, Stephen Thompson, James Hetherington, Jonathan Cooper, Matt Clarkson","doi":"10.5334/jors.319","DOIUrl":null,"url":null,"abstract":"<p><p>CMakeCatchTemplate (https://github.com/MattClarkson/CMakeCatchTemplate) is a project to provide a starting structure for C++ projects configured with CMake, that can be customised to work in a variety of scenarios, allowing developers to deploy new algorithms to users in a shorter timeframe. Main features include a SuperBuild to build optional dependencies; unit tests using Catch; support for CUDA, OpenMP and MPI; examples of command line and GUI applications; Doxygen integration; Continuous Integration templates and support for building/deploying Python modules.</p>","PeriodicalId":37323,"journal":{"name":"Journal of Open Research Software","volume":" ","pages":"17"},"PeriodicalIF":0.0000,"publicationDate":"2021-07-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7611564/pdf/","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Open Research Software","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5334/jors.319","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"Social Sciences","Score":null,"Total":0}
引用次数: 0
Abstract
CMakeCatchTemplate (https://github.com/MattClarkson/CMakeCatchTemplate) is a project to provide a starting structure for C++ projects configured with CMake, that can be customised to work in a variety of scenarios, allowing developers to deploy new algorithms to users in a shorter timeframe. Main features include a SuperBuild to build optional dependencies; unit tests using Catch; support for CUDA, OpenMP and MPI; examples of command line and GUI applications; Doxygen integration; Continuous Integration templates and support for building/deploying Python modules.