mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			138 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
## 
 | 
						|
## Try to find gnu scientific library GSL  
 | 
						|
## (see http://www.gnu.org/software/gsl/)
 | 
						|
## Once run this will define: 
 | 
						|
## 
 | 
						|
## GSL_FOUND       = system has GSL lib
 | 
						|
##
 | 
						|
## GSL_LIBRARIES   = full path to the libraries
 | 
						|
##    on Unix/Linux with additional linker flags from "gsl-config --libs"
 | 
						|
## 
 | 
						|
## CMAKE_GSL_CXX_FLAGS  = Unix compiler flags for GSL, essentially "`gsl-config --cxxflags`"
 | 
						|
##
 | 
						|
## GSL_INCLUDE_DIR      = where to find headers 
 | 
						|
##
 | 
						|
## GSL_LINK_DIRECTORIES = link directories, useful for rpath on Unix
 | 
						|
## GSL_EXE_LINKER_FLAGS = rpath on Unix
 | 
						|
##
 | 
						|
## Felix Woelk 07/2004
 | 
						|
## minor corrections Jan Woetzel
 | 
						|
##
 | 
						|
## www.mip.informatik.uni-kiel.de
 | 
						|
## --------------------------------
 | 
						|
##
 | 
						|
 | 
						|
IF(WIN32)
 | 
						|
  FIND_PATH(GSL_INCLUDE_DIR gsl/gsl_blas.h 
 | 
						|
    ${LIB_DIR}/include 
 | 
						|
    $ENV{INCLUDE}
 | 
						|
    )
 | 
						|
 | 
						|
  FIND_LIBRARY(GSL_LIB gsl PATHS 
 | 
						|
    ${LIB_DIR}/lib
 | 
						|
    $ENV{LIB}
 | 
						|
    )
 | 
						|
 | 
						|
  FIND_LIBRARY(GSLCBLAS_LIB gslcblas cblas PATHS 
 | 
						|
    ${LIB_DIR}/lib
 | 
						|
    $ENV{LIB}
 | 
						|
  )
 | 
						|
 | 
						|
  SET (GSL_LIBRARIES ${GSL_LIB} ${GSLCBLAS_LIB})
 | 
						|
