neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 0a087f207331291a0ef7f1773eb9cdf7f5143879
parent d4584903f3a7123a389332afa2620f2b997b7f1b
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Sun,  9 Mar 2025 18:57:41 +0800

build(generator): add dependencies on hashy (#32796)

This allows generated sources to be automatically rebuilt when modifying
hashy code.

Also, appending to NVIM_GENERATED_FOR_{HEADERS,SOURCES} in the middle of
custom commands is a bit strange. Move that after the custom commands.
Diffstat:
Msrc/gen/hashy.lua | 4++--
Msrc/nvim/CMakeLists.txt | 49+++++++++++++++++++++++++------------------------
2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/src/gen/hashy.lua b/src/gen/hashy.lua @@ -106,8 +106,8 @@ function M.switcher(put, tab, maxlen, worst_buck_size, icase) return neworder end ---- @param icase boolean generate a case-insensitive hash function. ---- `strings` must not have mixed case when using this. +--- @param icase? boolean generate a case-insensitive hash function. +--- `strings` must not have mixed case when using this. function M.hashy_hash(name, strings, access, icase) local stats = {} local put = function(str) diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt @@ -603,6 +603,7 @@ add_custom_command( ${MSGPACK_RPC_HEADERS} ${API_DISPATCH_GENERATOR} ${GENERATOR_C_GRAMMAR} + ${GENERATOR_HASHY} ${UI_METADATA} ${NVIM_VERSION_LUA} ${NVIM_VERSION_GIT_H} @@ -660,28 +661,10 @@ add_custom_command( ${LUA_GEN_DEPS} ${API_UI_EVENTS_GENERATOR} ${GENERATOR_C_GRAMMAR} + ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h ) -list(APPEND NVIM_GENERATED_FOR_HEADERS - "${GENERATED_EX_CMDS_ENUM}" - "${GENERATED_EVENTS_ENUM}" - "${GENERATED_KEYSETS_DEFS}" - "${GENERATED_OPTIONS_ENUM}" - "${GENERATED_OPTION_VARS}" -) - -list(APPEND NVIM_GENERATED_FOR_SOURCES - "${GENERATED_API_DISPATCH}" - "${GENERATED_EX_CMDS_DEFS}" - "${GENERATED_EVENTS_NAMES_MAP}" - "${GENERATED_KEYCODE_NAMES}" - "${GENERATED_OPTIONS}" - "${GENERATED_OPTIONS_MAP}" - "${VIM_MODULE_FILE}" - "${PROJECT_BINARY_DIR}/cmake.config/auto/pathdef.h" -) - add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS} COMMAND ${LUA_GEN} ${EX_CMDS_GENERATOR} ${GENERATED_INCLUDES_DIR} ${GENERATED_DIR} DEPENDS ${LUA_GEN_DEPS} ${EX_CMDS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/ex_cmds.lua @@ -689,10 +672,8 @@ add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS} add_custom_command(OUTPUT ${GENERATED_FUNCS} ${FUNCS_DATA} COMMAND ${LUA_GEN} ${FUNCS_GENERATOR} ${GENERATED_DIR} ${FUNCS_METADATA} ${FUNCS_DATA} - DEPENDS ${LUA_GEN_DEPS} ${FUNCS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/eval.lua ${FUNCS_METADATA} + DEPENDS ${LUA_GEN_DEPS} ${FUNCS_GENERATOR} ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/eval.lua ${FUNCS_METADATA} ) -list(APPEND NVIM_GENERATED_FOR_SOURCES - "${GENERATED_FUNCS}") add_custom_command(OUTPUT ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} COMMAND ${LUA_GEN} ${EVENTS_GENERATOR} ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} @@ -701,12 +682,32 @@ add_custom_command(OUTPUT ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} add_custom_command(OUTPUT ${GENERATED_KEYCODE_NAMES} COMMAND ${LUA_GEN} ${KEYCODES_GENERATOR} ${GENERATED_KEYCODE_NAMES} - DEPENDS ${LUA_GEN_DEPS} ${KEYCODES_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/keycodes.lua + DEPENDS ${LUA_GEN_DEPS} ${KEYCODES_GENERATOR} ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/keycodes.lua ) add_custom_command(OUTPUT ${GENERATED_OPTIONS} ${GENERATED_OPTIONS_ENUM} ${GENERATED_OPTIONS_MAP} ${GENERATED_OPTION_VARS} COMMAND ${LUA_GEN} ${OPTIONS_GENERATOR} ${GENERATED_OPTIONS} ${GENERATED_OPTIONS_ENUM} ${GENERATED_OPTIONS_MAP} ${GENERATED_OPTION_VARS} - DEPENDS ${LUA_GEN_DEPS} ${OPTIONS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/options.lua + DEPENDS ${LUA_GEN_DEPS} ${OPTIONS_GENERATOR} ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/options.lua +) + +list(APPEND NVIM_GENERATED_FOR_HEADERS + "${GENERATED_EX_CMDS_ENUM}" + "${GENERATED_EVENTS_ENUM}" + "${GENERATED_KEYSETS_DEFS}" + "${GENERATED_OPTIONS_ENUM}" + "${GENERATED_OPTION_VARS}" +) + +list(APPEND NVIM_GENERATED_FOR_SOURCES + "${GENERATED_API_DISPATCH}" + "${GENERATED_EX_CMDS_DEFS}" + "${GENERATED_EVENTS_NAMES_MAP}" + "${GENERATED_FUNCS}" + "${GENERATED_KEYCODE_NAMES}" + "${GENERATED_OPTIONS}" + "${GENERATED_OPTIONS_MAP}" + "${VIM_MODULE_FILE}" + "${PROJECT_BINARY_DIR}/cmake.config/auto/pathdef.h" ) # NVIM_GENERATED_FOR_SOURCES and NVIM_GENERATED_FOR_HEADERS must be mutually exclusive.