1 # - Try to find GSL
2 # Once done this will define
3 #
4 # GSL_FOUND - system has GSL
5 # GSL_INCLUDE_DIRS - the GSL include directory
6 # GSL_LIBRARIES - Link these to use GSL
7 # GSL_DEFINITIONS - Compiler switches required for using GSL
8 #
9 # Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
10 #
11 # Redistribution and use is allowed according to the terms of the New
12 # BSD license.
13 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
14 #
17 if (GSL_LIBRARIES AND GSL_INCLUDE_DIRS)
18 # in cache already
19 set(GSL_FOUND TRUE)
20 else (GSL_LIBRARIES AND GSL_INCLUDE_DIRS)
21 # use pkg-config to get the directories and then use these values
22 # in the FIND_PATH() and FIND_LIBRARY() calls
23 if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
24 include(UsePkgConfig)
25 pkgconfig(gsl _GSL_INCLUDEDIR _GSL_LIBDIR _GSL_LDFLAGS _GSL_CFLAGS)
26 else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
27 find_package(PkgConfig)
28 if (PKG_CONFIG_FOUND)
29 pkg_check_modules(_GSL gsl)
30 endif (PKG_CONFIG_FOUND)
31 endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
32 find_path(GSL_INCLUDE_DIR
33 NAMES
34 gsl_blas.h
35 PATHS
36 ${_GSL_INCLUDEDIR}
37 /usr/include
38 /usr/local/include
39 /opt/local/include
40 /sw/include
41 PATH_SUFFIXES
42 gsl
43 )
45 find_library(GSL_LIBRARY
46 NAMES
47 gsl
48 PATHS
49 ${_GSL_LIBDIR}
50 /usr/lib
51 /usr/local/lib
52 /opt/local/lib
53 /sw/lib
54 )
56 if (GSL_LIBRARY)
57 set(GSL_FOUND TRUE)
58 endif (GSL_LIBRARY)
60 set(GSL_INCLUDE_DIRS
61 ${GSL_INCLUDE_DIR}
62 )
64 if (GSL_FOUND)
65 set(GSL_LIBRARIES
66 ${GSL_LIBRARIES}
67 ${GSL_LIBRARY}
68 )
69 endif (GSL_FOUND)
71 if (GSL_INCLUDE_DIRS AND GSL_LIBRARIES)
72 set(GSL_FOUND TRUE)
73 endif (GSL_INCLUDE_DIRS AND GSL_LIBRARIES)
75 if (GSL_FOUND)
76 if (NOT GSL_FIND_QUIETLY)
77 message(STATUS "Found GSL: ${GSL_LIBRARIES}")
78 endif (NOT GSL_FIND_QUIETLY)
79 else (GSL_FOUND)
80 if (GSL_FIND_REQUIRED)
81 message(FATAL_ERROR "Could not find GSL")
82 endif (GSL_FIND_REQUIRED)
83 endif (GSL_FOUND)
85 # show the GSL_INCLUDE_DIRS and GSL_LIBRARIES variables only in the advanced view
86 mark_as_advanced(GSL_INCLUDE_DIRS GSL_LIBRARIES)
88 endif (GSL_LIBRARIES AND GSL_INCLUDE_DIRS)