ELSE(WIN32)
 | 
						|
  IF(UNIX) 
 | 
						|
 | 
						|
    # try to use framework on mac
 | 
						|
    # want clean framework path, not unix compatibility path
 | 
						|
    IF (APPLE)
 | 
						|
      IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
 | 
						|
          OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
 | 
						|
          OR NOT CMAKE_FIND_FRAMEWORK)
 | 
						|
        SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
 | 
						|
        SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
 | 
						|
        FIND_LIBRARY(GSL_LIBRARIES GSL)
 | 
						|
        IF (GSL_LIBRARIES)
 | 
						|
          # they're all the same in a framework
 | 
						|
          SET (GSL_INCLUDE_DIR ${GSL_LIBRARIES}/Headers CACHE PATH "Path to GSL header files.")
 | 
						|
          SET (GSL_CONFIG ${GSL_LIBRARIES}/Programs/gsl-config CACHE FILEPATH "Path to gsl-config.")
 | 
						|
        ENDIF (GSL_LIBRARIES)
 | 
						|
        SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
 | 
						|
      ENDIF ()
 | 
						|
    ENDIF (APPLE)
 | 
						|
    
 | 
						|
    IF (NOT GSL_INCLUDE_DIR OR NOT GSL_LIBRARIES OR NOT GSL_CONFIG)
 | 
						|
      # didn't find OS X framework, or was set by user
 | 
						|
      SET(GSL_CONFIG_PREFER_PATH "$ENV{GSL_HOME}/bin" CACHE STRING "preferred path to GSL (gsl-config)")
 | 
						|
      FIND_PROGRAM(GSL_CONFIG gsl-config
 | 
						|
          ${GSL_CONFIG_PREFER_PATH}
 | 
						|
          /usr/local/bin/
 | 
						|
          /usr/bin/
 | 
						|
          )
 | 
						|
      # MESSAGE("DBG GSL_CONFIG ${GSL_CONFIG}")
 | 
						|
 | 
						|
      IF (GSL_CONFIG) 
 | 
						|
        # set CXXFLAGS to be fed into CXX_FLAGS by the user:
 | 
						|
        SET(GSL_CXX_FLAGS "`${GSL_CONFIG} --cflags`")
 | 
						|
      
 | 
						|
        # set INCLUDE_DIRS to prefix+include
 | 
						|
        EXEC_PROGRAM(${GSL_CONFIG}
 | 
						|
            ARGS --prefix
 | 
						|
            OUTPUT_VARIABLE GSL_PREFIX)
 | 
						|
        SET(GSL_INCLUDE_DIR ${GSL_PREFIX}/include CACHE STRING INTERNAL)
 | 
						|
 | 
						|
        # set link libraries and link flags
 | 
						|
        EXEC_PROGRAM(${GSL_CONFIG}
 | 
						|
            ARGS --libs
 | 
						|
            OUTPUT_VARIABLE GSL_LIBRARIES)
 | 
						|
      
 | 
						|
        ## extract link dirs for rpath  
 | 
						|
        EXEC_PROGRAM(${GSL_CONFIG}
 | 
						|
            ARGS ${LIBS_ARG}
 | 
						|
            OUTPUT_VARIABLE GSL_CONFIG_LIBS )
 | 
						|
 | 
						|
        ## split off the link dirs (for rpath)
 | 
						|
        ## use regular expression to match wildcard equivalent "-L*<endchar>"
 | 
						|
        ## with <endchar> is a space or a semicolon
 | 
						|
        STRING(REGEX MATCHALL "[-][L]([^ ;])+" 
 | 
						|
            GSL_LINK_DIRECTORIES_WITH_PREFIX 
 | 
						|
            "${GSL_CONFIG_LIBS}" )
 | 
						|
        #      MESSAGE("DBG  GSL_LINK_DIRECTORIES_WITH_PREFIX=${GSL_LINK_DIRECTORIES_WITH_PREFIX}")
 | 
						|
 | 
						|
        ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
 | 
						|
      
 | 
						|
        IF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
 | 
						|
          STRING(REGEX REPLACE "[-][L]" "" GSL_LINK_DIRECTORIES ${GSL_LINK_DIRECTORIES_WITH_PREFIX} )
 | 
						|
        ENDIF (GSL_LINK_DIRECTORIES_WITH_PREFIX)
 | 
						|
        SET(GSL_EXE_LINKER_FLAGS "-Wl,-rpath,${GSL_LINK_DIRECTORIES}" CACHE STRING INTERNAL)
 | 
						|
        #      MESSAGE("DBG  GSL_LINK_DIRECTORIES=${GSL_LINK_DIRECTORIES}")
 | 
						|
        #      MESSAGE("DBG  GSL_EXE_LINKER_FLAGS=${GSL_EXE_LINKER_FLAGS}")
 | 
						|
 | 
						|
        #      ADD_DEFINITIONS("-DHAVE_GSL")
 | 
						|
        #      SET(GSL_DEFINITIONS "-DHAVE_GSL")
 | 
						|
        MARK_AS_ADVANCED(
 | 
						|
            GSL_CXX_FLAGS
 | 
						|
            GSL_INCLUDE_DIR
 | 
						|
            GSL_LIBRARIES
 | 
						|
            GSL_LINK_DIRECTORIES
 | 
						|
            GSL_DEFINITIONS
 | 
						|
        )
 | 
						|
      
 | 
						|
      ELSE(GSL_CONFIG)
 | 
						|
        MESSAGE("FindGSL.cmake: gsl-config not found. Please set it manually. GSL_CONFIG=${GSL_CONFIG}")
 | 
						|
      ENDIF(GSL_CONFIG)
 | 
						|
    ENDIF (NOT GSL_INCLUDE_DIR OR NOT GSL_LIBRARIES OR NOT GSL_CONFIG)
 | 
						|
  ENDIF(UNIX)
 | 
						|
ENDIF(WIN32)
 | 
						|
 | 
						|
 | 
						|
IF(GSL_LIBRARIES)
 | 
						|
  IF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)
 | 
						|
 | 
						|
    SET(GSL_FOUND 1)
 | 
						|
    
 | 
						|
    MESSAGE(STATUS "Found GSL: ${GSL_LIBRARIES}")
 | 
						|
 | 
						|
  ENDIF(GSL_INCLUDE_DIR OR GSL_CXX_FLAGS)
 | 
						|
ENDIF(GSL_LIBRARIES)
 | 
						|
 |