aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorq66 <daniel@octaforge.org>2018-08-03 01:24:25 +0200
committerq66 <daniel@octaforge.org>2018-08-03 01:24:25 +0200
commit158f4cc690af89d7565d664fcfaaad0a0973937f (patch)
tree4d07b96e80312bb7a1c16dc5aaf175e56f00c80b
parentadd names from Eo.h that are beta but not in .eo (diff)
downloadeolian_tools-158f4cc690af89d7565d664fcfaaad0a0973937f.tar.gz
enable the scripts to work in efl 1.20 environment
-rw-r--r--list_beta_c_names.lua3
-rw-r--r--list_used_beta_api.lua3
-rw-r--r--utils/eolian_extras.lua78
3 files changed, 74 insertions, 10 deletions
diff --git a/list_beta_c_names.lua b/list_beta_c_names.lua
index 612baf1..5f989eb 100644
--- a/list_beta_c_names.lua
+++ b/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])
diff --git a/list_used_beta_api.lua b/list_used_beta_api.lua
index f742134..7c43588 100644
--- a/list_used_beta_api.lua
+++ b/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])
diff --git a/utils/eolian_extras.lua b/utils/eolian_extras.lua
index 130f7ee..35be202 100644
--- a/utils/eolian_extras.lua
+++ b/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