Skip to content

Commit

Permalink
Implement QUIET for GTS finder
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Eilemann authored and Stefan Eilemann committed Jul 25, 2013
1 parent d4e4904 commit 515d942
Showing 1 changed file with 56 additions and 48 deletions.
104 changes: 56 additions & 48 deletions FindGTS.cmake
@@ -1,17 +1,17 @@
# Try to find gnu triangulation library GTS
# See
# See
# http://gts.sf.net
#
# Once run this will define:
#
# Once run this will define:
#
# GTS_FOUND = system has GTS lib
#
# GTS_LIBRARIES = full path to the libraries
# on Unix/Linux with additional linker flags from "gts-config --libs"
#
#
# CMAKE_GTS_CXX_FLAGS = Unix compiler flags for GTS, essentially "`gts-config --cxxflags`"
#
# GTS_INCLUDE_DIR = where to find headers
# GTS_INCLUDE_DIR = where to find headers
#
# GTS_LINK_DIRECTORIES = link directories, useful for rpath on Unix
# GTS_EXE_LINKER_FLAGS = rpath on Unix
Expand All @@ -21,24 +21,34 @@
# A.Khalatyan 05/2009
#
# www.aip.de/~arm2arm
#
#
# This script is based on GSL script by
# Felix Woelk 07/2004
# and Jan Woetzel
# www.mip.informatik.uni-kiel.de
# --------------------------------

if(GTS_FIND_REQUIRED)
set(_gts_output_type FATAL_ERROR)
set(_gts_output 1)
else()
set(_gts_output_type STATUS)
if(NOT GTS_FIND_QUIETLY)
set(_gts_output 1)
endif()
endif()

IF(WIN32)
# JW tested with gsl-1.8, Windows XP, MSVS 7.1, MSVS 8.0
SET(GTS_POSSIBLE_ROOT_DIRS
${GTS_ROOT_DIR}
$ENV{GTS_ROOT_DIR}
${GTS_DIR}
${GTS_HOME}
${GTS_HOME}
$ENV{GTS_DIR}
$ENV{GTS_HOME}
$ENV{EXTERN_LIBS_DIR}/gts
$ENV{EXTRA}
$ENV{EXTRA}
# "C:/home/arm2arm/SOFTWARE/gts-0.7.6"
)
FIND_PATH(GTS_INCLUDE_DIR
Expand All @@ -47,19 +57,19 @@ IF(WIN32)
PATH_SUFFIXES include
DOC "GTS header include dir"
)

FIND_LIBRARY(GTS_GTS_LIBRARY
NAMES gts libgts
PATHS ${GTS_POSSIBLE_ROOT_DIRS}
PATH_SUFFIXES lib
DOC "GTS library dir" )
DOC "GTS library dir" )

# FIND_LIBRARY(GTS_GLIB_LIBRARY
# NAMES glib libgslcblas
# PATHS ${GSL_POSSIBLE_ROOT_DIRS}
# PATH_SUFFIXES lib
# DOC "GSL cblas library dir" )

SET(GTS_LIBRARIES ${GTS_GTS_LIBRARY})

#MESSAGE("DBG\n"
Expand All @@ -69,40 +79,41 @@ IF(WIN32)


