BASIS  version 1.2.3 (revision 2104)
BASISConfig.cmake
Go to the documentation of this file.
00001 ##############################################################################
00002 # @file  BASISConfig.cmake
00003 # @brief CMake package configuration file.
00004 #
00005 # @note The BASISConfig.cmake file is automatically generated
00006 #       by BASIS from the template file Config.cmake.in which is part of
00007 #       this package.
00008 #
00009 # Variables in this file have to be prefixed by the name of this package.
00010 # In the default package configuration file of BASIS, which can be included
00011 # here using the \@BASIS_CONFIG\@ variable, this prefix is defined as @c NS
00012 # variable. Moreover, the macro basis_set_config() should be used for
00013 # convenience to set any configuration variable, e.g.,
00014 #
00015 # @code
00016 # basis_set_config (INCLUDE_DIR "\@INCLUDE_DIR_CONFIG\@")
00017 # @endcode
00018 #
00019 # where the variable @c INCLUDE_DIR_CONFIG is set in the ConfigSettings.cmake
00020 # file of the BASIS installation. Note that this statement will set the
00021 # variable ${NS}INCLUDE_DIR, where by default @c NS is the package name
00022 # followed by an underscore (_).
00023 #
00024 # See the %Config.cmake.in file of BASIS for details.
00025 #
00026 # Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br />
00027 # See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file.
00028 #
00029 # Contact: SBIA Group <sbia-software at uphs.upenn.edu>
00030 #
00031 # @ingroup BasisConfig
00032 ##############################################################################
00033 
00034 ## @addtogroup BasisConfig
00035 # @{
00036 
00037 
00038 # ============================================================================
00039 # namespace
00040 # ============================================================================
00041 
00042 # prefix used for variable names
00043 set (NS "BASIS_")
00044 
00045 # allow caller to change namespace - used by projects with modules
00046 if (${NS}CONFIG_PREFIX)
00047   set (NS "${${NS}CONFIG_PREFIX}")
00048 endif ()
00049 
00050 # ----------------------------------------------------------------------------
00051 macro (basis_set_config NAME)
00052   set (${NS}${NAME} ${ARGN})
00053 endmacro ()
00054 
00055 # ----------------------------------------------------------------------------
00056 macro (basis_copy_config NAME SRC)
00057   set (${NS}${NAME} ${${NS}${SRC}})
00058 endmacro ()
00059 
00060 # ----------------------------------------------------------------------------
00061 macro (basis_append_config NAME)
00062   list (APPEND ${NS}${NAME} ${ARGN})
00063 endmacro ()
00064 
00065 # ----------------------------------------------------------------------------
00066 macro (basis_remove_duplicates_config NAME)
00067   if (${NS}${NAME})
00068     list (REMOVE_DUPLICATES ${NS}${NAME})
00069   endif ()
00070 endmacro ()
00071 
00072 # ============================================================================
00073 # general
00074 # ============================================================================
00075 
00076 ## @brief Absolute path of installation prefix or root of build tree.
00077 basis_set_config (INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../")
00078 get_filename_component (${NS}INSTALL_PREFIX "${${NS}INSTALL_PREFIX}" ABSOLUTE)
00079 
00080 ## @brief Absolute path of project use file which is included by other projects.
00081 basis_set_config (USE_FILE "${CMAKE_CURRENT_LIST_DIR}/BASISUse.cmake")
00082 
00083 # ============================================================================
00084 # libraries
00085 # ============================================================================
00086 
00087 ## @brief Prefix required for including header files of this package.
00088 basis_set_config (INCLUDE_PREFIX "sbia/basis/")
00089 
00090 ## @brief Directory of header files.
00091 basis_set_config (INCLUDE_DIR "${${NS}INSTALL_PREFIX}/include")
00092 
00093 ## @brief Directory of header files including dependencies.
00094 basis_set_config    (INCLUDE_DIRS) # to have a set recognized by Doxygen filter
00095 basis_copy_config   (INCLUDE_DIRS INCLUDE_DIR)
00096 basis_append_config (INCLUDE_DIRS "")
00097 
00098 ## @brief Directory of libraries.
00099 basis_set_config (LIBRARY_DIR "${${NS}INSTALL_PREFIX}/lib")
00100 
00101 ## @brief Directory of libraries including dependencies.
00102 basis_set_config    (LIBRARY_DIRS) # to have a set recognized by Doxygen filter
00103 basis_copy_config   (LIBRARY_DIRS LIBRARY_DIR)
00104 basis_append_config (LIBRARY_DIRS "")
00105 
00106 ## @brief Search path for Python package.
00107 basis_set_config (PYTHON_LIBRARY_DIR "${${NS}INSTALL_PREFIX}/lib/python")
00108 
00109 ## @brief Search path for Perl packages.
00110 basis_set_config (PERL_LIBRARY_DIR "${${NS}INSTALL_PREFIX}/lib/perl5")
00111 
00112 # ============================================================================
00113 # exports
00114 # ============================================================================
00115 
00116 ## @brief Absolute path of exports file to be included by other projects.
00117 basis_set_config (EXPORTS_FILE "${CMAKE_CURRENT_LIST_DIR}/BASISExports.cmake")
00118 
00119 ## @brief Absolute path of custom exports file to be included by other projects.
00120 basis_set_config (CUSTOM_EXPORTS_FILE "${CMAKE_CURRENT_LIST_DIR}/BASISCustomExports.cmake")
00121 
00122 # ============================================================================
00123 # modules
00124 # ============================================================================
00125 
00126 # following statements only valid for top-level projects, not modules
00127 if (NOT FALSE)
00128   ## @brief List of project modules.
00129   basis_set_config (MODULES "")
00130 
00131   ## @brief List of built project modules.
00132   basis_set_config (MODULES_ENABLED "")
00133 
00134   ## @brief List of modules requested by external package using the
00135   #         @c COMPONENTS argument of
00136   #         <a href="http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:find_package">
00137   #         find_package()</a>.
00138   if (${NS}FIND_COMPONENTS)
00139     basis_set_config (MODULES_REQUESTED "${${NS}FIND_COMPONENTS}")
00140   endif()
00141   if(NOT ${NS}MODULES_REQUESTED)
00142     basis_set_config (MODULES_REQUESTED "${${NS}MODULES_ENABLED}")
00143   endif()
00144 
00145   foreach (${NS}MODULE IN LISTS ${NS}MODULES_REQUESTED)
00146     # include configuration files of modules
00147     set (${${NS}MODULE}_CONFIG_PREFIX "${NS}${MODULE}_")
00148     include ("lib/cmake/basis/${${NS}MODULE}/${${NS}MODULE}Config.cmake")
00149     unset (${${NS}MODULE}_CONFIG_PREFIX)
00150     # append include directories
00151     if (${NS}${${NS}MODULE}_INCLUDE_DIRS)
00152       basis_append_config (INCLUDE_DIRS ${${NS}${${NS}MODULE}_INCLUDE_DIRS})
00153     elseif (${NS}${M}_INCLUDE_DIR)
00154       basis_append_config (INCLUDE_DIRS ${${NS}${${NS}MODULE}_INCLUDE_DIR})
00155     endif ()
00156     # append library directories
00157     if (${NS}${${NS}MODULE}_LIBRARY_DIRS)
00158       basis_append_config (LIBRARY_DIRS ${${NS}${${NS}MODULE}_LIBRARY_DIRS})
00159     elseif (${NS}${${NS}MODULE}_LIBARY_DIR)
00160       basis_append_config (LIBRARY_DIRS ${${NS}${${NS}MODULE}_LIBRARY_DIR})
00161     endif ()
00162   endforeach ()
00163   unset (${NS}MODULE)
00164 endif ()
00165 
00166 basis_remove_duplicates_config (INCLUDE_DIR)
00167 basis_remove_duplicates_config (INCLUDE_DIRS)
00168 basis_remove_duplicates_config (LIBRARY_DIR)
00169 basis_remove_duplicates_config (LIBRARY_DIRS)
00170 
00171 # ============================================================================
00172 # BASIS configuration
00173 # ============================================================================
00174 
00175 # ----------------------------------------------------------------------------
00176 # CMake modules
00177 
00178 ## @brief Absolute path to CMake modules.
00179 basis_set_config (MODULE_PATH "${${NS}INSTALL_PREFIX}/share/cmake")
00180 
00181 # ----------------------------------------------------------------------------
00182 # project template
00183 
00184 ## @brief Top directory of project template.
00185 basis_set_config (TEMPLATE_DIR "${${NS}INSTALL_PREFIX}/share/template-1.3")
00186 
00187 # ----------------------------------------------------------------------------
00188 # utilities
00189 
00190 ## @brief List of enabled BASIS utilities.
00191 basis_set_config (UTILITIES_ENABLED "CXX;PYTHON;PERL;BASH")
00192 
00193 ## @brief Python interpreter used to build/configure BASIS Python modules.
00194 basis_set_config (PYTHON_EXECUTABLE "/sbiasfw/external/python/2.5.2/bin/python")
00195 ## @brief Perl interpreter used to build/configure BASIS Perl modules.
00196 basis_set_config (PERL_EXECUTABLE "/usr/bin/perl")
00197 ## @brief BASH executable used to build/configure BASIS BASH modules.
00198 basis_set_config (BASH_EXECUTABLE "/bin/bash")
00199 
00200 ## @brief Absolute path to C++ utilities files.
00201 basis_set_config (CXX_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/cxx")
00202 ## @brief Absolute path to Java utilities files.
00203 basis_set_config (JAVA_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/java")
00204 ## @brief Absolute path to Python utilities files.
00205 basis_set_config (PYTHON_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/python")
00206 ## @brief Absolute path to Perl utilities files.
00207 basis_set_config (PERL_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/perl")
00208 ## @brief Absolute path to BASH utilities files.
00209 basis_set_config (BASH_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/bash")
00210 ## @brief Absolute path to MATLAB utilities files.
00211 basis_set_config (MATLAB_TEMPLATES_DIR "${${NS}INSTALL_PREFIX}/share/utilities/matlab")
00212 
00213 ## @brief Utilities library.
00214 basis_set_config (UTILITIES_LIBRARY "sbia.basis.utilities")
00215 ## @brief Unit testing library.
00216 basis_set_config (TEST_LIBRARY "sbia.basis.testlib")
00217 ## @brief Implementation of main() function of unit test driver.
00218 basis_set_config (TEST_MAIN_LIBRARY "sbia.basis.testmain")
00219 
00220 ## @brief Main libraries.
00221 basis_set_config (LIBRARIES
00222   ${${NS}UTILITIES_LIBRARY}
00223   ${${NS}TEST_LIBRARY}
00224 )
00225 
00226 # ----------------------------------------------------------------------------
00227 # CMake tools
00228 
00229 include ("${${NS}MODULE_PATH}/BasisTools.cmake")
00230 include ("${${NS}MODULE_PATH}/BasisSettings.cmake" NO_POLICY_SCOPE)
00231 
00232 
00233 ## @}
00234 # end of Doxygen group - keep at end of file