Commit graph

46 commits

Author SHA1 Message Date
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
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
sgschantz
22f8ca1466 replace sprintf with snprintf 2023-01-16 13:51:23 +07:00
Eberhard Beilharz
cbe0dd944b chore(core): Update meson version
We no longer support Ubuntu 18.04 Bionic, so we can update to a newer meson
version. The oldest supported platform is now Ubuntu 20.04 Focal which
comes with Meson 0.53, so we make that the minimal required version.
2022-12-08 09:45:37 +01:00
Eberhard Beilharz
108e849459
fix(linux): Fix lintian warnings 2022-11-16 18:45:34 +01:00
Ross
2fcc0feed0 chore(windows): rearrange mock_options_update add commment 2022-11-15 11:03:41 +10:00
rc-swag
9117b391e3
chore(windows): address review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-11-14 16:15:40 +10:00
Ross
578a9017f4 chore(windows): add unit test for SetupCoreEnvironment 2022-11-14 12:55:13 +10:00
Marc Durdin
42a9f2ca72 fix(core): emit keystroke was writing to wrong queue
Fixes #7649.

emit_keystroke code path in kmx processor was writing directly to the
core queue instead of to the internal kmx processor queue. This caused
it to be out-of-order in the actions sent to the engine/debugger.

Engines didn't really care but it broke the debugger, for example if
only a deadkey was in the buffer and backspace was pressed, Developer
would assert as it would get unexpected context for the deletions.
2022-11-08 16:31:30 +11:00
Marc Durdin
8e5c26bc2a fix(core): m_actions already existed in KMX_Options 2022-11-07 10:50:14 +11:00
Marc Durdin
a8c3854431 fix(core): save() should be on internal kmx action queue
Fixes #7643.

The kmn statement `save()` action was being written directly to the
state queue, bypassing the internal kmx action queue. This caused two
issues:

1. save() actions were out-of-order with other actions on the same key
   event.
2. The number of items in the internal action queue became out of sync
   with the debug item queue, which would cause the debugger to fail
   with an assertion.

The new test in debug_api.cpp validates this second issue as the number
of items in the action queue now matches the expected count in the
corresponding debug item.
2022-11-07 10:28:58 +11:00
Marc Durdin
7ef6f288c4
Merge pull request #7520 from keymanapp/fix/core/7487-remove-visibility-attribute-from-callback-type
fix(core): remove `KMN_API` from callback spec
2022-10-28 11:55:54 +11:00
Marc Durdin
9c2edbcbc0 fix(core): remove KMN_API from callback spec
Fixes #7487.

