Skip to content

Commit a456530

Browse files
author
wonder
committed
CMake: added check to accept Bison 2.0 or higher
(it's known not to work correctly with 1.28) git-svn-id: http://svn.osgeo.org/qgis/trunk@6524 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent ccf59bb commit a456530

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

cmake/Bison.cmake

+17-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,24 @@ MACRO(FIND_BISON)
55
IF(NOT BISON_EXECUTABLE)
66
FIND_PROGRAM(BISON_EXECUTABLE bison)
77
IF (NOT BISON_EXECUTABLE)
8-
MESSAGE(FATAL_ERROR "Bison not found - aborting")
9-
ENDIF (NOT BISON_EXECUTABLE)
8+
9+
MESSAGE(FATAL_ERROR "Bison not found - aborting")
10+
11+
ELSE (NOT BISON_EXECUTABLE)
12+
13+
EXEC_PROGRAM(${BISON_EXECUTABLE} ARGS --version OUTPUT_VARIABLE BISON_VERSION_STR)
14+
# get first line in case it's multiline
15+
STRING(REGEX REPLACE "([^\n]+).*" "\\1" FIRST_LINE "${BISON_VERSION_STR}")
16+
# get version information
17+
STRING(REGEX REPLACE ".* ([0-9]+)\\.([0-9]+)" "\\1" BISON_VERSION_MAJOR "${FIRST_LINE}")
18+
STRING(REGEX REPLACE ".* ([0-9]+)\\.([0-9]+)" "\\2" BISON_VERSION_MINOR "${FIRST_LINE}")
19+
IF (BISON_VERSION_MAJOR LESS 2)
20+
MESSAGE (FATAL_ERROR "Bison version is too old (${BISON_VERSION_MAJOR}.${BISON_VERSION_MINOR}). Use 2.0 or higher.")
21+
ENDIF (BISON_VERSION_MAJOR LESS 2)
22+
23+
ENDIF (NOT BISON_EXECUTABLE)
1024
ENDIF(NOT BISON_EXECUTABLE)
25+
1126
ENDMACRO(FIND_BISON)
1227

1328
MACRO(ADD_BISON_FILES _sources )

0 commit comments

Comments
 (0)