BasisProject.cmake
Go to the documentation of this file.
1 # ============================================================================
2 # Copyright (c) 2011-2012 University of Pennsylvania
3 # Copyright (c) 2013-2014 Carnegie Mellon University
4 # Copyright (c) 2013-2016 Andreas Schuh
5 # All rights reserved.
6 #
7 # See COPYING file for license information or visit
8 # https://cmake-basis.github.io/download.html#license
9 # ============================================================================
10 
11 ##############################################################################
12 # @file BasisProject.cmake
13 # @brief Sets basic information about a BASIS Project and calls basis_project().
14 #
15 # This file defines basic information about a project by calling
16 # the basis_project() function. This basic information, also known as metadata,
17 # is used by BASIS to setup the project. Moreover, if the project is a module
18 # of another BASIS project, the dependencies to other modules have to be specified
19 # here such that the top-level project can analyze the inter-module dependencies.
20 #
21 # @sa https://cmake-basis.github.io/standard/modules.html
22 #
23 # However, not only dependencies to other modules can be specified here,
24 # but also dependencies on external packages. A more flexible alternative to
25 # resolve external dependencies is to add the corresponding basis_find_package()
26 # statements to the Depends.cmake file. This should, however, only be done
27 # if specifying the dependencies as arguments to the basis_project() function
28 # cannot be used to resolve the dependencies properly. If you only need to
29 # make use of additional variables set by the package configuration file
30 # of the external package or the corresponding Find<Package>.cmake module,
31 # add the related CMake code to the Settings.cmake file instead.
32 #
33 # Example:
34 # @code
35 # basis_project (
36 # # ------------------------------------------------------------------------
37 # # meta-data
38 # NAME MyProject
39 # PACKAGE_VENDOR shortvname # Note: Part of default CMAKE_INSTALL_PREFIX
40 # VERSION 1.1.5
41 # DESCRIPTION "This is the description of the project, which is useful for this"
42 # " important thing and that important thing."
43 # " MyProject follows the BASIS implementation standard."
44 # AUTHOR "Ima Nauthor"
45 # PROVIDER_NAME "Great Product Co"
46 # PROVIDER_WEBSITE "http://www.greatproductcompany.com"
47 # PROVIDER_LOGO "${PROJECT_SOURCE_DIR}/doc/logo.png"
48 # DIVISION_NAME "Awesome App Division"
49 # DIVISION_WEBSITE "http://www.awesomeapp.greatproductcompany.com"
50 # DIVISION_LOGO ""${PROJECT_SOURCE_DIR}/doc/division_logo.png""
51 # COPYRIGHT "Copyright (c) 2014 Great Product Co"
52 # LICENSE "See COPYING file."
53 # CONTACT "Contact <info@greatproductcompany.com>"
54 # # ------------------------------------------------------------------------
55 # # dependencies
56 # DEPENDS
57 # NiftiCLib
58 # Python{Interp}
59 # OPTIONAL_DEPENDS
60 # Jython{Interp}
61 # Perl
62 # MATLAB{matlab}
63 # BASH
64 # Doxygen
65 # Sphinx{build}
66 # TEST_DEPENDS
67 # Perl
68 # OPTIONAL_TEST_DEPENDS
69 # MATLAB{mex}
70 # MATLAB{mcc}
71 # )
72 # @endcode
73 #
74 # @ingroup BasisSettings
75 ##############################################################################
76 
77 # Note: The #<*dependency> patterns are required by the basisproject tool
78 # and should be kept on a separate line as last commented argument of
79 # the corresponding options of the basis_project() command.
80 
82  # --------------------------------------------------------------------------
83  # meta-data
84  NAME "BASIS"
85  VERSION "3.3.1"
86  AUTHORS "Andreas Schuh"
87  DESCRIPTION "This package implements and supports the development of "
88  "software which follows the CMake Build system And Software "
89  "Implementation Standard (BASIS)."
90  WEBSITE "https://cmake-basis.github.io"
91  COPYRIGHT "2011-12 University of Pennsylvania, 2013-14 Carnegie Mellon University, 2013-16 Andreas Schuh"
92  LICENSE "See https://cmake-basis.github.io/download.html#license or COPYING file."
93  CONTACT "andreas.schuh.84@gmail.com"
94  TEMPLATE "basis/1.4"
95  PACKAGE_LOGO "doc/static/logo.svg"
96 
97  # --------------------------------------------------------------------------
98  # dependencies
99  DEPENDS
100  #<dependency>
101  OPTIONAL_DEPENDS
102  Python{Interp} # enables support for Python if package found
103  Jython{Interp} # enables support for Jython if package found
104  Perl # enables support for Perl if package found
105  MATLAB{matlab} # enabled support for MATLAB if package found
106  BASH # enables support for Bash if package found
107  #<optional-dependency>
108  TOOLS_DEPENDS
109  Perl
110  Python{Interp}
111  OPTIONAL_TOOLS_DEPENDS
112  ITK # optionally used by basistest-driver, TODO: get rid of this dependency
113  TEST_DEPENDS
114  #<test-dependency>
115  OPTIONAL_TEST_DEPENDS
116  MATLAB{mex} # enables test of MEX-file generation
117  MATLAB{mcc} # enables test of MATLAB .m file compilation
118  #<optional-test-dependency>
119 )
string COPYRIGHT
Default copyright of executables.
Definition: utilities.sh:91
cmake NAME
string VERSION
Project version.
Definition: utilities.sh:81
cmake TEMPLATE
macro basis_project(in ARGN)
Sets basic project information including the name, version, and dependencies.
string LICENSE
Default license of executables.
Definition: utilities.sh:93
string CONTACT
Default contact to use for help output of executables.
Definition: utilities.sh:95