Browse Source

enable the scripts to work in efl 1.20 environment

master
q66 4 years ago
parent
commit
158f4cc690
  1. 3
      list_beta_c_names.lua
  2. 3
      list_used_beta_api.lua
  3. 78
      utils/eolian_extras.lua

3
list_beta_c_names.lua

@ -1,4 +1,3 @@
local eolian = require("eolian")
local getopt = require("getopt")
local eou = require("utils.eolian_extras")
@ -34,7 +33,7 @@ if exit then
return true
end
local eos = eolian.new()
local eos = eou.new()
if #pargs >= 1 then
eos:directory_add(pargs[1])

3
list_used_beta_api.lua

@ -1,4 +1,3 @@
local eolian = require("eolian")
local getopt = require("getopt")
local eou = require("utils.eolian_extras")
@ -39,7 +38,7 @@ if exit then
return true
end
local eos = eolian.new()
local eos = eou.new()
if #pargs > 1 then
eos:directory_add(pargs[2])

78
utils/eolian_extras.lua

@ -2,6 +2,61 @@ local eolian = require("eolian")
local M = {}
-- check for pre-state eolian api
local legacy = not eolian.new
-- wrapper for legacy eolian api to mimic modern
local legacy_eos = {
directory_add = function(self, dir)
eolian.directory_scan(dir)
end,
system_directory_add = function(self)
eolian.system_directory_scan()
end,
all_eo_files_parse = function(self)
assert(eolian.all_eo_files_parse())
assert(eolian.database_validate())
end,
all_eot_files_parse = function(self)
assert(eolian.all_eot_files_parse())
assert(eolian.database_validate())
end,
classes_get = function(self)
return eolian.all_classes_get(nil)
end,
aliases_get = function(self)
return eolian.typedecl_all_aliases_get(nil)
end,
structs_get = function(self)
return eolian.typedecl_all_structs_get(nil)
end,
enums_get = function(self)
return eolian.typedecl_all_enums_get(nil)
end,
globals_get = function(self)
return eolian.variable_all_globals_get(nil)
end,
constants_get = function(self)
return eolian.variable_all_constants_get(nil)
end
}
M.new = function()
if legacy then
return legacy_eos
end
return eolian.new()
end
M.get_c_functions = function(eos)
local ret = {}
for cl in eos:classes_get() do
@ -32,11 +87,22 @@ M.get_c_events = function(eos)
return ret
end
local full_name_get = function(obj)
if legacy then
return obj:full_name_get()
end
return obj:name_get()
end
M.get_c_function_pointers = function(eos)
if legacy then
-- no function pointer support in pre-state api
return {}
end
local ret = {}
for tp in eos:aliases_get() do
if tp:type_get() == eolian.typedecl_type.FUNCTION_POINTER then
ret[#ret + 1] = tp:name_get():gsub("%.", "_")
ret[#ret + 1] = full_name_get(tp):gsub("%.", "_")
end
end
return ret
@ -46,7 +112,7 @@ M.get_c_aliases = function(eos)
local ret = {}
for tp in eos:aliases_get() do
if tp:type_get() ~= eolian.typedecl_type.FUNCTION_POINTER then
ret[#ret + 1] = tp:name_get():gsub("%.", "_")
ret[#ret + 1] = full_name_get(tp):gsub("%.", "_")
end
end
return ret
@ -55,7 +121,7 @@ end
M.get_c_structs = function(eos)
local ret = {}
for tp in eos:structs_get() do
ret[#ret + 1] = tp:name_get():gsub("%.", "_")
ret[#ret + 1] = full_name_get(tp):gsub("%.", "_")
end
return ret
end
@ -63,7 +129,7 @@ end
M.get_c_enums = function(eos)
local ret = {}
for tp in eos:enums_get() do
ret[#ret + 1] = tp:name_get():gsub("%.", "_")
ret[#ret + 1] = full_name_get(tp):gsub("%.", "_")
end
return ret
end
@ -71,7 +137,7 @@ end
M.get_c_globals = function(eos)
local ret = {}
for v in eos:globals_get() do
ret[#ret + 1] = v:name_get():gsub("%.", "_"):upper()
ret[#ret + 1] = full_name_get(v):gsub("%.", "_"):upper()
end
return ret
end
@ -79,7 +145,7 @@ end
M.get_c_constants = function(eos)
local ret = {}
for v in eos:constants_get() do
ret[#ret + 1] = v:name_get():gsub("%.", "_"):upper()
ret[#ret + 1] = full_name_get(v):gsub("%.", "_"):upper()
end
return ret
end

Loading…
Cancel
Save