4
4
MACRO (CHECK_GRASS G_PREFIX)
6
FIND_PATH (GRASS_INCLUDE_DIR grass/gis.h ${G_PREFIX}/include)
6
FIND_PATH (GRASS_INCLUDE_DIR grass/version.h ${G_PREFIX}/include)
8
SET (GRASS_LIBRARIES_FOUND TRUE)
8
9
SET (GRASS_LIB_NAMES gis vect dig2 dbmiclient dbmibase shape dgl rtree datetime linkm form gproj)
10
SET (GRASS_LIBRARIES "")
12
11
FOREACH (LIB ${GRASS_LIB_NAMES})
12
MARK_AS_ADVANCED ( GRASS_LIBRARY_${LIB} )
13
14
SET(LIB_PATH NOTFOUND)
14
FIND_LIBRARY(LIB_PATH grass_${LIB} PATHS ${G_PREFIX}/lib)
15
FIND_LIBRARY(LIB_PATH NAMES grass_${LIB} PATHS ${G_PREFIX}/lib NO_DEFAULT_PATH)
17
IF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND)
18
SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${LIB_PATH})
19
ENDIF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND)
18
SET (GRASS_LIBRARY_${LIB} ${LIB_PATH})
21
SET (GRASS_LIBRARIES NOTFOUND)
20
SET (GRASS_LIBRARY_${LIB} NOTFOUND)
21
SET (GRASS_LIBRARIES_FOUND FALSE)
26
IF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES)
26
# LIB_PATH is only temporary variable, so hide it (is it possible to delete a variable?)
27
MARK_AS_ADVANCED(LIB_PATH)
29
IF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES_FOUND)
27
30
SET (GRASS_FOUND TRUE)
28
31
SET (GRASS_PREFIX ${G_PREFIX})
29
ENDIF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES)
32
ENDIF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES_FOUND)
34
MARK_AS_ADVANCED ( GRASS_INCLUDE_DIR )
36
36
ENDMACRO (CHECK_GRASS)
39
39
# search for grass installations
41
41
# list of paths which to search - user's choice as first
42
SET (GRASS_PATHS ${GRASS_PREFIX} /usr/lib/grass c:/msys/local/grass-6.3.cvs)
42
SET (GRASS_PATHS ${GRASS_PREFIX} /usr/lib/grass c:/msys/local)
44
44
# mac-specific path
46
SET (GRASS_PATHS ${GRASS_PATHS} /Applications/GRASS.app/Contents/Resources)
46
SET (GRASS_PATHS ${GRASS_PATHS}
47
/Applications/GRASS-6.3.app/Contents/MacOS
48
/Applications/GRASS.app/Contents/Resources
59
62
###################################
63
# read grass version number and remove trailing newline
64
FILE (READ ${GRASS_PREFIX}/etc/VERSIONNUMBER GRASS_VERSION)
65
STRING(REPLACE "\n" "" GRASS_VERSION ${GRASS_VERSION})
65
FILE(READ ${GRASS_INCLUDE_DIR}/grass/version.h VERSIONFILE)
66
# We can avoid the following block using version_less version_equal and
67
# version_greater. Are there compatibility problems?
68
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[^ ]+" GRASS_VERSION ${VERSIONFILE})
69
STRING(REGEX REPLACE "^([0-9]*)\\.[0-9]*\\..*$" "\\1" GRASS_MAJOR_VERSION ${GRASS_VERSION})
70
STRING(REGEX REPLACE "^[0-9]*\\.([0-9]*)\\..*$" "\\1" GRASS_MINOR_VERSION ${GRASS_VERSION})
71
STRING(REGEX REPLACE "^[0-9]*\\.[0-9]*\\.(.*)$" "\\1" GRASS_MICRO_VERSION ${GRASS_VERSION})
72
# Add micro version too?
73
# How to numerize RC versions?
74
MATH( EXPR GRASS_NUM_VERSION "${GRASS_MAJOR_VERSION}*10000 + ${GRASS_MINOR_VERSION}*100")
67
76
IF (NOT GRASS_FIND_QUIETLY)
68
77
MESSAGE(STATUS "Found GRASS: ${GRASS_PREFIX} (${GRASS_VERSION})")
69
78
ENDIF (NOT GRASS_FIND_QUIETLY)
71
# openpty is currently needed for GRASS shell
72
INCLUDE(CheckFunctionExists)
74
SET (CMAKE_REQUIRED_INCLUDES util.h)
76
SET (CMAKE_REQUIRED_INCLUDES pty.h)
77
SET (CMAKE_REQUIRED_LIBRARIES util)
79
CHECK_FUNCTION_EXISTS(openpty HAVE_OPENPTY)
81
# add 'util' library to the dependencies
82
IF (HAVE_OPENPTY AND NOT APPLE)
83
FIND_LIBRARY(OPENPTY_LIBRARY NAMES util PATHS /usr/local/lib /usr/lib c:/msys/local/lib)
84
SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${OPENPTY_LIBRARY})
85
ENDIF (HAVE_OPENPTY AND NOT APPLE)