]> git.e2factory.org Git - e2factory.git/commitdiff
e2build: clear up confusion between build mode and process mode
authorTobias Ulmer <tu@emlix.com>
Fri, 8 Sep 2017 11:26:26 +0000 (13:26 +0200)
committerTobias Ulmer <tu@emlix.com>
Mon, 10 Dec 2018 17:00:11 +0000 (18:00 +0100)
Signed-off-by: Tobias Ulmer <tu@emlix.com>
local/e2-playground.lua
local/e2build.lua
local/e2tool.lua

index 67b2fd8f673725a2bef9eb12b550e3aa0f0176cc..91b850a2c9e47087012e2e1b8ee45bf8f9f04555 100644 (file)
@@ -125,7 +125,7 @@ local function e2_playground(arg)
     end
 
     res:build_settings(settings)
-    rc, re = res:build_process():build(res)
+    rc, re = res:build_process():build(res, "playground")
     if not rc then
         error(e:cat(re))
     end
index 69bae44d2a3f88e102d351f3b94f7d5c3e40dd0a..39f90ba605ef72a24ad190c9bddb594e136b2635 100644 (file)
@@ -76,15 +76,16 @@ function e2build.build_process_class:initialize()
 end
 
 --- Build one result.
---@param res Result object
---@return True on success, false on error.
---@return Error object on failure.
-function e2build.build_process_class:build(res)
+-- @param res Result object
+-- @param process_mode Build process mode.
+-- @return True on success, false on error.
+-- @return Error object on failure.
+function e2build.build_process_class:build(res, process_mode)
     assert(res:isInstanceOf(result.basic_result))
     e2lib.logf(3, "building result: %s", res:get_name())
 
 
-    for step in self:_next_step(res:build_settings():mode()) do
+    for step in self:_next_step(process_mode) do
         local rc, re
         local t1, t2, deltat
         local return_flags = strict.lock({
@@ -116,36 +117,36 @@ function e2build.build_process_class:build(res)
 end
 
 --- Add a build step
--- @param mode Build mode
+-- @param process_mode Build process mode
 -- @param name Name of build step
 -- @param func Method of build_process_class implementing the build step.
-function e2build.build_process_class:add_step(mode, name, func)
-    assertIsStringN(mode)
+function e2build.build_process_class:add_step(process_mode, name, func)
+    assertIsStringN(process_mode)
     assertIsStringN(name)
     assertIsFunction(func)
 
     self._modes = self._modes or {}
-    self._modes[mode] = self._modes[mode] or {}
-    table.insert(self._modes[mode], { name = name, func = func })
+    self._modes[process_mode] = self._modes[process_mode] or {}
+    table.insert(self._modes[process_mode], { name = name, func = func })
 end
 
 --- Add build step before specified.
--- @param mode Build mode
+-- @param process_mode Build process mode
 -- @param before Add build step before this one
 -- @param name Name of build step
 -- @param func Method of build_process_class implementing the build step.
-function e2build.build_process_class:add_step_before(mode, before, name, func)
-    assertIsStringN(mode)
+function e2build.build_process_class:add_step_before(process_mode, before, name, func)
+    assertIsStringN(process_mode)
     assertIsStringN(before)
     assertIsStringN(name)
     assertIsFunction(func)
     assertIsTable(self._modes)
-    assertIsTable(self._modes[mode])
+    assertIsTable(self._modes[process_mode])
 
     local pos = false
 
-    for i = 1, #self._modes[mode] do
-        local step = self._modes[mode][i]
+    for i = 1, #self._modes[process_mode] do
+        local step = self._modes[process_mode][i]
         if step.name == before then
             pos = i
             break
@@ -153,29 +154,29 @@ function e2build.build_process_class:add_step_before(mode, before, name, func)
     end
 
     if not pos then
-        error(err.new("add_step_before: no step called %s in mode %s", after, mode))
+        error(err.new("add_step_before: no step called %s in mode %s", after, process_mode))
     end
 
-    table.insert(self._modes[mode], pos, { name = name, func = func })
+    table.insert(self._modes[process_mode], pos, { name = name, func = func })
 end
 
 --- Add build step after specified.
--- @param mode Build mode
+-- @param process_mode Build process mode
 -- @param after Add build step after this one
 -- @param name Name of build step
 -- @param func Method of build_process_class implementing the build step.
-function e2build.build_process_class:add_step_after(mode, after, name, func)
-    assertIsStringN(mode)
+function e2build.build_process_class:add_step_after(process_mode, after, name, func)
+    assertIsStringN(process_mode)
     assertIsStringN(after)
     assertIsStringN(name)
     assertIsFunction(func)
     assertIsTable(self._modes)
-    assertIsTable(self._modes[mode])
+    assertIsTable(self._modes[process_mode])
 
     local pos = false
 
-    for i = 1, #self._modes[mode] do
-        local step = self._modes[mode][i]
+    for i = 1, #self._modes[process_mode] do
+        local step = self._modes[process_mode][i]
         if step.name == after then
             pos = i
             break
@@ -183,21 +184,23 @@ function e2build.build_process_class:add_step_after(mode, after, name, func)
     end
 
     if not pos then
-        error(err.new("add_step_after: no step called %s in mode %s", after, mode))
+        error(err.new("add_step_after: no step called %s in mode %s", after, process_mode))
     end
 
-    table.insert(self._modes[mode], pos + 1, { name = name, func = func })
+    table.insert(self._modes[process_mode], pos + 1, { name = name, func = func })
 end
 
----
-function e2build.build_process_class:_next_step(mode)
-    assertIsStringN(mode)
-    assertIsTable(self._modes[mode])
+--- Iterator returns the next step in the chosen build process mode
+-- @param process_mode Build process mode
+-- @return Iterator function
+function e2build.build_process_class:_next_step(process_mode)
+    assertIsStringN(process_mode)
+    assertIsTable(self._modes[process_mode])
     local i = 0
 
     return function()
         i = i + 1
-        return self._modes[mode][i]
+        return self._modes[process_mode][i]
     end
 end
 
@@ -1134,11 +1137,6 @@ end
 -- @type settings_class
 e2build.settings_class = class("settings")
 
----
-function e2build.settings_class:mode()
-    error("called settings_class:mode() of base class")
-end
-
 --------------------------------------------------------------------------------
 --- Build Settings class.
 -- @type build_settings_class
@@ -1152,10 +1150,6 @@ function e2build.build_settings_class:initialize()
         self._prep_playground = false
 end
 
-function e2build.build_settings_class:mode()
-    return "build"
-end
-
 ---
 function e2build.build_settings_class:selected(value)
     if value then
@@ -1203,10 +1197,6 @@ function e2build.playground_settings_class:initialize()
     self._command = false
 end
 
-function e2build.playground_settings_class:mode()
-    return "playground"
-end
-
 ---
 function e2build.playground_settings_class:profile(value)
     if value then
index f37ccf4d5749eec38ba3976050643dfcf9faa9ac..9728f18f634f44bc29f7baca26062673087a5ac4 100644 (file)
@@ -1383,7 +1383,7 @@ function e2tool.build_results(resultv)
 
         res = result.results[resultname]
 
-        rc, re = res:build_process():build(res)
+        rc, re = res:build_process():build(res, "build")
         if not rc then
             return false, e:cat(re)
         end