|
4 | 4 | # Redistribution and use is allowed according to the terms of the BSD license.
|
5 | 5 | # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
6 | 6 |
|
| 7 | +# Macro that checks for extra include directories set during GRASS compilation. |
| 8 | +# This helps for platforms where GRASS is built against dependencies in |
| 9 | +# non-standard locations; like on Mac, where the system gettext is too old and |
| 10 | +# GRASS is built off of gettext in /usr/local/opt, or some other custom prefix. |
| 11 | +# Such includes may need found again when including some GRASS headers. |
| 12 | + |
| 13 | +MACRO (CHECK_GRASS_EXTRA_INCLUDE_DIRS GRASS_VERSION) |
| 14 | + SET(GRASS_EXTRA_INCLUDE_DIRS${GRASS_VERSION} "" |
| 15 | + CACHE STRING "Extra includes string used for GRASS${GRASS_VERSION}") |
| 16 | + |
| 17 | + IF(UNIX AND EXISTS ${GRASS_INCLUDE_DIR${GRASS_VERSION}}/Make/Platform.make |
| 18 | + AND "${GRASS${GRASS_VERSION}_EXTRA_INCLUDE_DIRS}" STREQUAL "") |
| 19 | + |
| 20 | + FILE(READ ${GRASS_INCLUDE_DIR${GRASS_VERSION}}/Make/Platform.make _platformfile) |
| 21 | + STRING(REGEX MATCH "INCLUDE_DIRS *= [^\n]*" _config_includes "${_platformfile}") |
| 22 | + IF(NOT "${_config_includes}" STREQUAL "") |
| 23 | + STRING(REGEX REPLACE "INCLUDE_DIRS *= *([^\n]*)" "\\1" _extra_includes "${_config_includes}") |
| 24 | + ENDIF() |
| 25 | + IF(NOT "${_extra_includes}" STREQUAL "") |
| 26 | + SET(GRASS_EXTRA_INCLUDE_DIRS${GRASS_VERSION} ${_extra_includes} |
| 27 | + CACHE STRING "Extra includes string used for GRASS${GRASS_VERSION}" FORCE) |
| 28 | + ENDIF() |
| 29 | + ENDIF() |
| 30 | + |
| 31 | + MARK_AS_ADVANCED (GRASS_EXTRA_INCLUDE_DIRS${GRASS_VERSION}) |
| 32 | +ENDMACRO (CHECK_GRASS_EXTRA_INCLUDE_DIRS GRASS_VERSION) |
| 33 | + |
7 | 34 | # macro that checks for grass installation in specified directory
|
8 | 35 |
|
9 | 36 | MACRO (CHECK_GRASS G_PREFIX)
|
@@ -108,10 +135,12 @@ MACRO (CHECK_GRASS G_PREFIX)
|
108 | 135 | SET(GRASS_FOUND${GRASS_FIND_VERSION} TRUE)
|
109 | 136 | SET(GRASS_FOUND TRUE) # GRASS_FOUND is true if at least one version was found
|
110 | 137 | SET(GRASS_PREFIX${GRASS_CACHE_VERSION} ${G_PREFIX})
|
| 138 | + CHECK_GRASS_EXTRA_INCLUDE_DIRS(${GRASS_CACHE_VERSION}) |
111 | 139 | IF(GRASS_FIND_VERSION EQUAL 6)
|
112 | 140 | # Set also normal variable with number
|
113 | 141 | SET(GRASS_INCLUDE_DIR${GRASS_FIND_VERSION} ${GRASS_INCLUDE_DIR${GRASS_CACHE_VERSION}})
|
114 | 142 | SET(GRASS_PREFIX${GRASS_FIND_VERSION} ${G_PREFIX})
|
| 143 | + CHECK_GRASS_EXTRA_INCLUDE_DIRS(${GRASS_FIND_VERSION}) |
115 | 144 | ENDIF(GRASS_FIND_VERSION EQUAL 6)
|
116 | 145 | ENDIF(GRASS_LIBRARIES_FOUND${GRASS_FIND_VERSION})
|
117 | 146 | ENDIF(GRASS_MAJOR_VERSION${GRASS_FIND_VERSION} EQUAL GRASS_FIND_VERSION)
|
|
0 commit comments