QGIS/cmake/FindGRASS.cmake

58 lines
1.5 KiB
CMake
Raw Normal View History

SET(GRASS_PREFIX "/usr" CACHE PATH "Path to GRASS base directory")
FIND_PATH(GRASS_INCLUDE_DIR grass/gis.h ${GRASS_PREFIX}/include)
SET (GRASS_LIB_NAMES gis vect dig2 dbmiclient dbmibase shape dgl rtree datetime linkm form gproj)
SET (GRASS_LIBRARIES "")
FOREACH (LIB ${GRASS_LIB_NAMES})
SET(LIB_PATH NOTFOUND)
FIND_LIBRARY(LIB_PATH grass_${LIB} PATHS ${GRASS_PREFIX}/lib)
IF (LIB_PATH)
IF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND)
SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${LIB_PATH})
ENDIF (NOT GRASS_LIBRARIES STREQUAL NOTFOUND)
ELSE (LIB_PATH)
SET (GRASS_LIBRARIES NOTFOUND)
ENDIF (LIB_PATH)
ENDFOREACH (LIB)
IF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES)
SET(GRASS_FOUND TRUE)
ENDIF (GRASS_INCLUDE_DIR AND GRASS_LIBRARIES)
IF (GRASS_FOUND)
IF (NOT GRASS_FIND_QUIETLY)
MESSAGE(STATUS "Found GRASS: ${GRASS_PREFIX}")
ENDIF (NOT GRASS_FIND_QUIETLY)
# openpty is currently needed for GRASS shell
INCLUDE(CheckFunctionExists)
SET (CMAKE_REQUIRED_INCLUDES pty.h)
SET (CMAKE_REQUIRED_LIBRARIES util)
CHECK_FUNCTION_EXISTS(openpty HAVE_OPENPTY)
# add 'util' library to the dependencies
IF (HAVE_OPENPTY)
FIND_LIBRARY(OPENPTY_LIBRARY NAMES util PATH /usr/local/lib /usr/lib)
SET (GRASS_LIBRARIES ${GRASS_LIBRARIES} ${OPENPTY_LIBRARY})
ENDIF (HAVE_OPENPTY)
ELSE (GRASS_FOUND)
IF (GRASS_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find GRASS")
ELSE (GRASS_FIND_REQUIRED)
MESSAGE(STATUS "Could not find GRASS")
ENDIF (GRASS_FIND_REQUIRED)
ENDIF (GRASS_FOUND)