summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnel Husakovic <anel@mariadb.org>2021-09-13 17:43:23 +0200
committerAnel Husakovic <anel@mariadb.org>2021-09-13 19:53:17 +0200
commitc3800639ade055b4ffb23fba030d79f6639a0c51 (patch)
tree0762767da7363753981db36cac3e2e68ade750ff
parent1a6c130c4f157434e2272bacb680efa89eb4955e (diff)
downloadmariadb-git-bb-10.5-anel-MDEV-21286-bison-api-pure.tar.gz
MDEV-21286: bison warnings on ubuntu 20.04 on deprecated directive in sql_yacc.yybb-10.5-anel-MDEV-21286-bison-api-pure
Reviewed by: wlad@mariadb.com
-rw-r--r--sql/CMakeLists.txt5
-rw-r--r--sql/gen_yy_files.cmake3
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}")