changed: check GoTools version and bail if < 3.0.0

also moves c++0x check into FindGoTools where it belongs (it's GoTools
requiring it, not us)

git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@1348 e10b68d5-8a6e-419e-a041-bce267b0401d
This commit is contained in:
akva 2011-12-13 13:27:19 +00:00 committed by Knut Morten Okstad
parent f397249579
commit d5036ab66d
2 changed files with 34 additions and 13 deletions

View File

@ -21,19 +21,6 @@ ELSE(CMAKE_CXX_COMPILER MATCHES icpc)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_CBLAS")
ENDIF(CMAKE_CXX_COMPILER MATCHES icpc)
INCLUDE(CheckCXXCompilerFlag)
IF(CMAKE_CXX_COMPILER_ID MATCHES GNU)
# check if compiler supports c++-0x
CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" HAVE_0x)
IF(HAVE_0x)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
ELSE(HAVE_0x)
MESSAGE("A compiler with c++-0x support is needed")
EXIT(1)
ENDIF(HAVE_0x)
ENDIF(CMAKE_CXX_COMPILER_ID MATCHES GNU)
ENABLE_TESTING()
# Add local modules
@ -46,6 +33,11 @@ FIND_PACKAGE(GoTrivariate REQUIRED)
FIND_PACKAGE(LAPACK REQUIRED)
FIND_PACKAGE(ARPACK REQUIRED)
# Mimimum GoTools version
IF(GoTools_VERSION_MAJOR LESS 3 OR NOT GoTools_VERSION_MAJOR)
MESSAGE(FATAL_ERROR "GoTools >= 3.0.0 required. bailing")
ENDIF(GoTools_VERSION_MAJOR LESS 3 OR NOT GoTools_VERSION_MAJOR)
# Optional packages
IF(${ENABLE_PETSC})
FIND_PACKAGE(Petsc)
@ -167,6 +159,9 @@ IF(NOT WIN32)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-parentheses")
ENDIF(NOT WIN32)
# GoTools compile flags
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GoTools_CXX_FLAGS}")
# Make the IFEM library
FILE(GLOB_RECURSE IFEM_SRCS ${PROJECT_SOURCE_DIR}/src/*.[Cf]
${PROJECT_SOURCE_DIR}/3rdparty/*.C

View File

@ -17,6 +17,32 @@ FIND_LIBRARY(GoTools_LIBRARIES
PATH_SUFFIXES GoTools
)
# Check for newer GoTools
EXECUTE_PROCESS(COMMAND cat "${GoTools_INCLUDE_DIRS}/GoTools/geometry/GoTools.h" OUTPUT_VARIABLE GOTOOLS_HEADER)
STRING(REGEX MATCH "GO_VERSION_MAJOR ([0-9]+)" GoTools_VERSION_MAJOR ${GOTOOLS_HEADER})
STRING(REGEX REPLACE "GO_VERSION_MAJOR ([0-9]+)" "\\1" GoTools_VERSION_MAJOR "${GoTools_VERSION_MAJOR}")
STRING(REGEX MATCH "GO_VERSION_MINOR ([0-9]+)" GoTools_VERSION_MINOR ${GOTOOLS_HEADER})
STRING(REGEX REPLACE "GO_VERSION_MINOR ([0-9]+)" "\\1" GoTools_VERSION_MINOR "${GoTools_VERSION_MINOR}")
STRING(REGEX MATCH "GO_VERSION_PATCH ([0-9]+)" GoTools_VERSION_PATCH ${GOTOOLS_HEADER})
STRING(REGEX REPLACE "GO_VERSION_PATCH ([0-9]+)" "\\1" GoTools_VERSION_PATCH "${GoTools_VERSION_PATCH}")
IF (GoTools_VERSION_MAJOR GREATER 2)
INCLUDE(CheckCXXCompilerFlag)
IF(CMAKE_CXX_COMPILER_ID MATCHES GNU)
# check if compiler supports c++-0x
CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" HAVE_0x)
IF(HAVE_0x)
SET(GoTools_CXX_FLAGS "-std=gnu++0x")
ELSE(HAVE_0x)
MESSAGE("A compiler with c++-0x support is needed")
EXIT(1)
ENDIF(HAVE_0x)
ELSE(CMAKE_CXX_COMPILER_ID MATCHES GNU)
MESSAGE("Cannot verify that compiler supports c++-0x, bailing")
EXIT(1)
ENDIF(CMAKE_CXX_COMPILER_ID MATCHES GNU)
ENDIF (GoTools_VERSION_MAJOR GREATER 2)
INCLUDE(FindPackageHandleStandardArgs)
IF(GoTools_LIBRARIES)
find_package_handle_standard_args(GoTools DEFAULT_MSG