diff options
author | Philipp Gesang <phg@phi-gamma.net> | 2016-04-07 22:45:08 +0200 |
---|---|---|
committer | Philipp Gesang <phg@phi-gamma.net> | 2016-04-07 22:45:15 +0200 |
commit | 1b031eb27c3b5e2e45ed97e5be8c8d951f283462 (patch) | |
tree | 8443aad3e049bfd2e46a89f3899a92155cd76ae9 /scripts | |
parent | 602113d439c935a364b781914c7e7b77c243c398 (diff) | |
download | luaotfload-1b031eb27c3b5e2e45ed97e5be8c8d951f283462.tar.gz |
[import] adapt to grand upstream restructuring
Two not quite unrelated changes have to be accounted for:
* Finally, the source for Context MkII and MkIV are being kept in
separate trees, at least as far as the format is concerned. All
out scripts that pull code from upstream had to be adapted.
* New fontloader. This has been cooking for half a year maybe: Some
of our troubles with 2.6 were caused by separating out the revised
but highly experimental code from the self-contained fontloader,
despite Hans’ great efforts to make it seamless. Now that the new
fontloader is deemed mature enough, we have to accomodate the
switchover.
The fallout exceeds the bounds of Luaotfload proper: The Lualibs package
had to be extended as well, adding a rather tiny library from the
``util-*`` namespace. With the latest setup, a fontloader can indeed be
assembled automatically again. No testing has taken place yet, so it
might not even run.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/mkimport | 138 |
1 files changed, 89 insertions, 49 deletions
diff --git a/scripts/mkimport b/scripts/mkimport index 4b628ae..dfc7a5d 100755 --- a/scripts/mkimport +++ b/scripts/mkimport @@ -63,7 +63,7 @@ local luatex_fonts_prefix = "luatex" local fontloader_subdir = "src/fontloader" local origin_paths = { - context = "tex/context/base/mkiv", + context = { "tex/context/base/mkiv", "tex/context/base", }, fontloader = "tex/generic/context/luatex", } @@ -201,18 +201,13 @@ local imports = { { name = "basics-gen" , ours = nil , kind = kind_essential }, { name = "basics-nod" , ours = nil , kind = kind_merged }, { name = "basics" , ours = nil , kind = kind_tex }, - { name = "fonts-cbk" , ours = nil , kind = kind_merged }, - { name = "fonts-def" , ours = nil , kind = kind_merged }, { name = "fonts-demo-vf-1" , ours = nil , kind = kind_ignored }, { name = "fonts-enc" , ours = nil , kind = kind_merged }, { name = "fonts-ext" , ours = nil , kind = kind_merged }, - { name = "fonts-lua" , ours = nil , kind = kind_merged }, { name = "fonts-merged" , ours = "reference" , kind = kind_essential }, - { name = "fonts-ota" , ours = nil , kind = kind_merged }, { name = "fonts" , ours = nil , kind = kind_merged }, { name = "fonts" , ours = nil , kind = kind_tex }, { name = "fonts-syn" , ours = nil , kind = kind_ignored }, - { name = "fonts-tfm" , ours = nil , kind = kind_merged }, { name = "languages" , ours = nil , kind = kind_ignored }, { name = "languages" , ours = nil , kind = kind_tex }, { name = "math" , ours = nil , kind = kind_ignored }, @@ -234,18 +229,31 @@ local imports = { { name = "data-con" , ours = "data-con" , kind = kind_merged }, { name = "font-afk" , ours = "font-afk" , kind = kind_merged }, { name = "font-afm" , ours = "font-afm" , kind = kind_merged }, + { name = "font-cff" , ours = "font-cff" , kind = kind_merged }, { name = "font-cid" , ours = "font-cid" , kind = kind_merged }, { name = "font-con" , ours = "font-con" , kind = kind_merged }, { name = "font-def" , ours = "font-def" , kind = kind_merged }, + { name = "font-dsp" , ours = "font-dsp" , kind = kind_merged }, + { name = "font-gbn" , ours = "font-gbn" , kind = kind_merged }, { name = "font-ini" , ours = "font-ini" , kind = kind_merged }, { name = "font-inj" , ours = "font-inj" , kind = kind_merged }, + { name = "font-lua" , ours = "font-lua" , kind = kind_merged }, { name = "font-map" , ours = "font-map" , kind = kind_merged }, + { name = "font-osd" , ours = "font-osd" , kind = kind_merged }, + { name = "font-ota" , ours = "font-ota" , kind = kind_merged }, { name = "font-otb" , ours = "font-otb" , kind = kind_merged }, + { name = "font-otd" , ours = "font-otd" , kind = kind_merged }, { name = "font-otf" , ours = "font-otf" , kind = kind_merged }, { name = "font-oti" , ours = "font-oti" , kind = kind_merged }, - { name = "font-otn" , ours = "font-otn" , kind = kind_merged }, - { name = "font-otp" , ours = "font-otp" , kind = kind_merged }, + { name = "font-otj" , ours = "font-otj" , kind = kind_merged }, + { name = "font-otl" , ours = "font-otl" , kind = kind_merged }, + { name = "font-oto" , ours = "font-oto" , kind = kind_merged }, + { name = "font-otr" , ours = "font-otr" , kind = kind_merged }, + { name = "font-ots" , ours = "font-ots" , kind = kind_merged }, + { name = "font-oup" , ours = "font-oup" , kind = kind_merged }, { name = "font-tfm" , ours = "font-tfm" , kind = kind_merged }, + { name = "font-ttf" , ours = "font-ttf" , kind = kind_merged }, + { name = "l-boolean" , ours = "l-boolean" , kind = kind_lualibs }, { name = "l-file" , ours = "l-file" , kind = kind_lualibs }, { name = "l-function" , ours = "l-function" , kind = kind_lualibs }, @@ -256,6 +264,7 @@ local imports = { { name = "l-string" , ours = "l-string" , kind = kind_lualibs }, { name = "l-table" , ours = "l-table" , kind = kind_lualibs }, { name = "util-str" , ours = "util-str" , kind = kind_lualibs }, + { name = "util-fil" , ours = "util-fil" , kind = kind_lualibs }, }, --[[ [context] ]] } --[[ [imports] ]] @@ -276,33 +285,39 @@ local package = { --- [08] l-boolean.lua --- [09] l-math.lua --- [10] util-str.lua ---- [11] luatex-basics-gen.lua ---- [12] data-con.lua ---- [13] luatex-basics-nod.lua ---- [14] font-ini.lua ---- [15] font-con.lua ---- [16] luatex-fonts-enc.lua ---- [17] font-cid.lua ---- [18] font-map.lua ---- [19] luatex-fonts-syn.lua ---- [20] font-tfm.lua ---- [21] font-afm.lua ---- [22] font-afk.lua ---- [23] luatex-fonts-tfm.lua ---- [24] font-oti.lua ---- [25] font-otf.lua ---- [26] font-otb.lua ---- [27] font-inj.lua ---- [28] luatex-fonts-ota.lua ---- [30] font-otn.lua ---- [30] font-otp.lua ---- [31] luatex-fonts-lua.lua ---- [32] font-def.lua ---- [33] luatex-fonts-def.lua ---- [34] luatex-fonts-ext.lua ---- [35] luatex-fonts-cbk.lua +--- [11] util-fil.lua +--- [12] luatex-basics-gen.lua +--- [13] data-con.lua +--- [14] luatex-basics-nod.lua +--- [15] luatex-basics-chr.lua +--- [16] font-ini.lua +--- [17] font-con.lua +--- [18] luatex-fonts-enc.lua +--- [19] font-cid.lua +--- [20] font-map.lua +--- [21] luatex-fonts-syn.lua +--- [22] font-tfm.lua +--- [23] font-afm.lua +--- [24] font-afk.lua +--- [25] font-oti.lua +--- [26] font-otr.lua +--- [27] font-cff.lua +--- [28] font-ttf.lua +--- [29] font-dsp.lua +--- [30] font-oup.lua +--- [31] font-otl.lua +--- [32] font-oto.lua +--- [33] font-otj.lua +--- [34] font-ota.lua +--- [35] font-ots.lua +--- [36] font-osd.lua +--- [37] font-lua.lua +--- [38] font-def.lua +--- [39] font-xtx.lua +--- [40] luatex-fonts-ext.lua +--- [41] font-gbn.lua --- ---- Of these, nos. 01--10 are provided by the Lualibs. Keeping them +--- Of these, nos. 01--11 are provided by the Lualibs. Keeping them --- around in the Luaotfload fontloader is therefore unnecessary. --- Packaging needs to account for this difference. @@ -316,12 +331,18 @@ local package = { "l-boolean", "l-math", "util-str", + "util-fil", --- Another file containing auxiliary definitions must be present --- prior to initialization of the configuration. "luatex-basics-gen", +--- We have a custom script for autogenerating data so we don’t use the +--- definitions from upstream. + + "basics-chr", + }, --[[ [package.optional] ]] --- The files below constitute the “fontloader proper”. Some of the @@ -342,19 +363,23 @@ local package = { "font-tfm", "font-afm", "font-afk", - "fonts-tfm", + "font-tfm", "font-oti", - "font-otf", - "font-otb", - "font-inj", - "fonts-ota", - "font-otn", - "font-otp", - "fonts-lua", + "font-otr", + "font-cff", + "font-ttf", + "font-dsp", + "font-oup", + "font-otl", + "font-oto", + "font-otj", + "font-ota", + "font-ots", + "font-osd", + "font-lua", "font-def", - "fonts-def", "fonts-ext", - "fonts-cbk", + "font-gbn", }, --[[ [package.required] ]] @@ -372,12 +397,27 @@ local hash_file = function (fname) return md5sumhexa (raw) end +local first_existing_subpath = function (pfx, subs) + if not subs then return nil end + local t_subs = type (subs) + if t_subs == "table" then + for i = 1, #subs do + local sub = subs[i] + local pth = file.join (pfx, sub) + if lfsisdir (pth) then return pth end + end + elseif t_subs == "string" then + local pth = file.join (pfx, subs) + if lfsisdir (pth) then return pth end + end + return nil +end + local derive_category_path = function (cat) - local subpath = origin_paths[cat] or die ("category " .. cat .. " unknown") - local location = file.join (parms.context_root, subpath) - if not lfsisdir (location) then - die ("invalid base path defined for category " - .. cat .. " at " .. location) + local location = first_existing_subpath (parms.context_root, + origin_paths[cat]) + if not location then + die ("invalid base path defined for category " .. cat) end return location end |