BASIS  r3148
FindBoostNumericBindings.cmake
Go to the documentation of this file.
00001 ##############################################################################
00002 # @file  FindBoostNumericBindings.cmake
00003 # @brief Find Boost Numeric Bindings package.
00004 #
00005 # This module looks for an installation of the Boost Numeric Bindings package,
00006 # a bindings library for Boost.Ublas
00007 # (see http://mathema.tician.de/software/boost-numeric-bindings). Note that
00008 # you will also need Boost.Ublas in order to use this headers-only library.
00009 #
00010 # @par Input variables:
00011 # <table border="0">
00012 #   <tr>
00013 #     @tp @b BoostNumericBindings_DIR @endtp
00014 #     <td>The Boost Numeric Bindings package files are searched under the
00015 #         specified root directory. This variable can also be set as environment
00016 #         variable.</td>
00017 #   </tr>
00018 #   <tr>
00019 #     @tp @b BOOSTNUMERICBINDINGS_DIR @endtp
00020 #     <td>Alternative environment variable for @p BoostNumericBindings_DIR.</td>
00021 #   </tr>
00022 # </table>
00023 #
00024 # @par Output variables:
00025 # <table border="0">
00026 #   <tr>
00027 #     @tp @b BoostNumericBindings_FOUND @endtp
00028 #     <td>Whether the Boost Numeric Bindings package was found and the following
00029 #         CMake variables are valid.</td>
00030 #   </tr>
00031 #   <tr>
00032 #     @tp @b BoostNumericBindings_INCLUDE_DIR @endtp
00033 #     <td>Cached include directory/ies.</td>
00034 #   </tr>
00035 #   <tr>
00036 #     @tp @b BoostNumericBindings_INCLUDE_DIRS @endtp
00037 #     <td>Alias for @p BoostNumericBindings_INCLUDE_DIR (not cached).</td>
00038 #   </tr>
00039 #   <tr>
00040 #     @tp @b BoostNumericBindings_INCLUDES @endtp
00041 #     <td>Alias for @p BoostNumericBindings_INCLUDE_DIR (not cached).</td>
00042 #   </tr>
00043 # </table>
00044 #
00045 # Copyright (c) 2012 University of Pennsylvania. All rights reserved.<br />
00046 # See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file.
00047 #
00048 # Contact: SBIA Group <sbia-software at uphs.upenn.edu>
00049 #
00050 # @ingroup CMakeFindModules
00051 ##############################################################################
00052 
00053 # ----------------------------------------------------------------------------
00054 # initialize search
00055 if (NOT BoostNumericBindings_DIR)
00056   if (NOT "$ENV{BOOSTNUMERICBINDINGS_DIR}" STREQUAL "")
00057     set (
00058       BoostNumericBindings_DIR
00059         "$ENV{BOOSTNUMERICBINDINGS_DIR}"
00060       CACHE PATH
00061         "Installation prefix of boost-numeric-bindings."
00062       FORCE
00063     )
00064   else ()
00065     set (
00066       BoostNumericBindings_DIR
00067         "$ENV{BoostNumericBindings_DIR}"
00068       CACHE PATH
00069         "Installation prefix of boost-numeric-bindings."
00070       FORCE
00071     )
00072   endif ()
00073 endif ()
00074 
00075 # ----------------------------------------------------------------------------
00076 # find paths/files
00077 if (BoostNumericBindings_DIR)
00078 
00079   find_path (
00080     BoostNumericBindings_INCLUDE_DIR
00081       NAMES         boost/numeric/bindings/atlas/cblas.hpp
00082       HINTS         ${BoostNumericBindings_DIR}
00083       PATH_SUFFIXES "include" "include/boost-numeric-bindings"
00084       DOC           "Root include directory of boost-numeric-bindings."
00085       NO_DEFAULT_PATH
00086   )
00087 
00088 else ()
00089 
00090   find_path (
00091     BoostNumericBindings_INCLUDE_DIR
00092       NAMES         boost/numeric/bindings/atlas/cblas.hpp
00093       HINTS         ENV C_INCLUDE_PATH ENV CXX_INCLUDE_PATH
00094       PATH_SUFFIXES boost-numeric-bindings
00095       DOC           "Root include directory of boost-numeric-bindings."
00096   )
00097 
00098 endif ()
00099 
00100 mark_as_advanced (BoostNumericBindings_INCLUDE_DIR)
00101 
00102 # ----------------------------------------------------------------------------
00103 # aliases / backwards compatibility
00104 if (BoostNumericBindings_INCLUDE_DIR)
00105   set (BoostNumericBindings_INCLUDE_DIRS "${BoostNumericBindings_INCLUDE_DIR}")
00106   set (BoostNumericBindings_INCLUDES     "${BoostNumericBindings_INCLUDE_DIR}")
00107 endif ()
00108 
00109 # ----------------------------------------------------------------------------
00110 # handle the QUIETLY and REQUIRED arguments and set *_FOUND to TRUE
00111 # if all listed variables are found or TRUE
00112 include (FindPackageHandleStandardArgs)
00113 
00114 find_package_handle_standard_args (
00115   BoostNumericBindings
00116   REQUIRED_VARS
00117     BoostNumericBindings_INCLUDE_DIR
00118 )
00119 
00120 set (BoostNumericBindings_FOUND ${BOOSTNUMERICBINDINGS_FOUND})
00121 
00122 # ----------------------------------------------------------------------------
00123 # set BoostNumericBindings_DIR
00124 if (NOT BoostNumericBindings_DIR AND BoostNumericBindings_FOUND)
00125   set (
00126     BoostNumericBindings_DIR
00127       "${BoostNumericBindings_INCLUDE_DIR}"
00128     CACHE PATH
00129       "Installation prefix for NiftiCLib."
00130     FORCE
00131   )
00132 endif ()