mirror of
https://github.com/neovim/neovim.git
synced 2025-10-19 08:11:50 +00:00
scripts: Make generate_vim_module more generic
This commit is contained in:
@@ -1,13 +1,23 @@
|
|||||||
assert(#arg == 2)
|
if arg[1] == '--help' then
|
||||||
|
print('Usage:')
|
||||||
|
print(' gencharblob.lua source target varname')
|
||||||
|
print('')
|
||||||
|
print('Generates C file with big uint8_t blob.')
|
||||||
|
print('Blob will be stored in a static const array named varname.')
|
||||||
|
os.exit()
|
||||||
|
end
|
||||||
|
|
||||||
module_file = arg[1]
|
assert(#arg == 3)
|
||||||
target_file = arg[2]
|
|
||||||
|
|
||||||
module = io.open(module_file, 'r')
|
local source_file = arg[1]
|
||||||
|
local target_file = arg[2]
|
||||||
|
local varname = arg[3]
|
||||||
|
|
||||||
|
source = io.open(source_file, 'r')
|
||||||
target = io.open(target_file, 'w')
|
target = io.open(target_file, 'w')
|
||||||
|
|
||||||
target:write('#include <stdint.h>\n\n')
|
target:write('#include <stdint.h>\n\n')
|
||||||
target:write('static const uint8_t vim_module[] = {\n')
|
target:write(('static const uint8_t %s[] = {\n'):format(varname))
|
||||||
|
|
||||||
num_bytes = 0
|
num_bytes = 0
|
||||||
MAX_NUM_BYTES = 15 -- 78 / 5: maximum number of bytes on one line
|
MAX_NUM_BYTES = 15 -- 78 / 5: maximum number of bytes on one line
|
||||||
@@ -21,7 +31,7 @@ increase_num_bytes = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for line in module:lines() do
|
for line in source:lines() do
|
||||||
for i = 1,string.len(line) do
|
for i = 1,string.len(line) do
|
||||||
byte = string.byte(line, i)
|
byte = string.byte(line, i)
|
||||||
assert(byte ~= 0)
|
assert(byte ~= 0)
|
||||||
@@ -34,5 +44,5 @@ end
|
|||||||
|
|
||||||
target:write(' 0};\n')
|
target:write(' 0};\n')
|
||||||
|
|
||||||
module:close()
|
source:close()
|
||||||
target:close()
|
target:close()
|
@@ -39,7 +39,7 @@ set(UNICODE_DIR ${PROJECT_SOURCE_DIR}/unicode)
|
|||||||
set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h)
|
set(GENERATED_UNICODE_TABLES ${GENERATED_DIR}/unicode_tables.generated.h)
|
||||||
set(VIM_MODULE_FILE ${GENERATED_DIR}/viml/executor/vim_module.generated.h)
|
set(VIM_MODULE_FILE ${GENERATED_DIR}/viml/executor/vim_module.generated.h)
|
||||||
set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/viml/executor/vim.lua)
|
set(VIM_MODULE_SOURCE ${PROJECT_SOURCE_DIR}/src/nvim/viml/executor/vim.lua)
|
||||||
set(VIM_MODULE_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/generate_vim_module.lua)
|
set(CHAR_BLOB_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/gencharblob.lua)
|
||||||
|
|
||||||
file(GLOB API_HEADERS api/*.h)
|
file(GLOB API_HEADERS api/*.h)
|
||||||
file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h)
|
file(GLOB MSGPACK_RPC_HEADERS msgpack_rpc/*.h)
|
||||||
@@ -222,10 +222,10 @@ add_custom_command(
|
|||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${VIM_MODULE_FILE}
|
OUTPUT ${VIM_MODULE_FILE}
|
||||||
COMMAND ${LUA_PRG} ${VIM_MODULE_GENERATOR} ${VIM_MODULE_SOURCE}
|
COMMAND ${LUA_PRG} ${CHAR_BLOB_GENERATOR} ${VIM_MODULE_SOURCE}
|
||||||
${VIM_MODULE_FILE}
|
${VIM_MODULE_FILE} vim_module
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${VIM_MODULE_GENERATOR}
|
${CHAR_BLOB_GENERATOR}
|
||||||
${VIM_MODULE_SOURCE}
|
${VIM_MODULE_SOURCE}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user