ProjectSettings.cmake
1 # ============================================================================
2 # Copyright (c) 2011-2012 University of Pennsylvania
3 # Copyright (c) 2013-2016 Andreas Schuh
4 # All rights reserved.
5 #
6 # See COPYING file for license information or visit
7 # https://cmake-basis.github.io/download.html#license
8 # ============================================================================
9 
10 ##############################################################################
11 # @file ProjectSettings.cmake
12 # @brief Default project-dependent settings.
13 #
14 # @note The file ProjectSettings.cmake is automatically generated by
15 # BASIS from the template file ProjectSettings.cmake.in which is part
16 # of the BASIS installation.
17 #
18 # @note More general, project-independent settings are defined in the file
19 # BasisSettings.cmake which is part of the BASIS installation.
20 #
21 # This module defines global CMake constants and variables which are used
22 # by the BASIS CMake functions and macros. Hence, these values can be used
23 # to configure the behavior of these functions to some extent without the
24 # need to modify the functions themselves. It's main purpose is the
25 # documentation of these variables with the configured values.
26 #
27 # @ingroup BasisSettings
28 ##############################################################################
29 
30 ## @addtogroup BasisSettings
31 # @{
32 
33 
34 # ============================================================================
35 # options
36 # ============================================================================
37 
38 ## @brief Request build/installation of documentation.
39 if (EXISTS "${PROJECT_DOC_DIR}/CMakeLists.txt")
40  option (BUILD_DOCUMENTATION "Request build and/or installation of documentation." OFF)
41 endif ()
42 
43 ## @brief Request build/installation of example.
44 if (EXISTS "${PROJECT_EXAMPLE_DIR}/CMakeLists.txt")
45  option (BUILD_EXAMPLE "Request build and/or installation of example." OFF)
46 endif ()
47 
48 ## @brief Request build/installation of applications.
49 if (PROJECT_HAS_APPLICATIONS)
50  if (NOT BUILD_APPLICATIONS_DEFAULT)
51  set (BUILD_APPLICATIONS_DEFAULT OFF)
52  endif ()
53  option(BUILD_APPLICATIONS "Request build and/or installation of applications." ${BUILD_APPLICATIONS_DEFAULT})
54 endif ()
55 
56 # ============================================================================
57 # project namespaces
58 # ============================================================================
59 
60 ## @brief CMake namespace of top-level project.
61 #
62 # This is the common namespace of a BASIS project and its modules.
63 # It is the part of the namespace which is only required if the project's
64 # targets are referenced from another project, but not within the project.
65 set (TOPLEVEL_PROJECT_NAMESPACE_CMAKE "mirtk")
66 
67 ## @brief CMake namespace of project.
68 #
69 # The CMake namespace of a BASIS project is made up of its name in lower case
70 # only as well as the namespace the project belongs to, i.e., the namespace of
71 # the project this project is a module of.
72 #
73 # @sa basis_make_target_uid()
74 # @sa basis_get_target_uid()
75 # @sa basis_make_test_uid()
76 # @sa basis_get_test_uid()
77 set (PROJECT_NAMESPACE_CMAKE "mirtk")
78 
79 ## @brief CMake variable of C++ namespace of project.
80 #
81 # The C++ namespace of a BASIS project is made up of the vendor name and the name
82 # of the package itself. Moreover, if the project is a module of another project,
83 # the name of the module may optionally be used as part of the namespace as well.
84 # Namespaces in C++ are usually in lowercase only.
85 #
86 # @ingroup BasisCxxUtilities
87 set (PROJECT_NAMESPACE_CXX "mirtk")
88 
89 ## @brief CMake variable of Java package name of project.
90 #
91 # The Java package name of a BASIS project is made up of the vendor name and the name
92 # of the package itself. Moreover, if the project is a module of another project,
93 # the name of the module may optionally be used as part of the namespace as well.
94 # Names of packages and sub-packages in Java are usually in lowercase only.
95 #
96 # @ingroup BasisJavaUtilities
97 set (PROJECT_NAMESPACE_JAVA "")
98 
99 ## @brief CMake variable of Python package name of project.
100 #
101 # The Python package name of a BASIS project is made up of the vendor name and the name
102 # of the package itself. Moreover, if the project is a module of another project,
103 # the name of the module may optionally be used as part of the namespace as well.
104 # Names of packages and sub-packages in Python are usually in lowercase only.
105 #
106 # @ingroup BasisPythonUtilities
107 set (PROJECT_NAMESPACE_PYTHON "mirtk")
108 
109 ## @brief CMake variable of Jython package name of project.
110 #
111 # The Jython package name of a BASIS project is made up of the vendor name and the name
112 # of the package itself. Moreover, if the project is a module of another project,
113 # the name of the module may optionally be used as part of the namespace as well.
114 # Names of packages and sub-packages in Jython are usually in lowercase only.
115 #
116 # @ingroup BasisPythonUtilities
117 set (PROJECT_NAMESPACE_JYTHON "mirtk")
118 
119 ## @brief CMake variable of Perl package name of project.
120 #
121 # The Perl package name of a BASIS project is made up of the vendor name and the name
122 # of the package itself. Moreover, if the project is a module of another project,
123 # the name of the module may optionally be used as part of the namespace as well.
124 # Names of packages and sub-packages in Perl are usually in mixed CamelCase starting
125 # with an uppercase letter. Note that Perl informally reserves lowercase module names
126 # for "pragma" modules such as <tt>integer</tt> and <tt>strict</tt>.
127 #
128 # @ingroup BasisPerlUtilities
129 set (PROJECT_NAMESPACE_PERL "MIRTK")
130 
131 ## @brief CMake variable of BASH namespace of project.
132 #
133 # In BASH, there exists no such concept of a namespace or package. However,
134 # variable and function names defined in a module which is supposed to be
135 # sourced by other BASH scripts should use a unique prefix for variable and
136 # function names.
137 #
138 # @ingroup BasisBashUtilities
139 set (PROJECT_NAMESPACE_BASH "mirtk")
140 
141 ## @brief CMake variable of MATLAB package name of project.
142 #
143 # The MATLAB package name of a BASIS project is made up of its name in lower case
144 # only as well as the package name of the project it belongs to.
145 #
146 # For information on MATLAB's package and class folders, visit the following
147 # web page from MathWorks:
148 # @sa http://www.mathworks.com/help/techdoc/matlab_oop/brfynt_-1.html
149 #
150 # @ingroup BasisMatlabUtilities
151 set (PROJECT_NAMESPACE_MATLAB "mirtk")
152 
153 # ============================================================================
154 # package configuration
155 # ============================================================================
156 
157 ## @brief Prefix/name of CMake package configuration file of top-level project.
158 set (TOPLEVEL_PROJECT_PACKAGE_CONFIG_PREFIX "MIRTK")
159 
160 ## @brief Prefix/name of CMake package configuration file.
161 set (PROJECT_PACKAGE_CONFIG_PREFIX "MIRTK")
162 
163 ## @brief UID of package in CMake's user package registry.
164 #
165 # The value of this variable is used as name for the registry file which
166 # contains the path to the package configuration file on Unix, or the name
167 # of the Windows registry key on Windows.
168 #
169 # @sa http://www.cmake.org/Wiki/CMake/Tutorials/Package_Registry
170 set (TOPLEVEL_PROJECT_PACKAGE_UID "MIRTK-2.0.0")
171 
172 
173 ## @}
174 # end of Doxygen group