ELSE(WIN32)
IF(UNIX)
SET(GSL_CONFIG_PREFER_PATH

IF(UNIX)
SET(GSL_CONFIG_PREFER_PATH
"$ENV{GTS_DIR}/bin"
"$ENV{GTS_DIR}"
"$ENV{GTS_HOME}/bin"
"$ENV{GTS_HOME}"
"$ENV{GTS_HOME}/bin"
"$ENV{GTS_HOME}"
CACHE STRING "preferred path to GTS (gts-config)")
FIND_PROGRAM(GTS_CONFIG gts-config
${GTS_CONFIG_PREFER_PATH}
/work2/arm2arm/SOFTWARE/bin/
)
#MESSAGE("DBG GTS_CONFIG ${GTS_CONFIG}")

IF (GTS_CONFIG)

MESSAGE(STATUS "GTS using gts-config ${GTS_CONFIG}")

IF (GTS_CONFIG)
if(_gts_output)
MESSAGE(STATUS "GTS using gts-config ${GTS_CONFIG}")
endif()
# set CXXFLAGS to be fed into CXX_FLAGS by the user:
EXEC_PROGRAM(${GTS_CONFIG}
ARGS --cflags
OUTPUT_VARIABLE GTS_CXX_FLAGS )
#SET(GTS_CXX_FLAGS "`${GTS_CONFIG} --cflags`")
SET(CMAKE_GTS_CXX_FLAGS ${GTS_CXX_FLAGS})
SET(CMAKE_GTS_CXX_FLAGS ${GTS_CXX_FLAGS})
# MESSAGE("DBG ${GTS_CXX_FLAGS}")
# set INCLUDE_DIRS to prefix+include
EXEC_PROGRAM(${GTS_CONFIG}
ARGS --prefix
OUTPUT_VARIABLE GTS_PREFIX)
SET(GTS_INCLUDE_DIR ${GTS_PREFIX}/include CACHE STRING INTERNAL)
# set link libraries and link flags

#SET(GSL_LIBRARIES "`${GSL_CONFIG} --libs`")
# extract link dirs for rpath

# extract link dirs for rpath
EXEC_PROGRAM(${GTS_CONFIG}
ARGS --libs
OUTPUT_VARIABLE GTS_CONFIG_LIBS )
Expand All @@ -111,13 +122,13 @@ ELSE(WIN32)
# 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]([^ ;])+"
GTS_LINK_DIRECTORIES_WITH_PREFIX
STRING(REGEX MATCHALL "[-][L]([^ ;])+"
GTS_LINK_DIRECTORIES_WITH_PREFIX
"${GTS_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 (GTS_LINK_DIRECTORIES_WITH_PREFIX)
STRING(REGEX REPLACE "[-][L]" "" GTS_LINK_DIRECTORIES ${GTS_LINK_DIRECTORIES_WITH_PREFIX} )
ENDIF (GTS_LINK_DIRECTORIES_WITH_PREFIX)
Expand All @@ -134,13 +145,16 @@ ELSE(WIN32)
GTS_LINK_DIRECTORIES
GTS_DEFINITIONS
)
MESSAGE(STATUS "Using GTS from ${GTS_PREFIX}")

if(_gts_output)
MESSAGE(STATUS "Using GTS from ${GTS_PREFIX}")
endif()
ELSE(GTS_CONFIG)

INCLUDE(UsePkgConfig) #needed for PKGCONFIG(...)

MESSAGE(STATUS "GSL using pkgconfig")
if(_gts_output)
MESSAGE(STATUS "GSL using pkgconfig")
endif()
# PKGCONFIG(gsl includedir libdir linkflags cflags)
PKGCONFIG(gts GTS_INCLUDE_DIR GTS_LINK_DIRECTORIES GTS_LIBRARIES GTS_CXX_FLAGS)
IF(GTS_INCLUDE_DIR)
Expand All @@ -150,11 +164,12 @@ ELSE(WIN32)
GTS_LIBRARIES
GTS_LINK_DIRECTORIES
)

ELSE(GTS_INCLUDE_DIR)
MESSAGE("FindGTS.cmake: gts-config/pkg-config gts not found. Please set it manually. GTS_CONFIG=${GTS_CONFIG}")
ENDIF(GTS_INCLUDE_DIR)


ELSEIF(_gts_output)
MESSAGE(${_gts_output_type}
"FindGTS.cmake: gts-config/pkg-config gts not found. Please set it manually. GTS_CONFIG=${GTS_CONFIG}")
ENDIF()

ENDIF(GTS_CONFIG)

ENDIF(UNIX)
Expand All @@ -165,19 +180,12 @@ IF(GTS_LIBRARIES)
IF(GTS_INCLUDE_DIR OR GTS_CXX_FLAGS)

SET(GTS_FOUND 1)

ENDIF(GTS_INCLUDE_DIR OR GTS_CXX_FLAGS)
ENDIF(GTS_LIBRARIES)


# ==========================================
IF(NOT GTS_FOUND)
# make FIND_PACKAGE friendly
IF(NOT GTS_FIND_QUIETLY)
IF(GTS_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "GTS required, please specify it's location.")
ELSE(GTS_FIND_REQUIRED)
MESSAGE(STATUS "ERROR: GTS was not found.")
ENDIF(GTS_FIND_REQUIRED)
ENDIF(NOT GTS_FIND_QUIETLY)
ENDIF(NOT GTS_FOUND)
IF(NOT GTS_FOUND AND _gts_output)
MESSAGE(${_gts_output_type} "GTS was not found.")
ENDIF()

0 comments on commit 515d942

Please sign in to comment.