Your neat C++ application template project
Project is designed to increase the speed of the application creation process at the project startup by providing templated application structure. So developer may just jump straight into implementing a particular application with no or minimum project start structure set up.
Helps you go beyond raw code — build a complete, ready-to-ship software product fast!
Enables rapid creation of a complete software product — not just raw code or a simple program.
Just fork it and implement application straight away!
The template project is not a framework in traditional means so infrastructure implementation items may be altered to fit needs or even erased in case of redundancy.
See more at the kytok.org.ua
💵 Donate at http://kytok.org.ua/page/pozertvy
Examine available branches to find your most applicable variant of the template or combine multiple branches by merging them to assemble the best suited template structure for your needs:
mainbranch at [GitHub, GitLab] (current) just the clearmainfunction and all available CMake integrations with no additional app infrastructure classes.appbranch at [GitHub, GitLab] with just general application related classes to generate a single binary executable.applibbranch at [GitHub, GitLab] for the application binary with additional separate library binary and header files (available for the installation) in order to provide library's code reusability across multiple applications.libbranch at [GitHub, GitLab] for the library with the headers include files (and documentation) without target binary.appMesonbranch at [GitHub, GitLab] with just general application related classes to generate a single binary executable with the Meson build system.
appLog4Cpp5branch at [GitHub, GitLab] the template infrastructure to fast start the application development with the log4cpp extended logging library.appBoostLogbranch at [GitHub, GitLab] the template infrastructure to fast start the application development with the Boost.Log extended logging library.
appQt6branch at [GitHub, GitLab] for the application general classes with additional defined structure for the Qt6 QML window application development.appGtkmm3branch at [GitHub, GitLab] for the application general classes with additional defined structure for the Gtkmm-3.0 with C++ window application development.appGtkmm3Gladebranch at [GitHub, GitLab] for the application general classes with additional defined structure for the C++ application development with Gtkmm-3.0 and Glade application with XML UI creation.appGtkmm4branch at [GitHub, GitLab] for the application general classes with additional defined structure for the Gtkmm-4 with C++ window application development.
appSDL2branch at [GitHub, GitLab] with just general application related classes to generate a single binary executable with a SDL2 library for the OpenGL 3D development and more!appFreeGlutbranch at [GitHub, GitLab] with just general application related classes to generate a single binary executable with a FreeGlut library for the OpenGL 3D development.
appWt4branch at [GitHub, GitLab] the template infrastructure to fast start Web application developing based on the Wt C++ full stack framework.appBoostBeastbranch at [GitHub, GitLab] the template infrastructure for the Web application fast start development with the Boost Beast HTTP server.appCURLbranch at [GitHub, GitLab] the template infrastructure to fast start the application development with the CURL multi protocol client library (including the HTTP) to download data from the network.
appPgSQLxxbranch at [GitHub, GitLab] the template infrastructure to fast start application development with the PostgreSQL DBMS usage.appMySQLCppConnbranch at [GitHub, GitLab] the template infrastructure to fast start application development with the MySQL DBMS usage.appSQLiteCpp3branch at [GitHub, GitLab] the template infrastructure to fast start application development with the SQLite DBMS and SQLiteCpp C++ bind usage.appMongoDBCpp4branch at [GitHub, GitLab] the template infrastructure to fast start application development with the MongoDB NoSQL DBMS usage.
appMatPlotxxbranch at [GitHub, GitLab] the template infrastructure to fast start application development with the MatPlot++ usage - a nice plot library with required gnuplot application and Qt6.appPLplotbranch at [GitHub, GitLab] the template infrastructure to fast start application development with the PLplot usage - a powerful plotting library used in scientific applications with a lot of windowing and language bindings and export capabilities (PNG, SVG, JPEG, GIF, PDF and more).
Alter current README.md and a CHANGELOG.md files to match your implementation introduced into the destination new project. Examine the doc directory for possible translations of a current md document:
uk_UAat doc/README.uk_UA.md
Document is under the refinement
- Cloning the C++ template project
- Forking and replacing the origin
- Requirements
- Required tools for the GNU/Linux based OS
- Required tools for the MS Windows based OS
- Optional for the tests
- Optional for the documentation
- Optional for the code formatting
- Optional for the code analyzer (cppcheck)
- Optional for the code analyzer with clang-tidy
- Optional for the memory check with Valgrind
- Optional for the flatpak packager
- Optional for the Docker container runs
- Project structure
- Project build
- IDE build
- Command line build
- Enabling testing
- Documentation build
- Configuring the documentation install support
- Enabling and performing code formatting target
- Enabling the static code analyzer target with cppcheck
- Enabling the static code analyzer with clang-tidy
- Enabling the dynamic memory check target with valgrind
- Enabling DEB package generation with cpack
- Enabling the flatpak package generation support
- Enabling the Docker container build and run
- Enabling sanitizers
- Enabling the libcurl
- Enabling gprof profiler analysis
- Enabling vagrind's callgrind profiler analysis
- Enabling Jenkins pipeline inside Docker container
- Enabling the nlohmann json library
- Run the executable
- IDE run
- Command line run
- Tests run
- Installing