diff options
-rw-r--r-- | sql/CMakeLists.txt | 5 | ||||
-rw-r--r-- | sql/gen_yy_files.cmake | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 5719d098383..642a931c0b3 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -65,6 +65,8 @@ ADD_CUSTOM_COMMAND( DEPENDS gen_lex_token ) +FIND_PACKAGE(BISON 2.0) + ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/yy_mariadb.yy ${CMAKE_CURRENT_BINARY_DIR}/yy_oracle.yy @@ -72,6 +74,7 @@ ADD_CUSTOM_COMMAND( "-DOUT1=${CMAKE_CURRENT_BINARY_DIR}/yy_oracle.yy" "-DOUT2=${CMAKE_CURRENT_BINARY_DIR}/yy_mariadb.yy" "-DIN=${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy" + "-DBISON_VERSION=${BISON_VERSION}" -P ${CMAKE_CURRENT_SOURCE_DIR}/gen_yy_files.cmake COMMENT "Building yy_mariadb.yy and yy_oracle.yy from sql_yacc.yy" DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sql_yacc.yy @@ -321,8 +324,6 @@ IF(WITH_MYSQLD_LDFLAGS) ENDIF() -FIND_PACKAGE(BISON 2.0) - # Handle out-of-source build from source package with possibly broken # bison. Copy bison output to from source to build directory, if not already diff --git a/sql/gen_yy_files.cmake b/sql/gen_yy_files.cmake index da63c72c37c..3ceb60a95de 100644 --- a/sql/gen_yy_files.cmake +++ b/sql/gen_yy_files.cmake @@ -5,6 +5,9 @@ file(READ "${IN}" data) file(WRITE "${OUT1}" "") file(WRITE "${OUT2}" "") set(where 0) +if(NOT(BISON_VERSION VERSION_LESS "3.0.0")) + string(REPLACE "\n%pure-parser" "\n%define api.pure" data "${data}") +endif() string(REGEX REPLACE "/\\* sql_yacc\\.yy \\*/" "/* DON'T EDIT THIS FILE. IT'S GENERATED. EDIT sql_yacc.yy INSTEAD */" data "${data}") while(NOT data STREQUAL "") string(REGEX MATCH "^(%[ie][^\n]*\n)|((%[^ie\n]|[^%\n])[^\n]*\n)+|\n+" line "${data}") |