Reference — BASIS

Reference

Basic Tools

In order to ease certain tasks, the BASIS package also includes the following command-line tools:

CMake Modules

The CMake modules and corresponding auxiliary files are used by any BASIS project for the configuration of the CMake-based build system, so that many setup steps can be automated. These commands often replace the standard CMake commands. For example, the CMake function basis_add_executable() replaces CMake’s add_executable() command.

The main CMake modules are:

BasisProject.cmake File in every BASIS project defining basic project information.
BasisTools.cmake Defines CMake functions, macros, and variables.
BasisTest.cmake Replacement for the CTest.cmake module of CMake.
BasisPack.cmake Replacement for the CPack.cmake module of CMake.

Utilities

For each supported programming language, BASIS provides a library of utility functions. Some of these utilities are project independent and thus built and installed as part of the CMake BASIS package itself. Other utility implementations are project dependent. Therefore, the BASIS installation contains only template files which are customized and built during the configuration and build, respectively, of the particular BASIS project. This customization is done by the functions implemented by the UtilitiesTools.cmake module which is included and utilized by the main BasisTools.cmake module.

The BASIS utilities address the following aspects of the software implementation standard:

Project Layout

A brief summary of the common project layout required by all projects that follow BASIS is given below. Project templates are supplied by the BASIS package to make it easy for projects to follow this BASIS Project Directory Layout and standard Project Template. How to create and use such template is explained in the Using and Customizing Templates guide. The basisproject command-line tool further automates and simplifies the creation of new projects based on a project template.

See also

The Project Template for a complete list of required and other standard project files. The CMake BASIS Package itself also serves as an example of a project following this standard layout.

Note

Not all of the named subdirectories must exist in every project.