1 # ============================================================================ 2 # Copyright (c) 2011-2012 University of Pennsylvania 3 # Copyright (c) 2013-2016 Andreas Schuh 6 # See COPYING file for license information or visit 7 # https://cmake-basis.github.io/download.html#license 8 # ============================================================================ 10 ############################################################################## 11 # @file ProjectSettings.cmake 12 # @brief Default project-dependent settings. 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. 18 # @note More general, project-independent settings are defined in the file 19 # BasisSettings.cmake which is part of the BASIS installation. 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. 27 # @ingroup BasisSettings 28 ############################################################################## 30 ## @addtogroup BasisSettings 34 # ============================================================================ 36 # ============================================================================ 38 ## @brief Request build/installation of documentation. 39 if (EXISTS
"${PROJECT_DOC_DIR}/CMakeLists.txt")
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)
48 ## @brief Request build/installation of applications. 49 if (PROJECT_HAS_APPLICATIONS)
51 set (BUILD_APPLICATIONS_DEFAULT OFF)
53 option(BUILD_APPLICATIONS
"Request build and/or installation of applications." ${BUILD_APPLICATIONS_DEFAULT})
56 # ============================================================================ 58 # ============================================================================ 60 ## @brief CMake namespace of top-level project. 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. 67 ## @brief CMake
namespace of project.
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.
74 # @sa basis_get_target_uid() 75 # @sa basis_make_test_uid() 76 # @sa basis_get_test_uid() 79 ## @brief CMake variable of C++
namespace of project.
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.
86 # @ingroup BasisCxxUtilities
89 ## @brief CMake variable of Java package name of project. 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. 96 # @ingroup BasisJavaUtilities 99 ## @brief CMake variable of Python package name of project.
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.
106 # @ingroup BasisPythonUtilities
109 ## @brief CMake variable of Jython package name of project. 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. 116 # @ingroup BasisPythonUtilities 119 ## @brief CMake variable of Perl package name of project.
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>.
128 # @ingroup BasisPerlUtilities
131 ## @brief CMake variable of BASH namespace of project. 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 138 # @ingroup BasisBashUtilities 141 ## @brief CMake variable of MATLAB package name of project.
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.
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 150 # @ingroup BasisMatlabUtilities 151 set (PROJECT_NAMESPACE_MATLAB "basis") 153 # ============================================================================ 154 # package configuration 155 # ============================================================================ 157 ## @brief Prefix/name of CMake package configuration file of top-level project. 158 set (TOPLEVEL_PROJECT_PACKAGE_CONFIG_PREFIX "BASIS") 160 ## @brief Prefix/name of CMake package configuration file. 161 set (PROJECT_PACKAGE_CONFIG_PREFIX "BASIS") 163 ## @brief UID of package in CMake's user package registry.
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.
174 # end of Doxygen group function is(in result, in expected, in name)
Test whether a given result is equal to the expected result.
def which(command, path=None, verbose=0, exts=None)
cmake PROJECT_NAMESPACE_JAVA
CMake variable of Java package name of project.
cmake BUILD_APPLICATIONS_DEFAULT
Request build/installation of applications.
cmake TOPLEVEL_PROJECT_PACKAGE_UID
UID of package in CMake's user package registry.
option BUILD_EXAMPLE
Request build/installation of example.
cmake PROJECT_NAMESPACE_CXX
CMake variable of C++ namespace of project.
option BUILD_DOCUMENTATION
Request build/installation of documentation.
cmake TOPLEVEL_PROJECT_NAMESPACE_CMAKE
CMake namespace of top-level project.
cmake PROJECT_NAMESPACE_PERL
CMake variable of Perl package name of project.
function basis_make_target_uid(out TARGET_UID, in TARGET_NAME)
Make target UID from given target name.
cmake PROJECT_NAMESPACE_CMAKE
CMake namespace of project.
cmake PROJECT_NAMESPACE_PYTHON
CMake variable of Python package name of project.
cmake PROJECT_NAMESPACE_JYTHON
CMake variable of Jython package name of project.
cmake PROJECT_NAMESPACE_BASH
CMake variable of BASH namespace of project.