{"id":19065621,"url":"https://github.com/caiorss/cpp-project-templates","last_synced_at":"2025-04-28T11:49:58.911Z","repository":{"id":90042950,"uuid":"213224742","full_name":"caiorss/cpp-project-templates","owner":"caiorss","description":"C++ CPP project templates with CMake + Conan","archived":false,"fork":false,"pushed_at":"2020-05-24T00:38:32.000Z","size":51,"stargazers_count":15,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-18T15:17:35.923Z","etag":null,"topics":["cmake","cpp","project","scaffolding","template"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caiorss.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-10-06T18:50:05.000Z","updated_at":"2024-12-22T12:29:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"29bbab64-0dab-45c9-b5e0-3cce90f0ca90","html_url":"https://github.com/caiorss/cpp-project-templates","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiorss%2Fcpp-project-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiorss%2Fcpp-project-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiorss%2Fcpp-project-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiorss%2Fcpp-project-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caiorss","download_url":"https://codeload.github.com/caiorss/cpp-project-templates/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251310459,"owners_count":21568998,"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":["cmake","cpp","project","scaffolding","template"],"created_at":"2024-11-09T00:51:24.474Z","updated_at":"2025-04-28T11:49:58.904Z","avatar_url":"https://github.com/caiorss.png","language":"C++","readme":"* C++ CMake (+) Conan Project Templates \n** Overview \n\nThis project many C++ CMake and Conan project templates which can make\neasier for creating new projects instead of starting everything from\nscratch. \n\n  *Project Templates Provided:* \n\nBasic CMake Projects: \n\n  + Basic CMake Project with 2 executables.\n    + Directory: [[file:basic-cmake-project][file:basic-cmake-project]]\n\nCommand Line Application with Subcommands akin to GIT (CLI11 Library)\n\n   + CLI11 sample project\n     + Directory:  [[file:command-line-app-cli11][file:command-line-app-cli11]]\n     + Description: Command line application with multiple subcommands\n       akin to busybox or GIT (git commit, git log, git push, ...)\n\nOpenGL / Computer Graphics \n\n  + Basic OpenGL Project\n    + Directory: [[file:basic-opengl-project][file:basic-opengl-project]]\n    + Description: Minimal OpenGL project with CMake. \n\nBoost Libraries / ASIO - Asynchrnous IO Framework \n\n  + Boost Asio Project \n    + Directory: [[file:boost-asio-basic][file:boost-asio-basic]]\n    + Description: Minimal [[https://www.boost.org/doc/libs/1_71_0/doc/html/boost_asio.html][Boost.Asio]] project.\n\nPybind11 \n \n  + Python Pybind11 native module.\n    + Directory:  [[file:python-module-pybind11][file:python-module-pybind11]]\n    + Note a Python native module is a shared library  - aka *.pyd\n      (DLL) or *.so on Windows.\n\nQT Cross Platform - Graphical User Interface Framework\n\n  + Qt5 Widgets + Dynamically Loaded Form\n    + Directory:  [[file:qt5-qtwidgets-dynamically-loaded][file:qt5-qtwidgets-dynamically-loaded]]\n    + Description: Sample project with Qt5 Widgets dynamically\n      loaded. It doesn't not use code generation from the form file,\n      instead it loads the form file from the compiled resource at\n      runtime. This approach is similar to use QML for describing the\n      UI, but unlike QML, the control logic is entirely in C++. \n\n  + Qt5 QtQuick QML\n    + Directory:  [[file:qt5-qtquick-qml][file:qt5-qtquick-qml]]\n    + Description: Basic Q5/QML project with CMake.\n \nWX Widgets - Cross Platform GUI Toolkit Library \n\n  + Wxwidgets\n    + Directory: [[file:wxwidgets][file:wxwidgets]]\n    + Description: Sample CMake+Conan project with WxWidgets\n      containing two targets, a sample application with multiple files\n      and an application with a single file.\n    + Note: WxWidget has a more permissive license than QT for static\n      linking. However, it has a more scattered documentation and\n      lacks good *GUI designer* such as QTCreator. \n\n  *Usage:* \n  \n\nJust copy the project template directory to a new location, open it in\nany IDE which supports CMake, namely, Clion, Visual Studio, QTCreator\nor KDevelop, and modify it.\n\nExample: \n\n + 1 =\u003e Clone the repository: \n\n#+BEGIN_SRC sh \n  $ mkdir -p /tmp/temp \u0026\u0026 cd /tmp/temp\n  $ git clone https://github.com/caiorss/cpp-project-templates\n#+END_SRC\n\n + 2 =\u003e Copy the project template directory.\n\n#+BEGIN_SRC sh \n  # Create my-opengll-project from template: \n  $ cp -rv cpp-project-templates/basic-opengl-project my-opengl-project\n  'cpp-project-templates/basic-opengl-project' -\u003e 'my-opengl-project'\n  'cpp-project-templates/basic-opengl-project/CMakeLists.txt' -\u003e 'my-opengl-project/CMakeLists.txt'\n  'cpp-project-templates/basic-opengl-project/README.org' -\u003e 'my-opengl-project/README.org'\n  'cpp-project-templates/basic-opengl-project/opengl1.cpp' -\u003e 'my-opengl-project/opengl1.cpp'\n#+END_SRC\n\n + 3 =\u003e Open the project with Visual Studio, QTCreator, CLion,\n   KDevelop or any other supported IDE. Or generate the IDE-specific\n   configuration files with CMake. \n\n#+BEGIN_SRC sh \n  # Edit the new project with CMake\n  $ qtcreator my-opengl-project/CMakeLists.txt \u0026\n#+END_SRC\n\n + 3 =\u003e Or compile and build from command line. \n\n#+BEGIN_SRC sh \n  $ cd my-opengl1-project \n\n  $ cmake -H. -B_build -G Ninja -DCMAKE_BUILD_TYPE=Release\n\n  $ cmake --build _build --target \n [2/2] Linking CXX executable openglDemo1.bin\n\n # Run program: \n $ _build/openglDemo1.bin \n#+END_SRC\n\n *Repository* \n \n + https://github.com/caiorss/cpp-project-templates\n** Dependencies configuration \n\n *Conan* \n\nInstall Conan via PIP: \n\n#+BEGIN_SRC sh \n  $ pip install --user conan\n#+END_SRC\n\nAfter the installation of Conan, add the following repositories: \n\n#+BEGIN_SRC sh \n $ conan remote add conan-center https://conan.bintray.com\n $ conan remote add conan-community https://api.bintray.com/conan/conan-community/conan\n $ conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan\n#+END_SRC\n\n *Dependency for Pybind11* (building Python Modules)\n\n  + Note: Anaconda or Miniconda Python distributions already comes\n    with Pythonb development headers or (SDK - Software Development\n    Kit). \n\n#+BEGIN_SRC sh \n  $ dnf install python3-devel \n#+END_SRC \n\n *Dependencies for OpenGL projects* \n\nFedora Linux or Red-hat derivates: \n\n#+BEGIN_SRC sh \n $ dnf install -y freeglut-devel gl-manpages.noarch \n#+END_SRC\n\n *Dependencies for WXWidgets projects on Fedora Linux* \n\n#+BEGIN_SRC sh \n $ dnf install -y gtk2-devel.x86_64\n $ dnf install -y gtk+extra-devel.x86_64\n $ dnf install -y SDL-devel.x86_64\n $ dnf install -y SDL2-devel.x86_64\n $ dnf install -y libXtst-devel.x86_64\n $ dnf install -y libXt-devel.x86_6\n $ dnf install -y compat-wxGTK3-gtk2.x86_64\n#+END_SRC\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiorss%2Fcpp-project-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaiorss%2Fcpp-project-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiorss%2Fcpp-project-templates/lists"}