BASIS  r3148
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 &lt;Pkg&gt;_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}")