@@ -62,6 +62,25 @@ MACRO (CHECK_GRASS G_PREFIX)
6262
6363 # LIB_PATH is only temporary variable, so hide it (is it possible to delete a variable?)
6464 UNSET (LIB_PATH CACHE )
65+
66+ # Find off_t size
67+ IF ( (GRASS_MAJOR_VERSION${GRASS_FIND_VERSION} EQUAL 7) AND (GRASS_MINOR_VERSION${GRASS_FIND_VERSION} GREATER 0) )
68+ SET (GRASS_TEST_MAPSET ${CMAKE_BINARY_DIR} /grass-location /PERMANENT)
69+ FILE (MAKE_DIRECTORY ${GRASS_TEST_MAPSET} )
70+ FILE (WRITE ${GRASS_TEST_MAPSET} /DEFAULT_WIND "" )
71+ FILE (WRITE ${GRASS_TEST_MAPSET} /WIND "" )
72+ # grass command is not in G_PREFIX but in some bin dir, so it must be in PATH
73+ SET (GRASS_EXE grass7${GRASS_MINOR_VERSION${GRASS_FIND_VERSION} })
74+ #MESSAGE(STATUS "GRASS_EXE = ${GRASS_EXE}")
75+ EXECUTE_PROCESS (COMMAND ${GRASS_EXE} ${GRASS_TEST_MAPSET} --exec g.version -g
76+ COMMAND grep build_off_t_size
77+ COMMAND sed "s/.*\\ ([0-9]\\ ).*/\\ 1/"
78+ ERROR_VARIABLE GRASS_TMP_ERROR
79+ OUTPUT_VARIABLE GRASS_OFF_T_SIZE${GRASS_FIND_VERSION}
80+ )
81+ STRING (STRIP ${GRASS_OFF_T_SIZE${GRASS_FIND_VERSION} } GRASS_OFF_T_SIZE${GRASS_FIND_VERSION} )
82+ #MESSAGE(STATUS "GRASS_OFF_T_SIZE${GRASS_FIND_VERSION} = ${GRASS_OFF_T_SIZE${GRASS_FIND_VERSION}}")
83+ ENDIF ( (GRASS_MAJOR_VERSION${GRASS_FIND_VERSION} EQUAL 7) AND (GRASS_MINOR_VERSION${GRASS_FIND_VERSION} GREATER 0) )
6584
6685 IF (GRASS_LIBRARIES_FOUND${GRASS_FIND_VERSION} )
6786 SET (GRASS_FOUND${GRASS_FIND_VERSION} TRUE )
@@ -127,7 +146,7 @@ ENDIF (WITH_GRASS${GRASS_CACHE_VERSION})
127146
128147IF (GRASS_FOUND${GRASS_FIND_VERSION} )
129148 IF (NOT GRASS_FIND_QUIETLY)
130- MESSAGE (STATUS "Found GRASS ${GRASS_FIND_VERSION} : ${GRASS_PREFIX${GRASS_CACHE_VERSION} } (${GRASS_VERSION${GRASS_FIND_VERSION} })" )
149+ MESSAGE (STATUS "Found GRASS ${GRASS_FIND_VERSION} : ${GRASS_PREFIX${GRASS_CACHE_VERSION} } (${GRASS_VERSION${GRASS_FIND_VERSION} }, off_t size = ${GRASS_OFF_T_SIZE ${GRASS_FIND_VERSION} } )" )
131150 ENDIF (NOT GRASS_FIND_QUIETLY)
132151
133152ELSE (GRASS_FOUND${GRASS_FIND_VERSION} )
0 commit comments