`KMN_API` defines only import/export/static modifiers for functions, so
it makes no sense to apply it to a typedef. (Previously, I thought it
also included a calling convention, but it doesn't.)
2022-10-25 11:59:37 +11:00
Eberhard Beilharz
e04acb8295
fix(core): Add missing include files
Recently some include files got added to `common/include` which are
referenced by `core/include/keyman`. This change adds the necessary
code to install them in the same directory as the other include files.

Fixes #7490.
2022-10-20 17:06:35 +02:00
Marc Durdin
5a3dad0298 chore(core): fixup km_kbp_event docs 2022-09-09 15:32:48 +10:00
Marc Durdin
8678a0d35b chore(core): mark unused parameters 2022-09-07 10:36:35 +10:00
Marc Durdin
5104914672 feat(core): add km_kbp_event API endpoint
Adds infrastructure required to support caps lock control on keyboard
activation per #5822.

Keyboardprocessor implementation is currently a stub, and engines will
need corresponding updates to support the new API.
2022-09-07 10:24:01 +10:00
Marc Durdin
9edabec297 chore(core): emcc off path for linux 2022-08-30 06:20:48 +10:00
Marc Durdin
895ce930a0
Merge pull request #6993 from keymanapp/chore/core/rename-json-source
chore(core): rename json.hpp to jsonpp.hpp 🛩
2022-08-29 14:48:32 -05:00
Eberhard Beilharz
b03e7ca32f
chore(core): Remove obsolete python keyboardprocessor
This seems to be not used anywhere and has diverged from the API.
2022-08-22 17:46:27 +02:00
Marc Durdin
5635372eb9
Merge pull request #7062 from keymanapp/refactor/core/move-kmx_file.h-to-common
chore(core): refactor kmx_file.h to common 🚑
2022-08-15 02:11:19 -05:00
Steven R. Loomis
f9dc68b2e5 docs(core): cleanup in keyboardprocessor.h
- fixes to api doc
2022-08-11 16:12:51 -05:00
Marc Durdin
8e36b33f21 chore(common): check for redefinition of defines 2022-08-11 16:29:02 +02:00
Marc Durdin
515bda7692 chore(linux): ensure char16_t and namespace 2022-08-11 16:13:33 +02:00
Marc Durdin
dedb06e7cc chore(common): refactor shared types into km_types.h 2022-08-11 11:36:09 +02:00
Marc Durdin
bb24d59b5e chore(core): remove duplicate types 2022-08-11 11:34:59 +02:00
Marc Durdin
422e7227a6 chore(core): move kmx_file.h to common 2022-08-11 11:34:09 +02:00
Marc Durdin
0a22acd0e4
Merge pull request #7018 from keymanapp/chore/common/builder-tweaks
chore(common): build-utils.sh minor tweaks
2022-08-03 20:19:42 +10:00
Marc Durdin
e0d7fc73fc chore(core): tweak test path for native build unit tests 2022-08-01 14:47:44 +10:00
Marc Durdin
f762776d5c chore(core): get wasm core building again
Updates search for emscripten if not on path, and fixes up unit test
infrastructure for wasm builds for new tests.
2022-08-01 14:15:52 +10:00
Marc Durdin
45b25adecd chore(common): use standard VERSION and TIER
build-utils.sh is responsible for filling these variables.

Note: getversion.sh and getversion.bat are still currently used by
meson. gettier is no longer used with these changes.
2022-07-31 07:15:11 +10:00
Marc Durdin
fd7401fb15 chore(core): reset build.sh to use standard build-utils.sh include 2022-07-30 06:02:07 +10:00
Marc Durdin
b5bddc025f chore(core): rename json.hpp to jsonpp.hpp
The name json.hpp conflicts with the JSON for Modern C++ library that
is also used by Developer. Renames json.hpp and json.cpp to jsonpp.hpp
and jsonpp.cpp aka "JSON Pretty Printer".
2022-07-26 13:06:16 +10:00
Marc Durdin
767927bf16 chore(common): use /usr/bin/env bash
Fixes up scripts (except under /linux) to use `#!/usr/bin/env bash`
instead of `#!/bin/bash` or `#!/bin/sh` so that we don't end up with
the ancient version of bash supplied with macOS.

This became urgent with this PR, because of bash-4.xisms in
build-utils.sh, for example on line 572:

```
if [[ -v _builder_params[$e] ]]; then
```
2022-07-25 14:59:37 +10:00
Eberhard Beilharz
57c736f17a
fix(common): Fix delete
GCC 12 will output an error if the wrong `delete` is used.

Fixes #6930
2022-07-18 15:38:33 +02:00
Marc Durdin
4f36c3c2df chore(developer): Merge branch 'master' into chore/developer/js-to-lmc 2022-06-25 05:48:57 +10:00
Marc Durdin
7895cf2382 chore(windows): move utilicon.pas to common 2022-06-22 14:03:19 +10:00
Eberhard Beilharz
f2de89bcc2
chore(common): Merge branch 'master' into chore/common/move-common-core-desktop-to-core 2022-06-15 09:00:32 +02:00
Marc Durdin
d5aa61fdc0 chore(common): Merge branch 'chore/web/keyman-version-for-developer' into chore/common/move-common-core-desktop-to-core 2022-05-30 09:38:27 +10:00
Marc Durdin
0062afe612 chore(core): chmod +x 2022-05-18 07:22:59 +10:00
Marc Durdin
4ab3c53810 chore(common): adjust scripts for core relocation 2022-05-18 07:22:11 +10:00
Marc Durdin
a58680f89b chore(common): move common/core/desktop/ to core/ 2022-05-18 07:22:10 +10:00