Browse Source

Fix generation of bison output for out-of-source builds.

Make sure the #line directives contain existing source file  sql_yacc.yy.
Before the patch #line directive would point out to non-existing path in
current build directory.
bb-10.6-sujatha
Vladislav Vaintroub 4 years ago
parent
commit
115fec58f1
  1. 1
      .gitignore
  2. 5
      sql/CMakeLists.txt
  3. 2
      sql/myskel.m4.in

1
.gitignore

@ -197,6 +197,7 @@ sql/lex_token.h
sql/gen_lex_token
sql/gen_lex_hash
sql/lex_hash.h
sql/myskel.m4
sql/mysql_tzinfo_to_sql
sql/mysqld
sql/sql_builtin.cc

5
sql/CMakeLists.txt

@ -356,12 +356,13 @@ IF (NOT BISON_FOUND)
MESSAGE(FATAL_ERROR ${ERRMSG})
ENDIF()
ELSE()
CONFIGURE_FILE(myskel.m4.in myskel.m4)
BISON_TARGET(gen_mariadb_cc_hh ${CMAKE_CURRENT_BINARY_DIR}/yy_mariadb.yy
${CMAKE_CURRENT_BINARY_DIR}/yy_mariadb.cc
COMPILE_FLAGS "-p MYSQL -S ${CMAKE_CURRENT_SOURCE_DIR}/myskel.m4")
COMPILE_FLAGS "-p MYSQL -S ${CMAKE_CURRENT_BINARY_DIR}/myskel.m4")
BISON_TARGET(gen_oracle_cc_hh ${CMAKE_CURRENT_BINARY_DIR}/yy_oracle.yy
${CMAKE_CURRENT_BINARY_DIR}/yy_oracle.cc
COMPILE_FLAGS "-p ORA -S ${CMAKE_CURRENT_SOURCE_DIR}/myskel.m4")
COMPILE_FLAGS "-p ORA -S ${CMAKE_CURRENT_BINARY_DIR}/myskel.m4")
ENDIF()
IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)

2
sql/myskel.m4 → sql/myskel.m4.in

@ -3,7 +3,7 @@
# to refer to the original sql_yacc.yy
#
m4_define([b4_syncline],
[b4_sync_start([$1], m4_bpatsubst([$2],[yy_[a-z]+\.yy],sql_yacc.yy))[]dnl
[b4_sync_start([$1], m4_bpatsubst([$2],[@CMAKE_CURRENT_BINARY_DIR@/yy_[a-z]+\.yy],@CMAKE_CURRENT_SOURCE_DIR@/sql_yacc.yy))[]dnl
])
Loading…
Cancel
Save