{"id":27026753,"url":"https://github.com/tuokri/dppcmaketemplate","last_synced_at":"2026-07-17T20:38:27.669Z","repository":{"id":286188461,"uuid":"960072550","full_name":"tuokri/DPPCMakeTemplate","owner":"tuokri","description":"Unofficial D++ CMake template for Windows and Visual Studio Code.","archived":false,"fork":false,"pushed_at":"2026-07-05T10:04:40.000Z","size":154,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-07-05T11:07:59.481Z","etag":null,"topics":["cmake","cpp","discord-bot","discord-bot-template","dpp","vcpkg","visual-studio-code","vscode"],"latest_commit_sha":null,"homepage":"","language":"C++","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/tuokri.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-03T20:15:09.000Z","updated_at":"2026-07-05T10:02:42.000Z","dependencies_parsed_at":"2025-05-27T15:38:54.538Z","dependency_job_id":"59833cb6-4139-41c0-896a-a569937ba543","html_url":"https://github.com/tuokri/DPPCMakeTemplate","commit_stats":null,"previous_names":["tuokri/dppcmaketemplate"],"tags_count":7,"template":true,"template_full_name":null,"purl":"pkg:github/tuokri/DPPCMakeTemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuokri%2FDPPCMakeTemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuokri%2FDPPCMakeTemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuokri%2FDPPCMakeTemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuokri%2FDPPCMakeTemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tuokri","download_url":"https://codeload.github.com/tuokri/DPPCMakeTemplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tuokri%2FDPPCMakeTemplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35595639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"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":["cmake","cpp","discord-bot","discord-bot-template","dpp","vcpkg","visual-studio-code","vscode"],"created_at":"2025-04-04T23:15:42.880Z","updated_at":"2026-07-17T20:38:27.641Z","avatar_url":"https://github.com/tuokri.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unofficial D++ CMake Template for Windows \u0026 VS Code\n\nThis is an unofficial sample repository to get started quickly on writing Discord bots\nwith C++ on Windows, with Visual Studio Code and CMake (technically, nothing is\nstopping you from also using this on Linux, but Linux is omitted for\nthe sake of brevity).\n\nThe D++ library is included as a Git submodule and vcpkg (also a submodule)\nis used to manage other dependencies.\n\nCMake configure and build presets are defined in\n[CMakePresets.json](./CMakePresets.json). You can use it as an example\nto customize the builds.\n\nThere are multiple ways to achieve the same result, but this template is based\non my opinionated way of doing C++ development.\n\n## Quickstart\n\nTo get started with Visual Studio Code on Windows with this template,\nwatch this quickstart video:\n\n[![DPPCMakeTemplate quickstart YouTube video](https://img.youtube.com/vi/XEZwtNvI84Y/0.jpg)](https://www.youtube.com/watch?v=XEZwtNvI84Y)\n\n## Prerequisites\n\n### Install Visual Studio 2022\n\nVS 2022 is needed for the build tools even though you do not need to use it for\nactual development. Make sure you have at least the \"Desktop Development with C++\"\nand \"C++ CMake tools for Windows\" workloads and components installed.\n\n![VS2022 Desktop Development with C++ workload](./resources/vs_installer_desktop_cpp.png)\n\n![VS2022 CMake tools for Windows component](./resources/vs_installer_cmake.png)\n\n**NOTE:** it's also possible to only install VS BuildTools without installing the\nentire VS 2022 program, but it is not covered by this readme.\n\n### Install Git for Windows\n\nAs long as ```git.exe``` is available on your system, everything should be good to go.\nIf not, you can get Git from the following link:\n\nhttps://git-scm.com/downloads/win\n\nDownload the 64-bit Git for Windows Setup Standalone Installer.\n\nGit for Windows installed with the Visual Studio Installer should also work,\nbut I do not personally use it, so I cannot vouch for it.\n\n## Building\n\nMake a copy of this repository:\n\n![GitHub template](./resources/github_use_template.png)\n\n---\n\nClone the repository you just created, **with submodules**:\n\n```sh\ngit clone THE_CLONE_URL_OF_YOUR_REPO --recurse-submodules\n```\n\n---\n\nTo make VS build tools available to VS Code, you have to launch VS Code from the\nVS Developer Command Prompt or VS Developer Powershell:\n\nhttps://learn.microsoft.com/en-us/visualstudio/ide/reference/command-prompt-powershell?view=vs-2022#start-from-windows-menu\n\n**In most cases, doing this only once at the beginning of the project was enough\nand CMake was able to find the build tools later by just starting VS Code normally\nfrom the shortcut!**\n\n---\n\nOnce you have the prompt open, navigate to your project folder and\nopen VS Code there:\n\n```\ncd path\\to\\my\\bot\\project\ncode .\n```\n\n---\n\nYou can then select the desired CMake preset using the VS Code CMake\ntools GUI, and build and run the code from the GUI,\n\n*OR*\n\nbuild manually from the VS Code terminal:\n\nFirst, list the available CMake presets:\n\n```sh\ncmake --list-presets          # List configure presets.\ncmake --build --list-presets  # List build presets.\n```\n\nIf you want to then build the Windows x64 Debug config,\nrun the following commands:\n\n```sh\ncmake --preset config-windows-debug-x64\ncmake --build --preset windows-debug-x64\n```\n\n### VS Code extensions\n\nRecommended extensions from Microsoft:\n\n- C/C++\n- C/C++ Extension Pack\n- C/C++ Themes\n- CMake Tools\n\n## Environment variables\n\nThe program reads the bot token from the `DISCORD_BOT_TOKEN` environment\nvariable by default.\n\n## Running the bot\n\nYou can run and debug the bot from the VS Code UI, provided that you\nhave first set the bot token in your environment variables:\n\n![VS Code buttons](./resources/vs_code_debug_run.png)\n\nOr you can also create a launch configuration based on the\n[example launch configuration](./example_vscode_launch_configuration.json).\n\nhttps://code.visualstudio.com/docs/debugtest/debugging-configuration\n\n## Dependency management with vcpkg\n\nNew dependencies from vcpkg can be added in [vcpkg.json](./vcpkg.json),\nin the `dependencies` block.\n\n## Updating D++ and vcpkg\n\n#### D++\n\nA word of warning: since this template is using D++ latest\ncommit on the main branch, it is not guaranteed to be stable.\nIf you need guaranteed stability, set the submodule manually\nto a specific release tag. Find a Git tutorial on how to do that.\n\nUpdating the dpp submodule to the latest commit:\n\n```sh\ngit submodule update --remote submodules/dpp\ngit add submodules/dpp\ngit commit -m \"Update dpp submodule\"\n```\n\n#### vcpkg\n\nIf you need to update the vcpkg submodule you can run the following commands:\n\n```sh\ngit submodule update --remote submodules/vcpkg\ngit add submodules/vcpkg\ngit commit -m \"Update vcpkg submodule\"\n```\n\nUpdating vcpkg will update all dependencies installed from\nvcpkg to their latest versions on vcpkg, which is good to do\nregularly, unless you have a reason to stay at specific version.\n\nYou may need to run CMake configure again after updating the submodules.\n\n## GitHub Actions\n\nThis template uses GitHub Actions to build the project on\nevery commit to the master branch. If you do not need the\nactions, you can safely delete the [.github](./.github) directory\nfrom your own repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuokri%2Fdppcmaketemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuokri%2Fdppcmaketemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuokri%2Fdppcmaketemplate/lists"}