1
1
2
+ # macro that checks for grass installation in specified directory
2
3
3
- SET (GRASS_PREFIX "/usr" CACHE PATH "Path to GRASS base directory" )
4
-
4
+ MACRO (CHECK_GRASS G_PREFIX )
5
5
6
- FIND_PATH (GRASS_INCLUDE_DIR grass/gis.h ${GRASS_PREFIX } /include )
6
+ FIND_PATH (GRASS_INCLUDE_DIR grass/gis.h ${G_PREFIX } /include )
7
7
8
- SET (GRASS_LIB_NAMES gis vect dig2 dbmiclient dbmibase shape dgl rtree datetime linkm form gproj )
8
+ SET (GRASS_LIB_NAMES gis vect dig2 dbmiclient dbmibase shape dgl rtree datetime linkm form gproj )
9
9
10
- SET (GRASS_LIBRARIES "" )
10
+ SET (GRASS_LIBRARIES "" )
11
11
12
- FOREACH (LIB ${GRASS_LIB_NAMES} )
13
- SET (LIB_PATH NOTFOUND )
14
- FIND_LIBRARY (LIB_PATH grass_${LIB} PATHS ${GRASS_PREFIX } /lib )
12
+ FOREACH (LIB ${GRASS_LIB_NAMES} )
13
+ SET (LIB_PATH NOTFOUND )
14
+ FIND_LIBRARY (LIB_PATH grass_${LIB} PATHS ${G_PREFIX } /lib )
15
15
16
- IF (LIB_PATH )
17
- IF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND )
18
- SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${LIB_PATH} )
19
- ENDIF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND )
20
- ELSE (LIB_PATH )
21
- SET (GRASS_LIBRARIES NOTFOUND )
22
- ENDIF (LIB_PATH )
16
+ IF (LIB_PATH )
17
+ IF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND )
18
+ SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${LIB_PATH} )
19
+ ENDIF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND )
20
+ ELSE (LIB_PATH )
21
+ SET (GRASS_LIBRARIES NOTFOUND )
22
+ ENDIF (LIB_PATH )
23
23
24
- ENDFOREACH (LIB )
24
+ ENDFOREACH (LIB )
25
25
26
- IF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES )
27
- SET (GRASS_FOUND TRUE )
28
- ENDIF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES )
26
+ IF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES )
27
+ SET (GRASS_FOUND TRUE )
28
+ SET (GRASS_PREFIX ${G_PREFIX} )
29
+ ENDIF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES )
29
30
31
+ ENDMACRO (CHECK_GRASS )
32
+
33
+ ###################################
34
+ # search for grass installations
35
+
36
+ # try to build with GRASS by default
37
+ SET (WITH_GRASS "ON" CACHE BOOL "Determines whether GRASS plugin should be built" )
38
+
39
+ SET (GRASS_PREFIX "" CACHE PATH "Path to GRASS base directory" )
40
+
41
+ # list of paths which to search - user's choice as first
42
+ SET (GRASS_PATHS ${GRASS_PREFIX} /usr/lib/grass )
43
+
44
+ IF (WITH_GRASS )
45
+
46
+ FOREACH (G_PREFIX ${GRASS_PATHS} )
47
+ IF (NOT GRASS_FOUND )
48
+ CHECK_GRASS (${G_PREFIX} )
49
+ ENDIF (NOT GRASS_FOUND )
50
+ ENDFOREACH (G_PREFIX )
51
+
52
+ ENDIF (WITH_GRASS )
53
+
54
+ ###################################
30
55
31
56
IF (GRASS_FOUND )
32
57
58
+ # read grass version number and remove trailing newline
59
+ FILE (READ ${GRASS_PREFIX} /etc/VERSIONNUMBER GRASS_VERSION )
60
+ STRING (REPLACE "\n " "" GRASS_VERSION ${GRASS_VERSION} )
61
+
33
62
IF (NOT GRASS_FIND_QUIETLY )
34
- MESSAGE (STATUS "Found GRASS: ${GRASS_PREFIX} " )
63
+ MESSAGE (STATUS "Found GRASS: ${GRASS_PREFIX} ( ${GRASS_VERSION} ) " )
35
64
ENDIF (NOT GRASS_FIND_QUIETLY )
36
65
37
66
# openpty is currently needed for GRASS shell
@@ -48,10 +77,14 @@ IF (GRASS_FOUND)
48
77
49
78
ELSE (GRASS_FOUND )
50
79
51
- IF (GRASS_FIND_REQUIRED )
52
- MESSAGE (FATAL_ERROR "Could not find GRASS" )
53
- ELSE (GRASS_FIND_REQUIRED )
54
- MESSAGE (STATUS "Could not find GRASS" )
55
- ENDIF (GRASS_FIND_REQUIRED )
80
+ IF (WITH_GRASS )
81
+
82
+ IF (GRASS_FIND_REQUIRED )
83
+ MESSAGE (FATAL_ERROR "Could not find GRASS" )
84
+ ELSE (GRASS_FIND_REQUIRED )
85
+ MESSAGE (STATUS "Could not find GRASS" )
86
+ ENDIF (GRASS_FIND_REQUIRED )
87
+
88
+ ENDIF (WITH_GRASS )
56
89
57
90
ENDIF (GRASS_FOUND )
0 commit comments