Package: cmtkgen
ConceptPython scripts which create C++ CMake projects based onCMTK(used as a git submodule).See thetask boardfor future updates and features.RequirementsBinaries:CMake 3.16 or latergitpython 3.6python3-tkinterInstallpip3 install cmtkgenScriptsEach script creates a C++ project according to the information provided by the user.create_cpp_executable_project.py  [project_name]This scripts generates a CMake project with an executable target. This executable can be installed after being successfully built.Questions asked to generate the project:Project name (if not provided on command line)Project version (default: 0.1.0)Allowing CMake build-in tree? To allow the CMake configuration of the project directly in the source directory or in one of its sub-directory.Which C++ version do you want to use? (11, 14, 17, 20)Do you want a.gitignorefile?Do you want a License file? Which file name? Who are the copyright holders?Do you want a Readme file?Which file name?Do you want a version header file? (a version.hpp file will be created by CMTK during CMake configuration.)Example of a full executable project namedcpp_exec:cpp_exec/
├── cmake
│   └── cmtk/...
├── include
│   └── cpp_exec
│       └── cpp_exec.hpp
├── src
│   ├── cpp_exec.cpp
│   └── main.cpp
├── CMakeLists.txt
├── cmake_quick_install.cmake
├── .gitignore
├── .gitmodules  # For CMTK
├── LICENSE.md
└── README.mdTo configure, build and install such a project use [cmake_quick_install.cmake](#About cmake_quick_install.cmake) or execute the following commands:cmake -S cpp_exec/ -B build
cmake --build build/
cmake --install build/create_cpp_lib_project.py  [project_name]Questions asked to generate the project:Project name (if not provided on command line)Project version (default: 0.1.0)Allowing CMake build-in tree? To allow the CMake configuration of the project directly in the source directory or in one of its sub-directory.Which C++ version do you want to use? (11, 14, 17, 20)Do you want a.gitignorefile?Do you want a License file? Which file name? Who are the copyright holders?Do you want a Readme file?Which file name?Do you want a version header file? (a version.hpp file will be created by CMTK during CMake configuration.)Which type of package-config file do you want for your project, BASIC or VERBOSE? (apackage-config.cmake will be created by CMTK during CMake configuration.)Example of a full executable project namedcpp_lib:cpp_lib/
├── cmake
│   └── cmtk/...
├── example
│   ├── CMakeLists.txt
│   └── cpp_lib_example.cpp
├── include
│   └── cpp_lib
│       └── cpp_lib.hpp
├── src
│   └── cpp_lib.cpp
├── test
│   ├── CMakeLists.txt
│   └── cpp_lib_tests.cpp
├── CMakeLists.txt
├── cmake_quick_install.cmake
├── .gitignore
├── .gitmodules  # For CMTK
├── LICENSE.md
└── README.mdTo configure, build and install such a project use [cmake_quick_install.cmake](#About cmake_quick_install.cmake) or execute the following commands:cmake -S cpp_lib/ -B build
cmake --build build/
cmake --install build/create_cpp_honly_lib_project.py  [project_name]Questions asked to generate the project:Project name (if not provided on command line)Project version (default: 0.1.0)Allowing CMake build-in tree? To allow the CMake configuration of the project directly in the source directory or in one of its sub-directory.Which C++ version do you want to use? (11, 14, 17, 20)Do you want a.gitignorefile?Do you want a License file? Which file name? Who are the copyright holders?Do you want a Readme file?Which file name?Do you want a version header file? (a version.hpp file will be created by CMTK during CMake configuration.)Which type of package-config file do you want for your project, BASIC or VERBOSE? (apackage-config.cmake will be created by CMTK during CMake configuration.)Example of a full executable project namedcpp_honly:cpp_honly/
├── cmake
│   └── cmtk/...
├── example
│   ├── CMakeLists.txt
│   └── cpp_honly_example.cpp
├── include
│   └── cpp_honly
│       └── cpp_honly.hpp
├── test
│   ├── CMakeLists.txt
│   └── cpp_honly_tests.cpp
├── CMakeLists.txt
├── cmake_quick_install.cmake
├── .gitignore
├── .gitmodules  # For CMTK
├── LICENSE.md
└── README.mdTo configure, build and install such a project use [cmake_quick_install.cmake](#About cmake_quick_install.cmake) or execute the following commands:cmake -S cpp_honly/ -B build
cmake --build build/
cmake --install build/create_cpp_hello_world.py  [project_name]Questions asked to generate the project:Project name (if not provided on command line)Which C++ version do you want to use? (11, 14, 17, 20)Example of a full executable project namedcpp_hello_world:cpp_hello_world/
├── cmake
│   └── cmtk/...
├── CMakeLists.txt
├── .gitmodules  # For CMTK
├── main.cpp
└── main.hppTo configure and build such a project execute use the following commands:cmake -S cpp_hello_world/ -B build
cmake --build build/About cmake_quick_install.cmakeExecutable and library projects have a cmake_quick_install.cmake script. It can be called with CMake like this:cmake -P cmake_quick_install.cmakeIt has optional parameters:DIR: 	The install prefix directory.BUILD: 	The build type. (default: Release)Some examples:cmake -P cmake_quick_install.cmake -- DIR ~/local/
cmake -P cmake_quick_install.cmake -- BUILD Debug
cmake -P cmake_quick_install.cmake -- DIR ~/local/ BUILD DebugLicenseMIT License© cmtkgen