{"id":24327897,"url":"https://github.com/temken/template_cpp_cmake_obscura","last_synced_at":"2026-03-17T04:39:56.264Z","repository":{"id":55190329,"uuid":"263318411","full_name":"temken/template_cpp_cmake_obscura","owner":"temken","description":"A template for c++ projects which import obscura and libphysica, set up with cmake, travis CI, googletest, and codecov. ","archived":false,"fork":false,"pushed_at":"2023-03-21T12:14:03.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T16:39:11.836Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temken.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-12T11:33:29.000Z","updated_at":"2021-10-29T13:24:02.000Z","dependencies_parsed_at":"2025-03-11T07:32:12.982Z","dependency_job_id":"38f14ec3-7094-4c5e-9170-5cef8b1a5204","html_url":"https://github.com/temken/template_cpp_cmake_obscura","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":"temken/template_cpp_cmake_libphysica","purl":"pkg:github/temken/template_cpp_cmake_obscura","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temken%2Ftemplate_cpp_cmake_obscura","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temken%2Ftemplate_cpp_cmake_obscura/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temken%2Ftemplate_cpp_cmake_obscura/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temken%2Ftemplate_cpp_cmake_obscura/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temken","download_url":"https://codeload.github.com/temken/template_cpp_cmake_obscura/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temken%2Ftemplate_cpp_cmake_obscura/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30610455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T23:44:20.790Z","status":"online","status_checked_at":"2026-03-17T02:00:07.764Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-17T22:17:56.198Z","updated_at":"2026-03-17T04:39:56.230Z","avatar_url":"https://github.com/temken.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/temken/template_cpp_cmake_obscura/workflows/Build%20Status/badge.svg)](https://github.com/temken/template_cpp_cmake_obscura/actions)\n[![codecov](https://codecov.io/gh/temken/template_cpp_cmake_obscura/branch/main/graph/badge.svg)](https://codecov.io/gh/temken/template_cpp_cmake_obscura)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n# SOFTWARETITLE\n\n\u003c!-- \u003ca href=\"https://ascl.net/xxxx.xxx\"\u003e\u003cimg src=\"https://img.shields.io/badge/ascl-xxxx.xxx-blue.svg?colorB=262255\" alt=\"ascl:xxxx.xxx\" /\u003e\u003c/a\u003e --\u003e\n\u003c!-- [![DOI](https://zenodo.org/badge/xxx.svg)](https://zenodo.org/badge/latestdoi/xxx) --\u003e\n\u003c!-- [![arXiv](https://img.shields.io/badge/arXiv-xxxx.xxxxx-B31B1B.svg)](https://arxiv.org/abs/xxxx.xxxxx) --\u003e\n\n\n\u003c!-- Image:\n\u003cimg width=\"350\" src=\"url\"\u003e --\u003e\n\nA template for C++ projects using [obscura](https://github.com/temken/obscura).\n\n## General notes\n\n- build with [CMake](https://cmake.org/)\n- continuous integration with [Github Actions](https://github.com/actions)\n- unit testing with [googletest](https://github.com/google/googletest)\n- code coverage with [codecov](https://codecov.io/).\n- imports the static library [obscura](https://github.com/temken/obscura) and thereby also [libphysica](https://github.com/temken/libphysica)\n\n\u003cdetails\u003e\u003csummary\u003eRepository content\u003c/summary\u003e\n\u003cp\u003e\n\nThe included folders are:\n\n- *bin/*: This folder contains the executable after successful installation together with the configuration files.\n- *data/*: Contains additional data necessary for the simulations, e.g. the solar model tables.\n- *external/*: This folder will only be created and filled during the build with CMake and will contain the [obscura](https://github.com/temken/obscura) library necessary for all direct detection computations.\n- *include/*: All header files of SOFTWARETITLE can be found here.\n- *results/*: Each run of SOFTWARETITLE generates result files in a dedicated sub-folder named after the run's simulation ID string, which is specified in the configuration file.\n- *src/*: Here you find the source code of SOFTWARETITLE.\n- *tests/*: All code and executable files of the unit tests are stored here.\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\n## Getting started\n\n\u003cdetails\u003e\u003csummary\u003e1. Dependencies\u003c/summary\u003e\n\u003cp\u003e\n\nBefore we can install SOFTWARENAME, we need to make sure that a few dependencies are taken care of.\n\n- [CMake](https://cmake.org/): SOFTWARENAME as well as the libraries libphysica and obscura are built with CMake.\n- [boost](https://www.boost.org/): For numerical integration (used by libphysica).\n- [libconfig](https://github.com/hyperrealm/libconfig): For the configuration files, SOFTWARENAME uses the libconfig library (required version at least 1.6). This will be installed by libphysica, if it is not already installed.\n- [libphysica](https://github.com/temken/libphysica): Automatically downloaded to */external/obscura/external/*, compiled, and linked by CMake.\n- [obscura](https://github.com/temken/obscura): Automatically downloaded to */external/*, compiled, and linked by CMake.\n\n\n\u003cdetails\u003e\u003csummary\u003eInstallation of boost\u003c/summary\u003e\n\u003cp\u003e\n\n```\n\u003ebrew install boost\n```\n\nor alternatively with APT:\n\n```\n\u003esudo apt-get install libboost-all-dev\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eInstallation of libconfig\u003c/summary\u003e\n\u003cp\u003e\nThis installation is optional, since `libphysica` will install it automatically, if it is not available.\n\nOn Macs, it can be on installed using [homebrew](https://brew.sh/)\n\n```\n\u003ebrew install libconfig\n```\n\nor using APT on Linux machines\n\n```\n\u003esudo apt-get update -y\n\u003esudo apt-get install -y libconfig-dev\n```\n\nAlternatively, it can be built from the source files via\n\n```\n\u003ewget https://hyperrealm.github.io/libconfig/dist/libconfig-1.7.2.tar.gz\n\u003etar -xvzf libconfig-1.7.2.tar.gz\n\u003epushd libconfig-1.7.2\n\u003e./configure\n\u003emake\n\u003esudo make install\n\u003epopd\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e2. Downlad \u0026 Installation\u003c/summary\u003e\n\u003cp\u003e\nThe SOFTWARENAME source code can be downloaded by cloning this git repository:\n\n```\n\u003egit clone https://github.com/temken/SOFTWARENAME.git \n\u003ecd SOFTWARENAME\n```\n\nThe code is compiled and the executable is created using CMake.\n\n```\n\u003ecmake -E make_directory build\n\u003ecd build\n\u003ecmake -DCMAKE_BUILD_TYPE=Release -DCODE_COVERAGE=OFF ..\n\u003ecmake --build . --config Release\n\u003ecmake --install .\n```\n\nIf everything worked well, there should be the executable *SOFTWARENAME* in the */bin/* folder.\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e3. Usage\u003c/summary\u003e\n\u003cp\u003e\nOnce SOFTWARENAME is installed, it can run by running the following command from the */bin/* folder:\n\n```\n\u003e./SOFTWARENAME config.cfg\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Version History\n\n- xx.xx.20xx: Release of version 0.1.0\n\n## Everything else\n\n\u003cdetails\u003e\u003csummary\u003eCiting SOFTWARENAME\u003c/summary\u003e\n\u003cp\u003e\n\nIf you decide to use this code, please cite the latest archived version,\n\n\u003e Emken, T., 20xx, SOFTWARENAME [Code, v0.1.0], Astrophysics Source Code Library, record [[ascl:xxxx.xxx]](https://ascl.net/xxxx.xxx), [[DOI:10.5281/zenodo.xxxxxxx]](https://doi.org/10.5281/zenodo.xxxxxxx)\n\nBibtex entry:\n\n```\n@software{SOFTWARENAME,\n  author = {Emken, Timon},\n  title = {{SOFTWARENAME [Code, v0.1.0]}},\n  year         = {20xx},\n  publisher    = {Zenodo},\n  version      = {v0.1.0},\n  doi          = {DOI:10.5281/zenodo.xxxxxxx},\n  url          = {https://doi.org/10.5281/zenodo.xxxxxxx},\n  howpublished={Astrophysics Source Code Library record \\href{https://ascl.net/xxxx.xxx}{[ascl:xxxx.xxx]}. The code can be found under \\url{https://github.com/temken/SOFTWARENAME}. Version 0.1.1 is archived as \\href{https://doi.org/10.5281/zenodo.xxxxxxx}{DOI:10.5281/zenodo.5957388}}\n}\n```\n\n\u003c!-- As well as the original publications,\n\n\u003e authors , year,  **title**, [[arXiv:xxxx.xxxxx]](https://arxiv.org/abs/xxxx.xxxxx). --\u003e\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eAuthor \u0026 Contact\u003c/summary\u003e\n\u003cp\u003e\n\nThe author of SOFTWARENAME is Timon Emken.\n\nFor questions, bug reports or other suggestions please open an [issue](https://github.com/temken/SOFTWARENAME/issues).\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eLicense\u003c/summary\u003e\n\u003cp\u003e\n\nThis project is licensed under the MIT License - see the LICENSE file.\n\n\u003c/p\u003e\n\u003c/details\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemken%2Ftemplate_cpp_cmake_obscura","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemken%2Ftemplate_cpp_cmake_obscura","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemken%2Ftemplate_cpp_cmake_obscura/lists"}