Commit graph

305 commits

Author SHA1 Message Date
Marc Durdin
29ddeeb67b chore(core): remove cl from path before build, build static lib 2023-02-21 13:11:31 +07:00
Marc Durdin
d74b08f37c chore(core): handle meson version 0.53.2 2023-02-21 12:41:44 +07:00
Marc Durdin
19101c6a2a chore(core): cleanup meson build
This updates our meson min version on Windows to 1.0, which means that
we can avoid having Visual Studio on the path, as meson can find it
anyway. With this change, we can eliminate the batch-wrapper for the
build, significantly improving build performance and simplifying the
scripts.

This also adds a change to disable tests for dependency builds of core,
along with the `--no-tests` command line option for doing builds without
tests.

Minor cleanup includes eliminating various warnings from meson.build
files, and standardizing WASM cross-platform build options for Windows.
2023-02-21 12:12:28 +07:00
Steven R. Loomis
018d109560
Merge pull request #8222 from keymanapp/feat/core/7535-process-test-data-epic-ldml
feat(core): ldml: implement xml test cases 🙀
2023-02-20 16:35:03 -06:00
Steven R. Loomis
d46f2c3f9b
Update core/tests/unit/ldml/ldml_test_source.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:35:17 -06:00
Steven R. Loomis
ce0a488fe0
Update core/tests/unit/ldml/ldml_test_source.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:35:11 -06:00
Steven R. Loomis
fceebaed76
Update core/tests/unit/ldml/ldml.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:34:53 -06:00
Steven R. Loomis
dd9be17228
Update core/include/ldml/keyboardprocessor_ldml.ts
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:32:58 -06:00
Steven R. Loomis
4433d85a82 feat(core): ldml json test executor 🙀
- add a somewhat-modified fr azerty as a test case
- fr azerty tests pass, with some TODOs

#7535
2023-02-16 13:59:44 -06:00
Steven R. Loomis
4689c04533 feat(core): ldml json test executor 🙀
- can now use the new key2.kmap table to lookup keys. Basic test passes

#7535
2023-02-16 13:04:33 -06:00
Steven R. Loomis
47b222e8a8 feat(core): ldml json test executor 🙀
- intermediate, does not process context or actions yet
- embedded (non-json) tests pass
- utf-8 parsing
- bring in kmx+ into ldml_test_source for parsing, but key2 is not ready eyt
- temporary scaffolding mapping key ids to vkeys
- build fixes
- getting closer.
2023-02-16 12:33:32 -06:00
Steven R. Loomis
c40c19db3f feat(core): refactor ldml test 🙀
- rearrange classes so we can get to dynamic subtests
2023-02-16 12:32:57 -06:00
Steven R. Loomis
8ea87aa828 feat(common): ldml: merge keys into key2 🙀 2023-02-16 12:29:19 -06:00
Steven R. Loomis
bf15661fd0 spec(core): ldml: merge keys into key2 🙀
- rename keys to key2.kmap (vkey+mod -> key)
- drop key2.keys.vkey

#7042
2023-02-16 12:02:08 -06:00
Steven R. Loomis
cace5cf596 feat(core): ldml C++ helper for list / key2 🙀
For: #7985
2023-02-15 19:00:54 -06:00
Steven R. Loomis
c191f0a0b5 feat(core): auto generate test json 🙀
- example testdata for k_001_tiny
- meson to generate test json to ./build/arch/release/tests/unit/ldml/keyboards/k_001_tiny-test.json

#7535
2023-02-15 17:58:52 -06:00
Steven R. Loomis
4a2bb6b3da Review comments 2023-02-15 09:49:54 -06:00
Steven R. Loomis
e5620e83f1 feat(core): ldml C++ validate list / key2 🙀
- need helper objs still

