diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2020-01-19 10:11:37 +0100 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2020-01-19 10:19:21 +0100 |
commit | f15b59b9319d4e5a43a3e3515cb0f0449c7224c7 (patch) | |
tree | 8afadd7358b5e16965e7ab4b3957db702c17869b /gen.sh | |
parent | 810c8ff0bea17214b4e4c5ce802ad89b5ad6e2c9 (diff) | |
download | lulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.tar.gz lulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.tar.bz2 lulua-f15b59b9319d4e5a43a3e3515cb0f0449c7224c7.zip |
Add Windows driver
Generate C header file based on layout description and create a source
bundle that must be compiled on a Windows system and then moved back to
the source tree. This sucks, but cross-compiling on Linux is a pain,
since Windows’ development headers assume a case-insensitive filesystem.
Also I’m using MSKLC because the latest driver development kit cannot
compile these drivers correctly. Dear @microsoft, please fix your shit:
https://github.com/microsoft/Windows-driver-samples/issues/433
A remaining concern right now is licensing. keyboard.{c,h,def,rc} have
been copied from a project generated by MSKLC and are probably non-free,
although pretty much identical files like
https://github.com/microsoft/Windows-driver-samples/blob/master/input/layout/kbdus/kbdus.c
are covered by MS-PL.
Also binds backspace key to \b and adjusts xmodmap/svg rendering
accordingly.
See #7.
Diffstat (limited to 'gen.sh')
-rwxr-xr-x | gen.sh | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -101,12 +101,21 @@ rule html rule cp command = cp \$in \$out +rule cpR + command = cp -R \$in \$out + rule gz command = gzip -c \$in > \$out rule configure-make command = cd \$in && autoreconf --install && ./configure && make +rule zipR + command = ./makezip.sh \$in \$out + +rule render-winkbd + command = lulua-render -l ar-lulua winkbd \$out + ### build targets ### build \$docdir/_build: mkdir build \$docdir/_build/fonts: mkdir @@ -124,6 +133,22 @@ build \$docdir/_build/fonts/IBMPlexArabic-Thin.woff2: cp \$fontdir/IBMPlexArabic # build osmconvert build \$osmconvert: configure-make 3rdparty/osmctools + +# windows drivers +build \$docdir/_temp/winkbd: cpR lulua/data/winkbd +build \$docdir/_temp/winkbd/customization.h: render-winkbd || \$docdir/_temp/winkbd +build \$docdir/_temp/ar-lulua-w64: mkdir +EOF + +w64zipfile="System32/kbdarlulua.dll SysWOW64/kbdarlulua.dll README.txt lulua.reg install.bat" +deps="" +for f in $w64zipfile; do + echo "build \$docdir/_temp/ar-lulua-w64/$f: cp \$docdir/_temp/winkbd/$f || \$docdir/_temp/ar-lulua-w64" + deps+=" \$docdir/_temp/ar-lulua-w64/$f" +done +cat <<EOF +build \$docdir/_build/ar-lulua-w64.zip: zipR \$docdir/_temp/ar-lulua-w64 | $deps + EOF # targets for every layout |