BasisProject.cmake File Reference

Sets basic information about a BASIS Project and calls basis_project(). More...

Go to the source code of this file.

Detailed Description

Sets basic information about a BASIS Project and calls basis_project().

This file defines basic information about a project by calling the basis_project() function. This basic information, also known as metadata, is used by BASIS to setup the project. Moreover, if the project is a module of another BASIS project, the dependencies to other modules have to be specified here such that the top-level project can analyze the inter-module dependencies.

See also
https://cmake-basis.github.io/standard/modules.html

However, not only dependencies to other modules can be specified here, but also dependencies on external packages. A more flexible alternative to resolve external dependencies is to add the corresponding basis_find_package() statements to the Depends.cmake file. This should, however, only be done if specifying the dependencies as arguments to the basis_project() function cannot be used to resolve the dependencies properly. If you only need to make use of additional variables set by the package configuration file of the external package or the corresponding Find<Package>.cmake module, add the related CMake code to the Settings.cmake file instead.

Example:

# ------------------------------------------------------------------------
# meta-data
NAME MyProject
PACKAGE_VENDOR shortvname # Note: Part of default CMAKE_INSTALL_PREFIX
VERSION 1.1.5
DESCRIPTION "This is the description of the project, which is useful for this"
" important thing and that important thing."
" MyProject follows the BASIS implementation standard."
AUTHOR "Ima Nauthor"
PROVIDER_NAME "Great Product Co"
PROVIDER_WEBSITE "http://www.greatproductcompany.com"
PROVIDER_LOGO "${PROJECT_SOURCE_DIR}/doc/logo.png"
DIVISION_NAME "Awesome App Division"
DIVISION_WEBSITE "http://www.awesomeapp.greatproductcompany.com"
DIVISION_LOGO ""${PROJECT_SOURCE_DIR}/doc/division_logo.png""
COPYRIGHT "Copyright (c) 2014 Great Product Co"
LICENSE "See COPYING file."
CONTACT "Contact <info@greatproductcompany.com>"
# ------------------------------------------------------------------------
# dependencies
DEPENDS
NiftiCLib
Python{Interp}
OPTIONAL_DEPENDS
Jython{Interp}
Perl
MATLAB{matlab}
BASH
Doxygen
Sphinx{build}
TEST_DEPENDS
Perl
OPTIONAL_TEST_DEPENDS
MATLAB{mex}
MATLAB{mcc}
)

Definition in file BasisProject.cmake.