BasisSettings.cmake
Go to the documentation of this file.
00001 ############################################################################## 00002 # @file BasisSettings.cmake 00003 # @brief Default project-independent settings. 00004 # 00005 # This module defines global CMake constants and variables which are used 00006 # by the BASIS CMake functions and macros. Hence, these values can be used 00007 # to configure the behavior of these functions to some extent without the 00008 # need to modify the functions themselves. 00009 # 00010 # @note As this file also sets the CMake policies to be used, it has to 00011 # be included using the @c NO_POLICY_SCOPE in order for these policies 00012 # to take effect also in the including file and its subdirectories. 00013 # 00014 # @attention Be careful when caching any of the variables. Usually, this 00015 # file is included in the root CMake configuration file of the 00016 # project which may also be a module of another project and hence 00017 # may overwrite this project's settings. 00018 # 00019 # @attention Keep in mind that this file is included before any other 00020 # BASIS module. Further, project-specific information such as 00021 # the project name are not defined yet. 00022 # 00023 # Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br /> 00024 # See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file. 00025 # 00026 # Contact: SBIA Group <sbia-software at uphs.upenn.edu> 00027 # 00028 # @ingroup BasisSettings 00029 ############################################################################## 00030 00031 ## @addtogroup BasisSettings 00032 # @{ 00033 00034 00035 # ============================================================================ 00036 # required modules 00037 # ============================================================================ 00038 00039 include ("${CMAKE_CURRENT_LIST_DIR}/CommonTools.cmake") 00040 00041 # ============================================================================ 00042 # CMake version and policies 00043 # ============================================================================ 00044 00045 cmake_minimum_required (VERSION 2.8.4) 00046 00047 # Add policies introduced with CMake versions newer than the one specified 00048 # above. These policies would otherwise trigger a policy not set warning by 00049 # newer CMake versions. 00050 00051 if (POLICY CMP0016) 00052 cmake_policy (SET CMP0016 NEW) 00053 endif () 00054 00055 if (POLICY CMP0017) 00056 cmake_policy (SET CMP0017 NEW) 00057 endif () 00058 00059 # ============================================================================ 00060 # system checks 00061 # ============================================================================ 00062 00063 # used by tests to disable these checks 00064 if (NOT BASIS_NO_SYSTEM_CHECKS) 00065 include (CheckTypeSize) 00066 include (CheckIncludeFileCXX) 00067 00068 # check if type long long is supported 00069 CHECK_TYPE_SIZE ("long long" LONG_LONG) 00070 00071 if (HAVE_LONG_LONG) 00072 set (HAVE_LONG_LONG 1) 00073 else () 00074 set (HAVE_LONG_LONG 0) 00075 endif () 00076 00077 # check for presence of sstream header 00078 include (TestForSSTREAM) 00079 00080 if (CMAKE_NO_ANSI_STRING_STREAM) 00081 set (HAVE_SSTREAM 0) 00082 else () 00083 set (HAVE_SSTREAM 1) 00084 endif () 00085 00086 # check if tr/tuple header file is available 00087 if (CMAKE_GENERATOR MATCHES "Visual Studio [1-9][0-9]+") 00088 set (HAVE_TR1_TUPLE 1) 00089 else () 00090 CHECK_INCLUDE_FILE_CXX ("tr1/tuple" HAVE_TR1_TUPLE) 00091 if (HAVE_TR1_TUPLE) 00092 set (HAVE_TR1_TUPLE 1) 00093 else () 00094 set (HAVE_TR1_TUPLE 0) 00095 endif () 00096 endif () 00097 00098 # check for availibility of pthreads library 00099 # defines CMAKE_USE_PTHREADS_INIT and CMAKE_THREAD_LIBS_INIT 00100 find_package (Threads) 00101 00102 if (Threads_FOUND) 00103 if (CMAKE_USE_PTHREADS_INIT) 00104 set (HAVE_PTHREAD 1) 00105 else () 00106 set (HAVE_PTHREAD 0) 00107 endif () 00108 endif () 00109 endif () 00110 00111 # ============================================================================ 00112 # meta-data lists 00113 # ============================================================================ 00114 00115 ## @brief Names of project meta-data switches. 00116 set ( 00117 BASIS_METADATA_LIST_SWITCH 00118 ) 00119 00120 ## @brief Names of project meta-data with only one argument. 00121 set ( 00122 BASIS_METADATA_LIST_SINGLE 00123 AUTHOR 00124 NAME 00125 SUBPROJECT 00126 PACKAGE 00127 PACKAGE_VENDOR 00128 PROVIDER # alias for PACKAGE_VENDOR 00129 COPYRIGHT 00130 LICENSE 00131 CONTACT 00132 VERSION 00133 ) 00134 00135 ## @brief Names of project meta-data with multiple arguments. 00136 set ( 00137 BASIS_METADATA_LIST_MULTI 00138 AUTHORS 00139 DESCRIPTION 00140 DEPENDS 00141 OPTIONAL_DEPENDS 00142 TEST_DEPENDS 00143 OPTIONAL_TEST_DEPENDS 00144 ) 00145 00146 ## @brief Names of project meta-data. 00147 set ( 00148 BASIS_METADATA_LIST 00149 ${BASIS_METADATA_LIST_SINGLE} 00150 ${BASIS_METADATA_LIST_MULTI} 00151 ) 00152 00153 ## @brief Names of additional meta-data for Slicer modules with only one argument. 00154 set ( 00155 BASIS_SLICER_METADATA_LIST_SINGLE 00156 HOMEPAGE 00157 ICONURL 00158 STATUS 00159 SCREENSHOTURLS 00160 ) 00161 00162 ## @brief Names of additional meta-data for Slicer modules with multiple arguments. 00163 set ( 00164 BASIS_SLICER_METADATA_LIST_MULTI 00165 ACKNOWLEDGEMENTS 00166 CATEGORY 00167 CONTRIBUTORS 00168 LICENSE_SHORT_DESCRIPTION 00169 ) 00170 00171 ## @brief Names of additional meta-data for Slicer modules. 00172 set ( 00173 BASIS_SLICER_METADATA_LIST 00174 ${BASIS_SLICER_METADATA_LIST_SINGLE} 00175 ${BASIS_SLICER_METADATA_LIST_MULTI} 00176 ) 00177 00178 # ============================================================================ 00179 # constants and global settings 00180 # ============================================================================ 00181 00182 ## @brief List of name patterns used for special purpose targets. 00183 # 00184 # Contains a list of target name patterns that are used by the BASIS functions 00185 # for special purposes and are hence not to be used for project targets. 00186 set ( 00187 BASIS_RESERVED_TARGET_NAMES 00188 "all" 00189 "bundle" 00190 "bundle_source" 00191 "changelog" 00192 "clean" 00193 "depend" 00194 "doc" 00195 "headers" 00196 "headers_check" 00197 "package" 00198 "package_source" 00199 "scripts" 00200 "test" 00201 "uninstall" 00202 ) 00203 00204 ## @brief Names of recognized properties on targets. 00205 # 00206 # Unfortunately, the @c ARGV and @c ARGN arguments of a CMake function() 00207 # or macro() does not preserve values which themselves are lists. Therefore, 00208 # it is not possible to distinguish between property names and their values 00209 # in the arguments passed to set_target_properties() or 00210 # basis_set_target_properties(). To overcome this problem, this list specifies 00211 # all the possible property names. Everything else is considered to be a 00212 # property value except the first argument follwing right after the 00213 # @c PROPERTIES keyword. Alternatively, basis_set_property() can be used 00214 # as here no disambiguity exists. 00215 # 00216 # @note Placeholders such as <CONFIG> are allowed. These are treated 00217 # as the regular expression "[^ ]+". See basis_list_to_regex(). 00218 # 00219 # @sa http://www.cmake.org/cmake/help/cmake-2-8-docs.html#section_PropertiesonTargets 00220 set (BASIS_PROPERTIES_ON_TARGETS 00221 # CMake 00222 <CONFIG>_OUTPUT_NAME 00223 <CONFIG>_POSTFIX 00224 ARCHIVE_OUTPUT_DIRECTORY 00225 ARCHIVE_OUTPUT_DIRECTORY_<CONFIG> 00226 ARCHIVE_OUTPUT_NAME 00227 ARCHIVE_OUTPUT_NAME_<CONFIG> 00228 AUTOMOC 00229 BUILD_WITH_INSTALL_RPATH 00230 BUNDLE 00231 BUNDLE_EXTENSION 00232 COMPILE_DEFINITIONS 00233 COMPILE_DEFINITIONS_<CONFIG> 00234 COMPILE_FLAGS 00235 DEBUG_POSTFIX 00236 DEFINE_SYMBOL 00237 ENABLE_EXPORTS 00238 EXCLUDE_FROM_ALL 00239 EchoString 00240 FOLDER 00241 FRAMEWORK 00242 Fortran_FORMAT 00243 Fortran_MODULE_DIRECTORY 00244 GENERATOR_FILE_NAME 00245 HAS_CXX 00246 IMPLICIT_DEPENDS_INCLUDE_TRANSFORM 00247 IMPORTED 00248 IMPORTED_CONFIGURATIONS 00249 IMPORTED_IMPLIB 00250 IMPORTED_IMPLIB_<CONFIG> 00251 IMPORTED_LINK_DEPENDENT_LIBRARIES 00252 IMPORTED_LINK_DEPENDENT_LIBRARIES_<CONFIG> 00253 IMPORTED_LINK_INTERFACE_LANGUAGES 00254 IMPORTED_LINK_INTERFACE_LANGUAGES_<CONFIG> 00255 IMPORTED_LINK_INTERFACE_LIBRARIES 00256 IMPORTED_LINK_INTERFACE_LIBRARIES_<CONFIG> 00257 IMPORTED_LINK_INTERFACE_MULTIPLICITY 00258 IMPORTED_LINK_INTERFACE_MULTIPLICITY_<CONFIG> 00259 IMPORTED_LOCATION 00260 IMPORTED_LOCATION_<CONFIG> 00261 IMPORTED_NO_SONAME 00262 IMPORTED_NO_SONAME_<CONFIG> 00263 IMPORTED_SONAME 00264 IMPORTED_SONAME_<CONFIG> 00265 IMPORT_PREFIX 00266 IMPORT_SUFFIX 00267 INSTALL_NAME_DIR 00268 INSTALL_RPATH 00269 INSTALL_RPATH_USE_LINK_PATH 00270 INTERPROCEDURAL_OPTIMIZATION 00271 INTERPROCEDURAL_OPTIMIZATION_<CONFIG> 00272 LABELS 00273 LIBRARY_OUTPUT_DIRECTORY 00274 LIBRARY_OUTPUT_DIRECTORY_<CONFIG> 00275 LIBRARY_OUTPUT_NAME 00276 LIBRARY_OUTPUT_NAME_<CONFIG> 00277 LINKER_LANGUAGE 00278 LINK_DEPENDS 00279 LINK_FLAGS 00280 LINK_FLAGS_<CONFIG> 00281 LINK_INTERFACE_LIBRARIES 00282 LINK_INTERFACE_LIBRARIES_<CONFIG> 00283 LINK_INTERFACE_MULTIPLICITY 00284 LINK_INTERFACE_MULTIPLICITY_<CONFIG> 00285 LINK_SEARCH_END_STATIC 00286 LINK_SEARCH_START_STATIC 00287 LOCATION 00288 LOCATION_<CONFIG> 00289 MACOSX_BUNDLE 00290 MACOSX_BUNDLE_INFO_PLIST 00291 MACOSX_FRAMEWORK_INFO_PLIST 00292 MAP_IMPORTED_CONFIG_<CONFIG> 00293 OSX_ARCHITECTURES 00294 OSX_ARCHITECTURES_<CONFIG> 00295 OUTPUT_NAME 00296 OUTPUT_NAME_<CONFIG> 00297 POST_INSTALL_SCRIPT 00298 PREFIX 00299 PRE_INSTALL_SCRIPT 00300 PRIVATE_HEADER 00301 PROJECT_LABEL 00302 PUBLIC_HEADER 00303 RESOURCE 00304 RULE_LAUNCH_COMPILE 00305 RULE_LAUNCH_CUSTOM 00306 RULE_LAUNCH_LINK 00307 RUNTIME_OUTPUT_DIRECTORY 00308 RUNTIME_OUTPUT_DIRECTORY_<CONFIG> 00309 RUNTIME_OUTPUT_NAME 00310 RUNTIME_OUTPUT_NAME_<CONFIG> 00311 SKIP_BUILD_RPATH 00312 SOURCES 00313 SOVERSION 00314 STATIC_LIBRARY_FLAGS 00315 STATIC_LIBRARY_FLAGS_<CONFIG> 00316 SUFFIX 00317 TYPE 00318 VERSION 00319 VS_GLOBAL_<variable> 00320 VS_KEYWORD 00321 VS_SCC_LOCALPATH 00322 VS_SCC_PROJECTNAME 00323 VS_SCC_PROVIDER 00324 WIN32_EXECUTABLE 00325 XCODE_ATTRIBUTE_<an-attribute> 00326 # BASIS 00327 BASIS_INCLUDE_DIRECTORIES # include directories 00328 BASIS_LINK_DIRECTORIES # link directories 00329 BASIS_LINK_DEPENDS # link libraries 00330 BASIS_TYPE # BASIS type of target 00331 BASIS_UTILITIES # whether BASIS utilities are used by this target 00332 BUNDLED # whether target belongs to same bundle/superbuild 00333 COMPILE_DEFINITIONS_FILE # script configuration file 00334 LANGUAGE # language of source files 00335 COMPILE # enable/disable compilation of script 00336 EXPORT # whether to export target 00337 LIBEXEC # whether the target is an auxiliary executable 00338 TEST # whether the target is a test 00339 MFILE # documentation file of MEX-file 00340 COMPONENT # package component of build target 00341 LIBRARY_COMPONENT # package component of the library component 00342 RUNTIME_COMPONENT # package component of the runtime component 00343 ARCHIVE_INSTALL_DIRECTORY # installation directory of library 00344 LIBRARY_INSTALL_DIRECTORY # installation directory of library 00345 RUNTIME_INSTALL_DIRECTORY # installation directory of runtime 00346 OUTPUT_DIRECTORY # output directory for generated files 00347 INSTALL_DIRECTORY # installation directory for generated files 00348 HTML_OUTPUT_DIRECTORY # Doxygen/Sphinx HTML output directory 00349 HTML_INSTALL_DIRECTORY # Doxygen/Sphinx HTML installation directory 00350 DIRHTML_OUTPUT_DIRECTORY # Sphinx HTML output directory 00351 DIRHTML_INSTALL_DIRECTORY # Sphinx HTML installation directory 00352 SINGLEHTML_OUTPUT_DIRECTORY # Sphinx HTML output directory 00353 SINGLEHTML_INSTALL_DIRECTORY # Sphinx HTML installation directory 00354 LINKCHECK_OUTPUT_DIRECTORY # Sphinx linkcheck output directory 00355 LINKCHECK_INSTALL_DIRECTORY # Sphinx linkcheck installation directory 00356 XML_OUTPUT_DIRECTORY # Doxygen XML output directory 00357 XML_INSTALL_DIRECTORY # Doxygen XML installation directory 00358 MAN_OUTPUT_DIRECTORY # Doxygen/Sphinx MAN output directory 00359 MAN_INSTALL_DIRECTORY # Doxygen/Sphinx MAN installation directory 00360 TEXT_OUTPUT_DIRECTORY # Sphinx text output directory 00361 TEXT_INSTALL_DIRECTORY # Sphinx text installation directory 00362 TEXINFO_OUTPUT_DIRECTORY # Sphinx Texinfo output directory 00363 TEXINFO_INSTALL_DIRECTORY # Sphinx Texinfo installation directory 00364 LATEX_OUTPUT_DIRECTORY # Doxygen/Sphinx LaTeX output directory 00365 LATEX_INSTALL_DIRECTORY # Doxygen/Sphinx LaTeX installation directory 00366 PDF_OUTPUT_DIRECTORY # Doxygen/Sphinx PDF output directory 00367 PDF_INSTALL_DIRECTORY # Doxygen/Sphinx PDF installation directory 00368 RTF_OUTPUT_DIRECTORY # Doxygen RTF output directory 00369 RTF_INSTALL_DIRECTORY # Doxygen RTF installation directory 00370 DOXYFILE # Doxygen configuration file 00371 OUTPUT # Doxygen output formats 00372 TAGFILE # Doxygen tag file 00373 CONFIG_DIRECTORY # Sphinx configuration directory 00374 BINARY_DIRECTORY # CMake build tree directory 00375 SOURCE_DIRECTORY # CMake or Sphinx source directory 00376 BUILDERS # Sphinx builders 00377 ) 00378 00379 # convert list of property names into regular expression 00380 basis_list_to_regex (BASIS_PROPERTIES_ON_TARGETS_RE ${BASIS_PROPERTIES_ON_TARGETS}) 00381 00382 ## @brief Whether BASIS shall use fully-qualified target UIDs. 00383 # 00384 # If this option is OFF, the namespace of the top-level BASIS project is 00385 # not prepended to the actual CMake build target names. 00386 # 00387 # For example, instead of the fully-qualified target UID 00388 # "sbia.@PROJECT_NAME_L@.target", the CMake target name will simply 00389 # be "target". Only when the target is referenced from another project, 00390 # the fully-qualified target UID is usually required. 00391 basis_set_if_empty (BASIS_USE_FULLY_QUALIFIED_UIDS OFF) 00392 00393 ## @brief Default component used for library targets when no component is specified. 00394 # 00395 # The default component a library target and its auxiliary files 00396 # are associated with if no component was specified, explicitly. 00397 set (BASIS_LIBRARY_COMPONENT "Development") 00398 00399 ## @brief Default component used for executables when no component is specified. 00400 # 00401 # The default component an executable target and its auxiliary files 00402 # are associated with if no component was specified, explicitly. 00403 set (BASIS_RUNTIME_COMPONENT "Runtime") 00404 00405 ## @brief Specifies that the BASIS C++ utilities shall by default not be added 00406 # as dependency of an executable. 00407 set (BASIS_UTILITIES TRUE) 00408 00409 ## @brief Whether to export build targets by default. 00410 set (BASIS_EXPORT TRUE) 00411 00412 ## @brief Disable use of the revision information obtained from the revision 00413 # control software such as Subversion. 00414 # 00415 # If this option is @c TRUE, the revision information is not included in the 00416 # @c PROJECT_RELEASE information. 00417 option (BASIS_REVISION_INFO "Enable use of the revision information of the revision control software." ON) 00418 mark_as_advanced (BASIS_REVISION_INFO) 00419 00420 ## @brief Enable compilation of scripts if supported by the language. 00421 # 00422 # In particular, Python modules are compiled if this option is enabled and 00423 # only the compiled modules are installed. 00424 # 00425 # @sa basis_add_script_target() 00426 option (BASIS_COMPILE_SCRIPTS "Enable compilation of scripts if supported by the language." OFF) 00427 mark_as_advanced (BASIS_COMPILE_SCRIPTS) 00428 00429 ## @brief Enable the installation of scripted modules in site specific default directories. 00430 # 00431 # If this option is @c ON, scripted modules such as Python and Perl modules, in particular, 00432 # are installed in the default installation directories for site packages of the respective 00433 # interpreter. This means that these modules may be installed outside the installation 00434 # root directory as specified by the @c CMAKE_INSTALL_PREFIX. When this option is set to 00435 # @c OFF, all modules are installed in subdirectories of the @c CMAKE_INSTALL_PREFIX. 00436 # These directories may have to be added to the search path for modules manually as they 00437 # might not be in the default search path of the respective interpreter. 00438 # 00439 # The installation directories for public modules which are intended for external use 00440 # can further be set using the -D option of CMake or be modified by editing the respective 00441 # advanced CMake cache variables named <tt>INSTALL_<LANG%gt;_SITE_DIR</tt>. 00442 # 00443 # @note Even though it is more convenient for the user of a package to have the modules 00444 # being installed in the default directories, this option is set to @c OFF by default. 00445 # The reasons are that it is in first place expected that the installation will copy 00446 # files only to directories within the @c CMAKE_INSTALL_PREFIX. Moreover, it is not 00447 # guaranteed that the user has write permissions for the default site packages directories. 00448 # Last but not least, when installing public modules located in the @c PROJECT_LIBRARY_DIR 00449 # source directory, BASIS does not set a default module @c PREFIX which reduces the risk 00450 # of overwriting existing modules of other packages. If the developer of a BASIS package 00451 # was not thorough enough and did not follow the guidelines, setting this option to @c ON 00452 # has the potential risk of overwriting other packages' modules. Therefore, 00453 # modules are only installed in system default locations if explicitly requested. 00454 option (BASIS_INSTALL_SITE_PACKAGES "Enable the installation of scripted modules in site specific default directories." OFF) 00455 mark_as_advanced (BASIS_INSTALL_SITE_PACKAGES) 00456 00457 ## @brief Script used to execute a process in CMake script mode. 00458 # 00459 # In order to be able to assign a timeout to the execution of a custom command 00460 # and to add some error message parsing, this script is used by some build 00461 # rules to actually perform the build step. See for example, the build of 00462 # executables using the MATLAB Compiler. 00463 set (BASIS_SCRIPT_EXECUTE_PROCESS "${BASIS_MODULE_PATH}/ExecuteProcess.cmake") 00464 00465 ## @brief File used by default as <tt>--authors</tt> file to <tt>svn2cl</tt>. 00466 # 00467 # This file lists all Subversion users at SBIA and is used by default for 00468 # the mapping of Subversion user names to real names during the generation 00469 # of changelogs. 00470 set (BASIS_SVN_USERS_FILE "${BASIS_MODULE_PATH}/SubversionUsers.txt") 00471 00472 ## @brief Force installation of public header files of BASIS C++ utilities. 00473 # 00474 # If this variable is set to FALSE, each header file in the @c PROJECT_INCLUDE_DIR 00475 # is scanned for an include statement which includes one of the public header 00476 # files of the BASIS C++ utilities. If such include statement was found in 00477 # a public header file of the project, the public header files of the BASIS 00478 # C++ utilities are also installed as the project's public header files depend 00479 # on them. You can set this variable to TRUE in the Settings.cmake file of your 00480 # project to force the installation of the public header files of the 00481 # project-specific BASIS C++ utilities. 00482 # 00483 # @sa basis_install_public_headers() 00484 basis_set_if_empty (BASIS_INSTALL_PUBLIC_HEADERS_OF_CXX_UTILITIES FALSE) 00485 00486 ## @brief Enable/disable registration of installed package in CMake registry. 00487 option (BASIS_REGISTER "Request registration of installed package in CMake package registry." ON) 00488 mark_as_advanced (BASIS_REGISTER) 00489 00490 # ============================================================================ 00491 # programming language specific settings 00492 # ============================================================================ 00493 00494 ## @brief List of programming languages explicitly supported by BASIS. 00495 # 00496 # @todo Add full support for Java. 00497 set (BASIS_LANGUAGES CXX Python Jython Perl Matlab Bash) 00498 00499 string (TOLOWER "${BASIS_LANGUAGES}" BASIS_LANGUAGES_L) 00500 string (TOUPPER "${BASIS_LANGUAGES}" BASIS_LANGUAGES_U) 00501 00502 # ---------------------------------------------------------------------------- 00503 # namespace delimiters 00504 # ---------------------------------------------------------------------------- 00505 00506 ## @brief Namespace delimiter used in C++. 00507 set (BASIS_NAMESPACE_DELIMITER_CXX .) 00508 ## @brief Namespace delimiter used in Python. 00509 set (BASIS_NAMESPACE_DELIMITER_PYTHON .) 00510 ## @brief Namespace delimiter used in Jython. 00511 set (BASIS_NAMESPACE_DELIMITER_JYTHON .) 00512 ## @brief Namespace delimiter used in Perl. 00513 set (BASIS_NAMESPACE_DELIMITER_PERL ::) 00514 ## @brief Namespace delimiter used in MATLAB. 00515 set (BASIS_NAMESPACE_DELIMITER_MATLAB .) 00516 ## @brief Namespace delimiter used in Bash. 00517 # 00518 # @note Bash itself has no concept of namespaces. This namespace delimiter is 00519 # used by the import() function of the BASIS Utilities for Bash. 00520 # 00521 # @sa BasisBashUtilities 00522 set (BASIS_NAMESPACE_DELIMITER_BASH .) 00523 00524 # ---------------------------------------------------------------------------- 00525 # public libraries of script modules 00526 # ---------------------------------------------------------------------------- 00527 00528 ## @brief Name of library target which builds Python modules in @c PROJECT_LIBRARY_DIR. 00529 # 00530 # This variable is used by basis_configure_script_libraries() which is called 00531 # by basis_project_impl() to add a library target of the given name for the 00532 # build of the Python modules found in the @c PROJECT_LIBRARY_DIR. 00533 # 00534 # @note The given target name is argument to the basis_add_library() command. 00535 # Overwrite default value in Settings.cmake file of project if desired. 00536 set (PYTHON_LIBRARY_TARGET "pythonlib") 00537 00538 ## @brief Name of library target which builds Jython modules in @c PROJECT_LIBRARY_DIR. 00539 # 00540 # This variable is used by basis_configure_script_libraries() which is called 00541 # by basis_project_impl() to add a library target of the given name for the 00542 # build of the Jython modules found in the @c PROJECT_LIBRARY_DIR. 00543 # 00544 # @note The given target name is argument to the basis_add_library() command. 00545 # Overwrite default value in Settings.cmake file of project if desired. 00546 set (JYTHON_LIBRARY_TARGET "jythonlib") 00547 00548 ## @brief Name of library target which builds Perl modules in @c PROJECT_LIBRARY_DIR. 00549 # 00550 # This variable is used by basis_configure_script_libraries() which is called 00551 # by basis_project_impl() to add a library target of the given name for the 00552 # build of the Perl modules found in the @c PROJECT_LIBRARY_DIR. 00553 # 00554 # @note The given target name is argument to the basis_add_library() command. 00555 # Overwrite default value in Settings.cmake file of project if desired. 00556 set (PERL_LIBRARY_TARGET "perllib") 00557 00558 ## @brief Name of library target which builds MATLAB modules in @c PROJECT_LIBRARY_DIR. 00559 # 00560 # This variable is used by basis_configure_script_libraries() which is called 00561 # by basis_project_impl() to add a library target of the given name for the 00562 # build of the MATLAB modules found in the @c PROJECT_LIBRARY_DIR. 00563 # 00564 # @note The given target name is argument to the basis_add_library() command. 00565 # Overwrite default value in Settings.cmake file of project if desired. 00566 set (MATLAB_LIBRARY_TARGET "matlablib") 00567 00568 ## @brief Name of library target which builds Bash modules in @c PROJECT_LIBRARY_DIR. 00569 # 00570 # This variable is used by basis_configure_script_libraries() which is called 00571 # by basis_project_impl() to add a library target of the given name for the 00572 # build of the Bash modules found in the @c PROJECT_LIBRARY_DIR. 00573 # 00574 # @note The given target name is argument to the basis_add_library() command. 00575 # Overwrite default value in Settings.cmake file of project if desired. 00576 set (BASH_LIBRARY_TARGET "bashlib") 00577 00578 # ============================================================================ 00579 # documentation 00580 # ============================================================================ 00581 00582 ## @brief Advanced option to request build of documentation targets as part of ALL target. 00583 option (BASIS_ALL_DOC "Request build of documentation targets as part of ALL target." OFF) 00584 mark_as_advanced (BASIS_ALL_DOC) 00585 00586 ## @brief Default Doxygen configuration. 00587 set (BASIS_DOXYGEN_DOXYFILE "${CMAKE_CURRENT_LIST_DIR}/Doxyfile.in") 00588 00589 ## @brief Default Sphinx configuration. 00590 set (BASIS_SPHINX_CONFIG "${CMAKE_CURRENT_LIST_DIR}/sphinx_conf.py.in") 00591 00592 ## @brief Default Sphinx theme. 00593 set (BASIS_SPHINX_HTML_THEME "sbia") 00594 00595 ## @brief Default Sphinx theme options. 00596 set (BASIS_SPHINX_HTML_THEME_OPTIONS 00597 PROJECT_LOGO None 00598 SHOW_SBIA_LOGO true 00599 SHOW_PENN_LOGO true 00600 SHOW_RELBAR2 false 00601 ROOT_RELLINKS "[('home', 'index')]" 00602 ) 00603 00604 # ============================================================================ 00605 # common options 00606 # ============================================================================ 00607 00608 ## @brief Request verbose messages from BASIS functions. 00609 option (BASIS_VERBOSE "Request BASIS functions to output verbose messages." OFF) 00610 mark_as_advanced (BASIS_VERBOSE) 00611 00612 ## @brief Request debugging messages from BASIS functions. 00613 option (BASIS_DEBUG "Request BASIS functions to help debugging." OFF) 00614 mark_as_advanced (BASIS_DEBUG) 00615 00616 # ============================================================================ 00617 # build configuration 00618 # ============================================================================ 00619 00620 if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS AND NOT CMAKE_C_FLAGS) 00621 set ( 00622 CMAKE_BUILD_TYPE "Release" 00623 CACHE STRING "Choose the type of build, options are: None (CMAKE_C_FLAGS and CMAKE_CXX_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." 00624 FORCE 00625 ) 00626 endif () 00627 00628 # the following Mac OS specific variables are yet not further used 00629 # hide them from the normal user, as they are usually not required (yet) 00630 if (DEFINED CMAKE_OSX_ARCHITECTURES) 00631 mark_as_advanced (CMAKE_OSX_ARCHITECTURES) 00632 endif () 00633 if (DEFINED CMAKE_OSX_DEPLOYMENT_TARGET) 00634 mark_as_advanced (CMAKE_OSX_DEPLOYMENT_TARGET) 00635 endif () 00636 if (DEFINED CMAKE_OSX_SYSROOT) 00637 mark_as_advanced (CMAKE_OSX_SYSROOT) 00638 endif () 00639 00640 # use RPATH 00641 set (CMAKE_SKIP_RPATH FALSE) # use RPATH for installed project own binaries 00642 set (CMAKE_SKIP_BUILD_RPATH FALSE) # use RPATH for project own binaries 00643 set (CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE) # do not add directories outside project to RPATH 00644 set (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) # use different RPATH for build tree executables 00645 00646 00647 ## @} 00648 # end of Doxygen group