-
Notifications
You must be signed in to change notification settings - Fork 57
Commit
chore: tree-sitter 0.24 upgrade
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
cmake_minimum_required(VERSION 3.13) | ||
|
||
project(tree-sitter-sql | ||
VERSION "0.3.5" | ||
DESCRIPTION "Tree-sitter Grammar for SQL" | ||
HOMEPAGE_URL "git+https://github.com/derekstride/tree-sitter-sql.git" | ||
LANGUAGES C) | ||
|
||
option(BUILD_SHARED_LIBS "Build using shared libraries" ON) | ||
option(TREE_SITTER_REUSE_ALLOCATOR "Reuse the library allocator" OFF) | ||
|
||
set(TREE_SITTER_ABI_VERSION 14 CACHE STRING "Tree-sitter ABI version") | ||
if(NOT ${TREE_SITTER_ABI_VERSION} MATCHES "^[0-9]+$") | ||
unset(TREE_SITTER_ABI_VERSION CACHE) | ||
message(FATAL_ERROR "TREE_SITTER_ABI_VERSION must be an integer") | ||
endif() | ||
|
||
find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI") | ||
|
||
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c" | ||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" | ||
COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json | ||
--abi=${TREE_SITTER_ABI_VERSION} | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
COMMENT "Generating parser.c") | ||
|
||
add_library(tree-sitter-sql src/parser.c) | ||
if(EXISTS src/scanner.c) | ||
target_sources(tree-sitter-sql PRIVATE src/scanner.c) | ||
endif() | ||
target_include_directories(tree-sitter-sql PRIVATE src) | ||
|
||
target_compile_definitions(tree-sitter-sql PRIVATE | ||
$<$<BOOL:${TREE_SITTER_REUSE_ALLOCATOR}>:TREE_SITTER_REUSE_ALLOCATOR> | ||
$<$<CONFIG:Debug>:TREE_SITTER_DEBUG>) | ||
|
||
set_target_properties(tree-sitter-sql | ||
PROPERTIES | ||
C_STANDARD 11 | ||
POSITION_INDEPENDENT_CODE ON | ||
SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}" | ||
DEFINE_SYMBOL "") | ||
|
||
configure_file(bindings/c/tree-sitter-sql.pc.in | ||
"${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-sql.pc" @ONLY) | ||
|
||
include(GNUInstallDirs) | ||
|
||
install(FILES bindings/c/tree-sitter-sql.h | ||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/tree_sitter") | ||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-sql.pc" | ||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") | ||
install(TARGETS tree-sitter-sql | ||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") | ||
|
||
add_custom_target(test "${TREE_SITTER_CLI}" test | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
COMMENT "tree-sitter test") | ||
|
||
# vim:ft=cmake: |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.