{"id":21974412,"url":"https://github.com/abdes/asap_app_imgui","last_synced_at":"2025-08-21T18:33:03.425Z","repository":{"id":41309027,"uuid":"139165001","full_name":"abdes/asap_app_imgui","owner":"abdes","description":"Starter project for portable app with optional GUI (GLFW/ImGui) and a rich builtin debug UI. Includes docked windows, log viewer, settings editor, configuration load/save, etc...","archived":false,"fork":false,"pushed_at":"2024-05-07T20:22:32.000Z","size":8003,"stargazers_count":138,"open_issues_count":0,"forks_count":31,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-12-13T02:42:22.675Z","etag":null,"topics":["debugging-tools","gui","imgui","portable","starter-project"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abdes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-29T15:20:21.000Z","updated_at":"2024-11-16T11:09:14.000Z","dependencies_parsed_at":"2024-05-07T20:43:39.643Z","dependency_job_id":"0947316c-0e02-4771-a29d-d9c17e559a38","html_url":"https://github.com/abdes/asap_app_imgui","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fasap_app_imgui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fasap_app_imgui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fasap_app_imgui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdes%2Fasap_app_imgui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdes","download_url":"https://codeload.github.com/abdes/asap_app_imgui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230527866,"owners_count":18240051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["debugging-tools","gui","imgui","portable","starter-project"],"created_at":"2024-11-29T15:45:13.881Z","updated_at":"2024-12-20T03:09:17.223Z","avatar_url":"https://github.com/abdes.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImGui Modern C++ and Modern CMake starter project\n\n\u003cdiv align=\"center\"\u003e\n\n-+- Build Status -+-\n\n_develop_\n\n[![Build status - develop][build-status-develop-badge]][build-matrix]\n\n_master_\n\n[![Build status - master][build-status-master-badge]][build-matrix]\n\n-+-\n\n[![Latest release][release-badge]][latest-release]\n[![Commits][last-commit-badge]][commits]\n[![Linux][linux-badge]][latest-release]\n[![Windows][windows-badge]][latest-release]\n[![Mac OS][macos-badge]][latest-release]\n[![License][license-badge]][license]\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#project-documentation\"\u003eProject Documentation\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#Contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#credits\"\u003eCredits\u003c/a\u003e •\n\u003c/p\u003e\n\n## Key Features\n\nThis is a starter project for [ImGui](https://github.com/ocornut/imgui)\ndevelopment in **Modern** C++ (\u003e= c++-17) and with **Modern** `CMake` (\u003e= 3.14)\nbased on the [asap](https://github.com/abdes/asap) template.\n\n![Application Window](doc/_static/app-screenshot.png)\n\n- `CMake` as the build system with or without presets\n- cross-platform portability on Linux, OS X and Windows\n- multiple compilers: clang, g++ and MSVC\n- modular structure with each module self-contained in a subdirectory within the\n  project\n- `CMake` build helpers to facilitate declaration of library, exe, test modules,\n  for the end-to-end lifecycle including doc generation, test, packaging etc...\n- unit testing targets, with by default Google Test as the framework (other\n  frameworks are also possible)\n- code coverage with clang or g++\n- zero-touch valgrind, clang-tidy, clang-format, google sanitizers, etc\n- development can be done locally or in a dev container with vscode\n- faster rebuilds with [`ccache`](https://ccache.dev) compiler caching\n- `CMake` package management with [`CPM`](https://github.com/cpm-cmake/CPM.cmake)\n- ImGui with docking, GLM, GLFW, and an example simple application, so you can\n  get started immediately\n- persistence of ImGui and docks configuration\n\n\u003e _If you miss the old version of this starter project (you can't move to cxx-17 or\nyou just can't bother), it is still in the\n[old_cxx](https://github.com/abdes/asap_app_imgui/tree/old_cxx) branch of this\nrepo._\n\u003e\n\u003e _It is no longer updated though._\n\n## Project Documentation\n\nWe have detailed guides for setting up an efficient development environment, the\ndevelopment process, project structure, etc. Take a look at the available guides\n[here](https://abdes.github.io/asap/asap_master/html/).\n\nIn addition to that, specific documentation for this project, its application\nmodules, its usage and APIs, are provided in the project GitHub Pages site\n[here](https://abdes.github.io/asap_app_imgui/asap_app_imgui_master/html/index.html).\n\n## Getting Started\n\nIt is strongly recommended that you take some time to browse the project\ndocumentation to familiarize yourself with its structure and development\nworkflows.\n\nMake sure you have a C++ compiler with C++-17 capabilities at least. Gnu, Clang\nand MSVC all can do that with a recent version.\n\n```bash\ngit clone --recurse-submodules -j4 https://github.com/abdes/asap_app_imgui.git\n```\n\n```bash\nmkdir _build \u0026\u0026 cd _build \u0026\u0026 cmake .. \u0026\u0026 cmake --build .\n```\n\nor just use one of the predefined `CMake` presets. Detailed instructions are in\nthe project documentation, and many useful commands are listed\n[here](https://abdes.github.io/asap/asap_master/html/getting-started/useful-commands.html).\n\n### Running the demo\n\n1. Run the app from within the build directory (./asap_app)\n2. Drag and drop the frames to dock them to whichever side you want.\n3. Edit the settings as you wish\n4. When the app is closed, the settings, docks, loggers, etc are saved into\n   the .asap directory under the build directory. Some files saved by ImGui\n   are still under the build directory directly (work in progress)\n\nYou need to have a graphics system capable of providing OpenGL 3.2 to properly\nrun the demo.\n\n## CMake configurable build options\n\n```cmake\n# Project options\noption(BUILD_SHARED_LIBS        \"Build shared instead of static libraries.\"              ON)\noption(ASAP_BUILD_TESTS         \"Build tests.\"                                           OFF)\noption(ASAP_BUILD_EXAMPLES      \"Build examples.\"                                        OFF)\noption(ASAP_WITH_GOOGLE_ASAN    \"Instrument code with address sanitizer\"                 OFF)\noption(ASAP_WITH_GOOGLE_UBSAN   \"Instrument code with undefined behavior sanitizer\"      OFF)\noption(ASAP_WITH_GOOGLE_TSAN    \"Instrument code with thread sanitizer\"                  OFF)\noption(ASAP_WITH_VALGRIND       \"Builds targets with valgrind profilers added\"           OFF)\n```\n\n## Contributing\n\nIf you would like to contribute code you can do so through GitHub by forking the\nrepository and sending a pull request. When submitting code, please make every\neffort to follow existing conventions and style in order to keep the code as\nreadable as possible.\n\nBy contributing your code, you agree to license your contribution under the\nterms of the BSD-3-Clause or a more permissive license. All files are released\nwith the BSD-3-Clause license.\n\nRead the [developer guides](https://abdes.github.io/asap/asap_master/html/).\n\n### Submitting a PR\n\n- For every PR there should be an accompanying issue which the PR solves\n- The PR itself should only contain code which is the solution for the given\n  issue\n- If you are a first time contributor check if there is a suitable issue for you\n\n## Getting updates from upstream [`asap`](https://github.com/abdes/asap)\n\nIn order to pull and merge updates from the upstream project, make sure to add\nit to the repo's remotes and disable pulling/merging tags from the upstream. We\nwant tags to be limited to those made in this repo, not in the upstream.\n\n```bash\ngit remote add upstream https://github.com/abdes/asap.git\ngit config remote.upstream.tagopt --no-tags\n```\n\n## Credits\n\n- The multitude of other open-source projects used to implement this project or\n  to get inspiration - credits in the source code or the documentation as\n  appropriate\n\n[build-matrix]: https://github.com/abdes/asap_app_imgui/actions/workflows/cmake-build.yml\n[build-status-develop-badge]: https://github.com/abdes/asap_app_imgui/actions/workflows/cmake-build.yml/badge.svg?branch=develop\n[build-status-master-badge]: https://github.com/abdes/asap_app_imgui/actions/workflows/cmake-build.yml/badge.svg?branch=master\n[commits]: https://github.com/abdes/asap_app_imgui/commits\n[last-commit-badge]: https://img.shields.io/github/last-commit/abdes/asap_app_imgui\n[latest-release]: https://github.com/abdes/asap_app_imgui/releases/latest\n[license-badge]: https://img.shields.io/github/license/abdes/asap_app_imgui\n[license]: https://opensource.org/licenses/BSD-3-Clause\n[linux-badge]: https://img.shields.io/badge/OS-linux-blue\n[macos-badge]: https://img.shields.io/badge/OS-macOS-blue\n[release-badge]: https://img.shields.io/github/v/release/abdes/asap_app_imgui\n[windows-badge]: https://img.shields.io/badge/OS-windows-blue\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdes%2Fasap_app_imgui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdes%2Fasap_app_imgui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdes%2Fasap_app_imgui/lists"}