Add CMake commands for project-centric builds.
Modern CMake relies on target_* commands for constructing targets with the correct property visibilities. One common structure is to define a project() for each target and always use ${PROJECT_NAME} as the target name for the target commands. In this approach, ${PROJECT_NAME} gets repeated over and over again.
CMake functions can easily deal with this repetition. Simply include cmake_project_commands.cmake to your build and use the provided commands. For each target_ command in base CMake, there is an equivalent project_ version that just assumes the target is the current value of ${PROJECT_NAME}.
For example, the following CMake:
project(myProject) add_executable(${PROJECT_NAME} main.cpp) target_link_libraires(${PROJECT_NAME} PRIVATE otherProject)...would instead become:
project(myProject) project_add_executable(main.cpp) project_link_libraires(PRIVATE otherProject)