mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	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:
		@@ -106,8 +106,8 @@ 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 = {}
 | 
				
			||||||
  local put = function(str)
 | 
					  local put = function(str)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user