1
# --------------------------------------------------------------------------
2
# OpenMS -- Open-Source Mass Spectrometry
3
# --------------------------------------------------------------------------
4
# Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5
# ETH Zurich, and Freie Universitaet Berlin 2002-2012.
7
# This software is released under a three-clause BSD license:
8
# * Redistributions of source code must retain the above copyright
9
# notice, this list of conditions and the following disclaimer.
10
# * Redistributions in binary form must reproduce the above copyright
11
# notice, this list of conditions and the following disclaimer in the
12
# documentation and/or other materials provided with the distribution.
13
# * Neither the name of any author or any participating institution
14
# may be used to endorse or promote products derived from this software
15
# without specific prior written permission.
16
# For a full list of authors, refer to the file AUTHORS.
17
# --------------------------------------------------------------------------
18
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
# --------------------------------------------------------------------------
31
# $Maintainer: Stephan Aiche $
32
# $Authors: Stephan Aiche $
33
# --------------------------------------------------------------------------
35
# Based on the FindGLPK module
37
SET(GSL_ROOT_DIR "" CACHE PATH "GSL root directory")
39
SET(GSL_REGKEY "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Gsl;InstallPath]")
40
GET_FILENAME_COMPONENT(GSL_ROOT_PATH ${GSL_REGKEY} ABSOLUTE)
42
FIND_PATH(GSL_INCLUDE_DIR
44
PATHS ${GSL_REGKEY}/include
45
HINTS ${GSL_ROOT_DIR}/include
48
FIND_LIBRARY(GSL_LIBRARY_RELEASE
50
PATHS ${GSL_REGKEY}/lib
51
HINTS ${GSL_ROOT_DIR}/lib
54
FIND_LIBRARY(GSL_LIBRARY_DEBUG
56
PATHS ${GSL_REGKEY}/lib
57
HINTS ${GSL_ROOT_DIR}/lib
60
FIND_LIBRARY(GSL_CBLAS_LIBRARY_RELEASE
63
PATHS ${GSL_REGKEY}/lib
64
HINTS ${GSL_ROOT_DIR}/lib
67
FIND_LIBRARY(GSL_CBLAS_LIBRARY_DEBUG
70
PATHS ${GSL_REGKEY}/lib
71
HINTS ${GSL_ROOT_DIR}/lib
74
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
75
SELECT_LIBRARY_CONFIGURATIONS(GSL)
76
SELECT_LIBRARY_CONFIGURATIONS(GSL_CBLAS)
78
IF(GSL_INCLUDE_DIR AND GSL_LIBRARY AND GSL_CBLAS_LIBRARY)
79
FILE(READ ${GSL_INCLUDE_DIR}/gsl_version.h GSL_GSL_VERSION_H)
81
string(REGEX MATCH "define[ ]+GSL_VERSION[ ]+\"[0-9]+\\.[0-9]+\"" GSL_VERSION_LINE "${GSL_GSL_VERSION_H}")
82
string(REGEX REPLACE "define[ ]+GSL_VERSION[ ]+\"([0-9.]+)\"" "\\1" GSL_VERSION_FULL "${GSL_VERSION_LINE}")
83
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" GSL_VERSION_MAJOR "${GSL_VERSION_FULL}")
84
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\2" GSL_VERSION_MINOR "${GSL_VERSION_FULL}")
86
SET(GSL_VERSION_STRING "${GSL_VERSION_MAJOR}.${GSL_VERSION_MINOR}")
89
IF(GSL_FIND_VERSION_COUNT GREATER 2)
90
MESSAGE(SEND_ERROR "unexpected version string")
91
ENDIF(GSL_FIND_VERSION_COUNT GREATER 2)
93
MATH(EXPR GSL_REQUESTED_VERSION "${GSL_FIND_VERSION_MAJOR}*100 + ${GSL_FIND_VERSION_MINOR}")
94
MATH(EXPR GSL_FOUND_VERSION "${GSL_VERSION_MAJOR}*100 + ${GSL_VERSION_MINOR}")
96
IF(GSL_FOUND_VERSION LESS GSL_REQUESTED_VERSION)
97
SET(GSL_PROPER_VERSION_FOUND FALSE)
98
ELSE(GSL_FOUND_VERSION LESS GSL_REQUESTED_VERSION)
99
SET(GSL_PROPER_VERSION_FOUND TRUE)
100
ENDIF(GSL_FOUND_VERSION LESS GSL_REQUESTED_VERSION)
101
ELSE(GSL_FIND_VERSION)
102
SET(GSL_PROPER_VERSION_FOUND TRUE)
103
ENDIF(GSL_FIND_VERSION)
104
ENDIF(GSL_INCLUDE_DIR AND GSL_LIBRARY AND GSL_CBLAS_LIBRARY)
106
INCLUDE(FindPackageHandleStandardArgs)
107
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSL
112
GSL_PROPER_VERSION_FOUND)
115
SET(GSL_INCLUDE_DIRS ${GSL_INCLUDE_DIR})
116
SET(GSL_LIBRARIES "${GSL_LIBRARY};${GSL_CBLAS_LIBRARY}")
117
SET(GSL_BIN_DIR ${GSL_ROOT_PATH}/bin)
120
MARK_AS_ADVANCED(GSL_LIBRARY