Project Name
0.1.0
A cross-platform C++14 project template
|
Ignoring all extraneous files, this is the structure that this project uses:
project-name/ ├── CMakeLists.txt ├── cmake/ │ └── Modules/ │ └── CodeCoverage.cmake ├── doc/ │ ├── CMakeLists.txt │ ├── Doxyfile.in │ ├── directory_structure.md │ ├── main_page.md │ └── ... ├── include/ │ └── project-abbr/ │ ├── config.hpp.in │ ├── factorial.hpp │ └── hello_world.hpp ├── src/ │ ├── factorial.cpp │ ├── hello_world.cpp │ └── main.cpp ├── test/ │ ├── CMakeLists.txt │ ├── factorial_test.cpp │ ├── hello_world_test.cpp │ └── test_runner.cpp └── third_party/ └── doctest/ └── doctest.h
This may all look very complex, but here is an explanation of all of the directories:
Directory | Purpose |
---|---|
cmake | Contains all CMake related configuration files. |
doc | Contains Doxygen configuration files, which can be used to create documentation for the project using the CMake target doc . |
include | Contains all the project public include files, namespaced in a directory which is an abbreviation of the project name. |
src | Contains the implementations of all files in include . Private level includes and implementations are also in this directory. |
test | Contains test files to unit test the library portion of the application. |
third_party | Contains CMake configuration files for third party dependencies or single header files for projects with single includes. |