[latex3-commits] [git/LaTeX3-latex3-latex2e] stdmain: Move format-building to top-level build config (617367d0)
Joseph Wright
joseph.wright at morningstar2.co.uk
Tue Oct 1 18:30:37 CEST 2019
Repository : https://github.com/latex3/latex2e
On branch : stdmain
Link : https://github.com/latex3/latex2e/commit/617367d0b137c90b137416a1a4b373ee59afaf12
>---------------------------------------------------------------
commit 617367d0b137c90b137416a1a4b373ee59afaf12
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Tue Oct 1 17:30:37 2019 +0100
Move format-building to top-level build config
This is using the new dedicated hook for tests, and is
more-or-less the LaTeX3 implementation.
Typesetting is not set up yet, but is allowed for in
the names table argument. This will need a hook
in l3build: to add for next release these.
>---------------------------------------------------------------
617367d0b137c90b137416a1a4b373ee59afaf12
base/build.lua | 58 +-------------------------------------------------------
build-config.lua | 40 ++++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 57 deletions(-)
diff --git a/base/build.lua b/base/build.lua
index 4076f086..2c99e2f1 100644
--- a/base/build.lua
+++ b/base/build.lua
@@ -143,58 +143,6 @@ checkconfigs = {"build","config-TU"}
update_tag = update_tag_base
-function format (doc)
- local errorlevel = unpack ()
- if errorlevel ~=0 then
- return errorlevel
- end
- local function format (engine,fmtname)
- -- the relationships are all correct
- local sourcefile = unpackdir .. "/latex.ltx"
- local finalname = string.gsub(engine,"tex","latex")
- if fileexists(localdir .. "/" .. finalname .. ".ini") then
- sourcefile = localdir .. "/" .. finalname .. ".ini"
- end
- local errorlevel = os.execute (
- os_setenv .. " TEXINPUTS=" .. unpackdir .. os_pathsep .. localdir
- .. os_concat ..
- engine .. " -etex -ini " .. " -output-directory=" .. unpackdir ..
- " -jobname=latex " .. sourcefile
- )
- if errorlevel ~=0 then
- return errorlevel
- end
- ren (unpackdir, "latex.fmt", fmtname)
- -- As format building is added in as an 'extra', the normal
- -- copy mechanism (checkfiles) will fail as things get cleaned up
- -- inside bundleunpack(): get around that using a manual copy
- cp (fmtname, unpackdir, localdir)
- if fmtname == "elatex.fmt" then
- rm(localdir, "latex.fmt")
- ren(localdir, fmtname, "latex.fmt")
- end
- return 0
- end
- if not options["config"] or options["config"][1] ~= "config-TU" then
- cp("fonttext.cfg",supportdir,unpackdir)
- end
- local buildformats = { }
- local enginedata = options["engine"] or checkengines
- for _,name in ipairs(enginedata) do
- table.insert(buildformats,name)
- end
- if not options["config"] then
- table.insert(buildformats,"pdftex")
- end
- for _,i in ipairs(buildformats) do
- errorlevel = format (i, string.gsub (i, "tex$", "") .. "latex.fmt")
- if errorlevel ~=0 then
- return errorlevel
- end
- end
- return 0
-end
-
-- Custom bundleunpack which does not search the localdir
-- That is needed as texsys.cfg is unpacked in an odd way and
-- without this will otherwise not be available
@@ -244,9 +192,6 @@ end
function main (target, file, engine)
local errorlevel
if target == "check" then
- if not options["rerun"] then
- format()
- end
errorlevel = check (file, engine)
elseif target == "clean" then
errorlevel = clean ()
@@ -269,8 +214,7 @@ function main (target, file, engine)
elseif target == "tag" then
errorlevel = tag(file,engine)
elseif target == "unpack" then
- -- A simple way to have the unpack target also build the format
- errorlevel = format ()
+ errorlevel = unpack ()
elseif target == "uninstall" then
errorlevel = uninstall()
elseif target == "version" then
diff --git a/build-config.lua b/build-config.lua
index bcea0550..94aea7d1 100644
--- a/build-config.lua
+++ b/build-config.lua
@@ -157,3 +157,43 @@ function update_tag_ltx(file,content,tagname,tagdate)
"\nRelease " .. iso .. "[^\n]*\n",
"\nRelease " .. tag .. "\n")
end
+
+-- Need to build format files
+local function fmt(names)
+ local function mkfmt(engine)
+ -- Use .ini files if available
+ local src = "latex.ltx"
+ local ini = string.gsub(engine,"tex","") .. "latex.ini"
+ if fileexists(supportdir .. "/" .. ini) then
+ src = ini
+ end
+ print("Building format for " .. engine)
+ local errorlevel = os.execute(
+ os_setenv .. " TEXINPUTS=" .. unpackdir .. os_pathsep .. localdir
+ .. os_pathsep .. texmfdir .. "//"
+ .. os_concat .. engine .. " -etex -ini -output-directory=" .. unpackdir
+ .. " " .. src
+ .. (hide and (" > " .. os_null) or ""))
+ if errorlevel ~= 0 then return errorlevel end
+ local fmtname = string.gsub(engine,"tex$","") .. "latex.fmt"
+ if fileexists (unpackdir,"latex.fmt") then
+ ren(unpackdir,"latex.fmt",fmtname)
+ end
+ cp(fmtname,unpackdir,testdir)
+ return 0
+ end
+
+ if not options["config"] or options["config"][1] ~= "config-TU" then
+ cp("fonttext.cfg",supportdir,unpackdir)
+ end
+
+ local checkengines = names or options["engine"] or checkengines
+ local errorlevel
+ for _,engine in pairs(checkengines) do
+ errorlevel = mkfmt(engine)
+ if errorlevel ~= 0 then return errorlevel end
+ end
+ return 0
+end
+
+function checkinit_hook() return fmt() end
\ No newline at end of file
More information about the latex3-commits
mailing list