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.
This commit is contained in:
zeertzjq
2025-03-09 18:57:41 +08:00
committed by GitHub
parent d4584903f3
commit 0a087f2073
2 changed files with 30 additions and 29 deletions

View File

@ -106,7 +106,7 @@ function M.switcher(put, tab, maxlen, worst_buck_size, icase)
return neworder return neworder
end end
--- @param icase boolean generate a case-insensitive hash function. --- @param icase? boolean generate a case-insensitive hash function.
--- `strings` must not have mixed case when using this. --- `strings` must not have mixed case when using this.
function M.hashy_hash(name, strings, access, icase) function M.hashy_hash(name, strings, access, icase)
local stats = {} local stats = {}

View File

@ -603,6 +603,7 @@ add_custom_command(
${MSGPACK_RPC_HEADERS} ${MSGPACK_RPC_HEADERS}
${API_DISPATCH_GENERATOR} ${API_DISPATCH_GENERATOR}
${GENERATOR_C_GRAMMAR} ${GENERATOR_C_GRAMMAR}
${GENERATOR_HASHY}
${UI_METADATA} ${UI_METADATA}
${NVIM_VERSION_LUA} ${NVIM_VERSION_LUA}
${NVIM_VERSION_GIT_H} ${NVIM_VERSION_GIT_H}
@ -660,9 +661,35 @@ add_custom_command(
${LUA_GEN_DEPS} ${LUA_GEN_DEPS}
${API_UI_EVENTS_GENERATOR} ${API_UI_EVENTS_GENERATOR}
${GENERATOR_C_GRAMMAR} ${GENERATOR_C_GRAMMAR}
${GENERATOR_HASHY}
${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.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
)
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} ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/eval.lua ${FUNCS_METADATA}
)
add_custom_command(OUTPUT ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP}
COMMAND ${LUA_GEN} ${EVENTS_GENERATOR} ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP}
DEPENDS ${LUA_GEN_DEPS} ${EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/auevents.lua
)
add_custom_command(OUTPUT ${GENERATED_KEYCODE_NAMES}
COMMAND ${LUA_GEN} ${KEYCODES_GENERATOR} ${GENERATED_KEYCODE_NAMES}
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} ${GENERATOR_HASHY} ${CMAKE_CURRENT_LIST_DIR}/options.lua
)
list(APPEND NVIM_GENERATED_FOR_HEADERS list(APPEND NVIM_GENERATED_FOR_HEADERS
"${GENERATED_EX_CMDS_ENUM}" "${GENERATED_EX_CMDS_ENUM}"
"${GENERATED_EVENTS_ENUM}" "${GENERATED_EVENTS_ENUM}"
@ -675,6 +702,7 @@ list(APPEND NVIM_GENERATED_FOR_SOURCES
"${GENERATED_API_DISPATCH}" "${GENERATED_API_DISPATCH}"
"${GENERATED_EX_CMDS_DEFS}" "${GENERATED_EX_CMDS_DEFS}"
"${GENERATED_EVENTS_NAMES_MAP}" "${GENERATED_EVENTS_NAMES_MAP}"
"${GENERATED_FUNCS}"
"${GENERATED_KEYCODE_NAMES}" "${GENERATED_KEYCODE_NAMES}"
"${GENERATED_OPTIONS}" "${GENERATED_OPTIONS}"
"${GENERATED_OPTIONS_MAP}" "${GENERATED_OPTIONS_MAP}"
@ -682,33 +710,6 @@ list(APPEND NVIM_GENERATED_FOR_SOURCES
"${PROJECT_BINARY_DIR}/cmake.config/auto/pathdef.h" "${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
)
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}
)
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}
DEPENDS ${LUA_GEN_DEPS} ${EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/auevents.lua
)
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
)
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
)
# NVIM_GENERATED_FOR_SOURCES and NVIM_GENERATED_FOR_HEADERS must be mutually exclusive. # NVIM_GENERATED_FOR_SOURCES and NVIM_GENERATED_FOR_HEADERS must be mutually exclusive.
foreach(hfile ${NVIM_GENERATED_FOR_HEADERS}) foreach(hfile ${NVIM_GENERATED_FOR_HEADERS})
list(FIND NVIM_GENERATED_FOR_SOURCES ${hfile} hfile_idx) list(FIND NVIM_GENERATED_FOR_SOURCES ${hfile} hfile_idx)