Skip to content

Latest commit

 

History

History
138 lines (108 loc) · 7.21 KB

reference.rst

File metadata and controls

138 lines (108 loc) · 7.21 KB

Reference

Basic Tools

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

.. tabularcolumns:: |p{3cm}|p{12.5cm}|

|basisproject| Creates a new project or modifies an existing one in order to add or remove certain components of the template or to upgrade to a newer template.
|basistest| Implements automated software tests.
doxyfilter Doxygen filter for all supported languages.

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 :apidoc:`basis_add_executable()` replaces CMake's add_executable() command.

The main CMake modules are:

.. tabularcolumns:: |p{3cm}|p{12.5cm}|

:apidoc:`BasisProject.cmake` File in every BASIS project defining basic project information.
:apidoc:`BasisTools.cmake` Defines CMake functions, macros, and variables.
:apidoc:`BasisTest.cmake` Replacement for the CTest.cmake module of CMake.
:apidoc:`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 :apidoc:`UtilitiesTools.cmake` module which is included and utilized by the main :apidoc:`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 :ref:`BASIS Project Directory Layout <SourceCodeTree>` and standard :doc:`/standard/template`. How to create and use such template is explained in the :doc:`howto/use-and-customize-templates` guide. The |basisproject| command-line tool further automates and simplifies the creation of new projects based on a project template.

.. tabularcolumns:: |p{4cm}|p{11.5cm}|

config/ Package configuration files.
data/ Data files required by the software.
doc/ Documentation source files.
example/ Example files for users to try out the software.
include/ Header files of the public API of libraries.
lib/ Module files for scripting languages.
modules/ Project :doc:`Modules <standard/modules>` (i.e., subprojects).
src/ Source code files.
test/ Implementations of unit and regression tests.
AUTHORS (.txt|.md) A list of the people who contributed to this sofware.
:apidoc:`BasisProject.cmake` Calls :apidoc:`basis_project()` to set basic project information.
CMakeLists.txt Root CMake configuration file.
COPYING (.txt|.md) The copyright and license notices.
INSTALL (.txt|.md) Build and installation instructions.
README (.txt|.md) Basic summary and references to the documentation.
.. seealso:: The :doc:`/standard/template` for a complete list of required and other standard project files.
             The :ref:`CMake BASIS Package <BasisPackageContent>` 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.