BasisConfigSettings.cmake
Go to the documentation of this file.
00001 ############################################################################## 00002 # @file BasisConfigSettings.cmake 00003 # @brief Sets basic variables used in CMake package configuration. 00004 # 00005 # It is suggested to use @c _CONFIG as suffix for variable names that are to be 00006 # substituted in the Config.cmake.in template file in order to distinguish 00007 # these variables from the build configuration. 00008 # 00009 # Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br /> 00010 # See https://www.rad.upenn.edu/sbia/software/license.html or COPYING file. 00011 # 00012 # Contact: SBIA Group <sbia-software at uphs.upenn.edu> 00013 # 00014 # @ingroup BasisSettings 00015 ############################################################################## 00016 00017 # ============================================================================ 00018 # common configuration settings 00019 # ============================================================================ 00020 00021 ## @brief Include directories of dependencies. 00022 set (INCLUDE_DIRS_CONFIG) 00023 ## @brief Directories of libraries this package depends on. 00024 set (LIBRARY_DIRS_CONFIG) 00025 00026 ## @brief Code to set cached <Pkg>_DIR variables in package configuration. 00027 set (DEPENDS_CONFIG) 00028 00029 set (PKGS) 00030 foreach (DEP IN LISTS PROJECT_DEPENDS PROJECT_OPTIONAL_DEPENDS) 00031 basis_tokenize_dependency ("${DEP}" PKG VER CMPS) 00032 if (NOT DEFINED ${PKG}_DIR) 00033 string (TOUPPER "${PKG}" PKG) 00034 endif () 00035 if (DEFINED ${PKG}_DIR) 00036 list (APPEND PKGS ${PKG}) 00037 endif () 00038 endforeach () 00039 00040 if (PKGS) 00041 list (REMOVE_DUPLICATES PKGS) 00042 endif () 00043 00044 foreach (PKG IN LISTS PKGS) 00045 set (DEPENDS_CONFIG "${DEPENDS_CONFIG}# ${PKG}\nset (${PKG}_DIR \"${${PKG}_DIR}\")\n") 00046 endforeach () 00047 00048 # ============================================================================ 00049 # build tree configuration settings 00050 # ============================================================================ 00051 00052 if (BUILD_CONFIG_SETTINGS) 00053 set (INSTALL_PREFIX_CONFIG "${PROJECT_BINARY_DIR}") 00054 if (BUILD_EXAMPLE) 00055 set (EXAMPLE_DIR_CONFIG "${PROJECT_EXAMPLE_DIR}") 00056 else () 00057 set (EXAMPLE_DIR_CONFIG) 00058 endif () 00059 set (INCLUDE_DIR_CONFIG "${BINARY_INCLUDE_DIR};${PROJECT_INCLUDE_DIR}") 00060 set (LIBRARY_DIR_CONFIG "${BINARY_LIBRARY_DIR}") 00061 set (PYTHONPATH_CONFIG "${BINARY_PYTHON_LIBRARY_DIR}") 00062 set (JYTHONPATH_CONFIG "${BINARY_JYTHON_LIBRARY_DIR}") 00063 set (PERL5LIB_CONFIG "${BINARY_PERL_LIBRARY_DIR}") 00064 set (MATLABPATH_CONFIG "${BINARY_MATLAB_LIBRARY_DIR}") 00065 set (BASHPATH_CONFIG "${BINARY_BASH_LIBRARY_DIR}") 00066 set (MODULES_DIR_CONFIG "${PROJECT_BINARY_DIR}/modules") 00067 return () 00068 endif () 00069 00070 # ============================================================================ 00071 # installation configuration settings 00072 # ============================================================================ 00073 00074 basis_get_relative_path (INSTALL_PREFIX_CONFIG "${CMAKE_INSTALL_PREFIX}/${INSTALL_CONFIG_DIR}" "${CMAKE_INSTALL_PREFIX}") 00075 00076 ## @brief Installation prefix. 00077 set (INSTALL_PREFIX_CONFIG "\${CMAKE_CURRENT_LIST_DIR}/${INSTALL_PREFIX_CONFIG}") 00078 ## @brief Directory of example files. 00079 if (BUILD_EXAMPLE) 00080 set (EXAMPLE_DIR_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_EXAMPLE_DIR}") 00081 else () 00082 set (EXAMPLE_DIR_CONFIG) 00083 endif () 00084 ## @brief Include directories. 00085 set (INCLUDE_DIR_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR}") 00086 ## @brief Directory where libraries are located. 00087 set (LIBRARY_DIR_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_LIBRARY_DIR}") 00088 ## @brief Directory of Python modules. 00089 set (PYTHONPATH_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_PYTHON_LIBRARY_DIR}") 00090 ## @brief Directory of Jython modules. 00091 set (JYTHONPATH_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_JYTHON_LIBRARY_DIR}") 00092 ## @brief Directory of Perl modules. 00093 set (PERL5LIB_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_PERL_LIBRARY_DIR}") 00094 ## @brief Directory of MATLAB modules. 00095 set (MATLABPATH_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_MATLAB_LIBRARY_DIR}") 00096 ## @brief Directory of Bash modules. 00097 set (BASHPATH_CONFIG "\${\${NS}INSTALL_PREFIX}/${INSTALL_BASH_LIBRARY_DIR}") 00098 ## @brief Directory of CMake package configuration files of project modules. 00099 set (MODULES_DIR_CONFIG "${INSTALL_CONFIG_DIR}")