enh: lemon
This commit is contained in:
parent
02ed4f457d
commit
7085e25388
|
@ -0,0 +1,10 @@
|
||||||
|
# lemon
|
||||||
|
ExternalProject_Add(
|
||||||
|
lemon
|
||||||
|
URL https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release
|
||||||
|
CONFIGURE_COMMAND ""
|
||||||
|
BUILD_COMMAND ${CMAKE_C_COMPILER} -o ${TD_CONTRIB_DIR}/deps-download/lemon-prefix/src/lemon-build/lemon ${TD_CONTRIB_DIR}/deps-download/lemon-prefix/src/lemon/tool/lemon.c
|
||||||
|
INSTALL_COMMAND cp ${TD_CONTRIB_DIR}/deps-download/lemon-prefix/src/lemon-build/lemon ${CMAKE_BINARY_DIR}/bin/lemon
|
||||||
|
INSTALL_COMMAND cp ${TD_CONTRIB_DIR}/deps-download/lemon-prefix/src/lemon/tool/lempar.c ${CMAKE_BINARY_DIR}/bin/lempar.c
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
)
|
|
@ -184,6 +184,9 @@ if(${BUILD_PCRE2})
|
||||||
cat("${TD_SUPPORT_DIR}/pcre2_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
cat("${TD_SUPPORT_DIR}/pcre2_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# lemon
|
||||||
|
cat("${TD_SUPPORT_DIR}/lemon_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
|
|
||||||
# download dependencies
|
# download dependencies
|
||||||
configure_file(${CONTRIB_TMP_FILE} "${TD_CONTRIB_DIR}/deps-download/CMakeLists.txt")
|
configure_file(${CONTRIB_TMP_FILE} "${TD_CONTRIB_DIR}/deps-download/CMakeLists.txt")
|
||||||
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
||||||
|
|
|
@ -4,7 +4,26 @@ IF(TD_ENTERPRISE)
|
||||||
LIST(APPEND PARSER_SRC ${TD_ENTERPRISE_DIR}/src/plugins/view/src/parserView.c)
|
LIST(APPEND PARSER_SRC ${TD_ENTERPRISE_DIR}/src/plugins/view/src/parserView.c)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${TD_SOURCE_DIR}/source/libs/parser/src/sql.c
|
||||||
|
COMMAND echo "Running lemon process in ${TD_SOURCE_DIR}/source/libs/parser/inc"
|
||||||
|
COMMAND ${CMAKE_BINARY_DIR}/bin/lemon sql.y || true
|
||||||
|
COMMAND echo "copy sql.c from ${TD_SOURCE_DIR}/source/libs/parser/inc/sql.c to ${TD_SOURCE_DIR}/source/libs/parser/src/"
|
||||||
|
COMMAND cp ${TD_SOURCE_DIR}/source/libs/parser/inc/sql.c ${TD_SOURCE_DIR}/source/libs/parser/src/
|
||||||
|
COMMAND echo "lemon process completed."
|
||||||
|
DEPENDS ${TD_SOURCE_DIR}/source/libs/parser/inc/sql.y
|
||||||
|
WORKING_DIRECTORY ${TD_SOURCE_DIR}/source/libs/parser/inc
|
||||||
|
COMMENT "Generating sql.c using lemon"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(lemon_target
|
||||||
|
DEPENDS ${TD_SOURCE_DIR}/source/libs/parser/src/sql.c
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND PARSER_SRC ${TD_SOURCE_DIR}/source/libs/parser/src/sql.c)
|
||||||
|
|
||||||
add_library(parser STATIC ${PARSER_SRC})
|
add_library(parser STATIC ${PARSER_SRC})
|
||||||
|
add_dependencies(parser lemon_target)
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
parser
|
parser
|
||||||
PUBLIC "${TD_SOURCE_DIR}/include/libs/parser"
|
PUBLIC "${TD_SOURCE_DIR}/include/libs/parser"
|
||||||
|
|
Loading…
Reference in New Issue