For: #7985
2023-02-14 09:23:51 -06:00
Steven R. Loomis
aa0da57b70 fix(core): fix double precision err 2023-02-14 09:23:03 -06:00
Steven R. Loomis
ac2366f460 feat(core): ldml C++ updates to modifiers 🙀
- spec: change caps value to 0x100 #7533
- add a 'mod_all'  for validating valid modifier keys, plus tests
- add asserts on C++ side mapping modifiers to keyman constants
- use 'mod_all' to validate modifiers
- further fix modifier -> mod in binary

For: #7985 and related to #7533
2023-02-14 09:23:03 -06:00
Steven R. Loomis
7983fd9609 fix(developer): ldml spec: layr…mod needs to be a bitfield 🙀
- layr.layers.layer.mod needs to be a bit field just as keys.key.mod

Related to #7533
2023-02-14 09:23:03 -06:00
Steven R. Loomis
7c02ab85af feat(core): ldml C++ feature support 🙀
- make ldml.cpp print FAILED on failure especially because of https://github.com/microsoft/vscode-cpptools/issues/487
- add vkey validation (#7135)
- add disp validation
- fix: a latent bug in disp! disp.count was === vkey.count, oops. Fix and test cases.

For: #7985
2023-02-14 09:23:03 -06:00
Steven R. Loomis
db272e08e7 Merge remote-tracking branch 'upstream/master' into chore/merge-master-20230210-epic-ldml 2023-02-10 11:01:27 -06:00
Steven R. Loomis
a8832ea893
Merge pull request #8172 from keymanapp/feat/developer/7965-morehardware-epic-ldml
feat(common): ldml different hardware support 🙀
2023-02-07 17:06:35 -06:00
Steven R. Loomis
8d6366921b
Update core/include/ldml/keyboardprocessor_ldml.ts
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-07 17:04:09 -06:00
Steven R. Loomis
5e445b32a1 feat(developer): ldml: modifier key updates 🙀
- per review comments
- drop opt, cmd, and shiftL/shiftR

For: #7533
2023-02-06 15:47:18 -06:00
Eberhard Beilharz
1ef7db5a04
Merge pull request #8111 from keymanapp/chore/linux/5981_ibus-keyman_meson
chore(linux): Build with meson instead of autotools 🏗️
2023-02-06 17:47:37 +01:00
Steven R. Loomis
41f77a874c feat(common): ldml different hardware support 🙀
- add HardwareToKeymap in common/web/types
- add a mt-iso keyboard, very close to stock mt.xml
- add machinery for parsing modifier key sequences
- more test machinery
- add assertions against invalid modifier sequences

Fixes: #7965
2023-02-03 19:00:57 -06:00
Steven R. Loomis
af10312f84 feat(common): ldml modifier support 🙀
- spec: update spec for layr.mod field
- core/include/ldm: update constants
- bitfield modelled after s_modifier_names[]  / LCTRLFLAG etc.
- new test case k_004_tinyshift, also update k_010_mt
- update const builder to ignore all *_map properties
- split utility out to utils, add test

For: #7533
(cherry picked from commit 0346bea488)
2023-02-03 18:54:22 -06:00
Steven R. Loomis
ae45295dc6 Merge remote-tracking branch 'upstream/master' into chore/merge-master-a17s5-REDO-epic-ldml 2023-02-03 16:53:35 -06:00
Eberhard Beilharz
95aa92ff9a
chore(core): Merge remote-tracking branch 'origin/master' into chore/core/mesonversion 2023-02-02 19:37:26 +01:00
Eberhard Beilharz
1c602b8e6b
chore(linux): Build static library only on Linux
The static library is currently only needed for the ibus-keyman
tests, so we only build it on Linux. It can't build with
emscripten, and on Windows it'd need some additional work.
2023-02-01 08:38:33 +01:00
Eberhard Beilharz
d39ba178fa chore(linux): Fix wasm build
emscripten doesn't support static libraries, so we explicitly
build a static library unless we're building for wasm.
2023-01-31 20:59:28 +01:00
Eberhard Beilharz
c176ebc6af
chore(linux): Address code review comments 2023-01-31 17:38:29 +01:00
Eberhard Beilharz
eb076c08c8
chore(linux): Build with meson instead of autotools
This change introduces meson for building ibus-keyman instead of
autotools.

Closes #5981.
2023-01-30 16:32:38 +01:00
Steven R. Loomis
ed30de2642 feat(core): ldml: add cldr version to constants 🙀
- also improve constant builder
- also fix build.sh so it uses sourcemaps

supports #7964
2023-01-27 12:45:00 -06:00
Steven R. Loomis
3eb7f05df6 feat(developer): ldml implied keys work 🙀
- update test cases per review

- review comment
2023-01-27 12:42:18 -06:00
Steven R. Loomis
0b497be277 chore(core): update tests per merge conflicts 2023-01-27 12:41:47 -06:00
Steven R. Loomis
727056cb87 feat(developer): ldml support implied keys 🙀
- automatically add the import

Fixes: #7964

Apply suggestions from code review

Co-authored-by: Marc Durdin <marc@durdin.net>
2023-01-27 12:41:39 -06:00
Steven R. Loomis
6fd2e418bc feat(common): ldml implement imports 🙀
add tests:
- k_100, k_101, k_102 all failed for different reasons.
- rename test cases from 'fail' to 'keytest' since they don't fail anymore

For: #7401

- update k101_fail.xml / k102_fail.xml to use an implied import
- update build.sh to bring over the imports from CLDR

For #7534
2023-01-27 12:40:22 -06:00
Steven R. Loomis
592d4b0b5e
Merge pull request #7969 from keymanapp/feat/developer-7965-epic-ldml-spacebar
fix(common): update USVirtualKeyMap to actually be US🙀
2023-01-26 17:02:57 -06:00
Steven R. Loomis
1d7e0d1922
Merge pull request #8030 from keymanapp/spec/core/7986-hardware-enum-epic-ldml
spec(core): ldml: make hardware be an enum 🙀
2023-01-26 14:05:26 -06:00
Steven R. Loomis
631cd5007e chore(developer): disable mt 🙀
- disable mt for now, as it will depend on imports

For: #7965
2023-01-26 13:49:49 -06:00
Steven R. Loomis
a1cfd7253d fix(common): update USVirtualKeyMap to actually be US🙀
comon/web/types:
- the USVirtualKeyMap was actually somewhat ISO-ish. Correct it.
- also, add the spacebar row.
- create a new ISOVirtualKeyMap, but not linked in anywhere.

core/tests:
- add a new test keyboard, k_010_mt.xml which is Maltese 47-key
- update k_003 which was impacted by this

For: #7965
2023-01-26 13:49:49 -06:00
Steven R. Loomis
666d71f342 chore(core): ldml: update unit tests 🙀
- add hardware="us"

For: #7986
2023-01-19 21:36:04 -06:00
Steven R. Loomis
d7ce2191bf feat(core): ldml: make hardware be an enum 🙀
For: #7986
2023-01-19 12:24:47 -06:00
Steven R. Loomis
5cf1a1fad3 spec(core): ldml: make hardware be an enum 🙀
- drop layers.flags as unneeded
- defer to UTS35 for hardware definitions

For: #7986
2023-01-18 18:20:08 -06:00
Steven R. Loomis
8a579a1650
Merge pull request #7992 from keymanapp/feat/core/7984-cxx-assert-on-invalid-epic-ldml
fix(core): ldml: add asserts to C++ 🙀
2023-01-18 08:58:34 -06:00
Steven R. Loomis
e58669008a feat(core): ldml: Drop all padding: common,core 🙀
- not even 32 bit padding

For: #7987
2023-01-16 19:22:34 -06:00
Steven R. Loomis
c0541c40c7 spec(core): ldml: make hardware be an enum 🙀
For: #7986
2023-01-16 19:07:05 -06:00