Back to home page

sPhenix code displayed by LXR

 
 

    


Warning, /JETSCAPE/cmakemodules/FindGSL.cmake is written in an unsupported language. File is not indexed.

0001 ## 
0002 ## Try to find gnu scientific library GSL  
0003 ## (see http://www.gnu.org/software/gsl/)
0004 ## Once run this will define: 
0005 ## 
0006 ## GSL_FOUND       = system has GSL lib
0007 ##
0008 ## GSL_LIBRARIES   = full path to the libraries
0009 ##    on Unix/Linux with additional linker flags from "gsl-config --libs"
0010 ## 
0011 ## CMAKE_GSL_CXX_FLAGS  = Unix compiler flags for GSL, essentially "`gsl-config --cxxflags`"
0012 ##
0013 ## GSL_INCLUDE_DIR      = where to find headers 
0014 ##
0015 ## GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix
0016 ## GSL_EXE_LINKER_FLAGS = rpath on Unix
0017 ##
0018 ## Felix Woelk 07/2004
0019 ## minor corrections Jan Woetzel
0020 ##
0021 ## www.mip.informatik.uni-kiel.de
0022 ## --------------------------------
0023 ##
0024 
0025 
0026 IF(WIN32)
0027 
0028   SET(GSL_MINGW_PREFIX "c:/msys/local" )
0029   SET(GSL_MSVC_PREFIX "$ENV{LIB_DIR}")
0030   FIND_LIBRARY(GSL_LIB gsl PATHS 
0031     ${GSL_MINGW_PREFIX}/lib 
0032     ${GSL_MSVC_PREFIX}/lib
0033     )
0034   #MSVC version of the lib is just called 'cblas'
0035   FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS 
0036     ${GSL_MINGW_PREFIX}/lib 
0037     ${GSL_MSVC_PREFIX}/lib
0038     )
0039 
0040   FIND_PATH(GSL_INCLUDE_DIR gsl/gsl_blas.h 
0041     ${GSL_MINGW_PREFIX}/include 
0042     ${GSL_MSVC_PREFIX}/include
0043     )
0044 
0045   IF (GSL_LIB AND GSLCBLAS_LIB)
0046     SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
0047   ENDIF (GSL_LIB AND GSLCBLAS_LIB)
0048   
0049 ELSE(WIN32)
0050   IF(UNIX) 
0051     SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_HOME}/bin" CACHE STRING "preferred path to GSL (gsl-config)")
0052     FIND_PROGRAM(GSL_CONFIG gsl-config
0053       ${GSL_CONFIG_PREFER_PATH}
0054       $ENV{LIB_DIR}/bin
0055       /usr/local/bin/
0056       /usr/bin/
0057       )
0058     # MESSAGE("DBG GSL_CONFIG ${GSL_CONFIG}")
0059     
0060     IF (GSL_CONFIG) 
0061       # set CXXFLAGS to be fed into CXX_FLAGS by the user:
0062       EXEC_PROGRAM(${GSL_CONFIG}
0063           ARGS --cflags
0064           OUTPUT_VARIABLE GSL_CXX_FLAGS)
0065       
0066       # set INCLUDE_DIRS to prefix+include
0067       EXEC_PROGRAM(${GSL_CONFIG}
0068         ARGS --prefix
0069         OUTPUT_VARIABLE GSL_PREFIX)
0070       SET(GSL_INCLUDE_DIR ${GSL_PREFIX}/include CACHE STRING INTERNAL)
0071 
0072       # set link libraries and link flags
0073       EXEC_PROGRAM(${GSL_CONFIG}
0074           ARGS --libs
0075           OUTPUT_VARIABLE GSL_LIBRARIES)
0076       
0077       ## extract link dirs for rpath  
0078       EXEC_PROGRAM(${GSL_CONFIG}
0079         ARGS --libs
0080         OUTPUT_VARIABLE GSL_CONFIG_LIBS )
0081 
0082       ## split off the link dirs (for rpath)
0083       ## use regular expression to match wildcard equivalent "-L*<endchar>"
0084       ## with <endchar> is a space or a semicolon
0085       STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
0086         GSL_LINK_DIRECTORIES_WITH_PREFIX 
0087         "${GSL_CONFIG_LIBS}" )
0088         #      MESSAGE("DBG  GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}")
0089 
0090       ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
0091       
0092       IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
0093         STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )
0094       ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
0095       SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL)
0096       #      MESSAGE("DBG  GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
0097       #      MESSAGE("DBG  GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
0098 
0099       #      ADD_DEFINITIONS("-DHAVE_GSL")
0100       #      SET(GSL_DEFINITIONS "-DHAVE_GSL")
0101       MARK_AS_ADVANCED(
0102         GSL_CXX_FLAGS
0103         GSL_INCLUDE_DIR
0104         GSL_LIBRARIES
0105         GSL_LINK_DIRECTORIES
0106         GSL_DEFINITIONS
0107       )
0108       
0109     ELSE(GSL_CONFIG)
0110 
0111       IF (GSL_FIND_REQUIRED)
0112          MESSAGE(FATAL_ERROR "Could not find gsl-config. Please set it manually. GSL_CONFIG=${GSL_CONFIG}")
0113       ELSE (GSL_FIND_REQUIRED)
0114          MESSAGE(STATUS "Could not find GSL")
0115          # TODO: Avoid cmake complaints if GSL is not found
0116       ENDIF (GSL_FIND_REQUIRED)
0117 
0118     ENDIF(GSL_CONFIG)
0119 
0120   ENDIF(UNIX)
0121 ENDIF(WIN32)
0122 
0123 
0124 IF(GSL_LIBRARIES)
0125   IF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)
0126 
0127     SET(GSL_FOUND 1)
0128     
0129     MESSAGE(STATUS "Using GSL from ${GSL_PREFIX}")
0130     MESSAGE(STATUS "  GSL_INCLUDE_DIR : ${GSL_INCLUDE_DIR}")
0131     MESSAGE(STATUS "  GSL_CXX_FLAGS : ${GSL_CXX_FLAGS}")
0132 
0133   ENDIF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)
0134 ENDIF(GSL_LIBRARIES)
0135