mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-12 17:07:31 +00:00
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Rebuild the API docs using api-header-extractor script, and add the script to the normal build for Core so that it doesn't get out of sync again. Hotdoc configuration has not been used for a while; it is currently broken and we haven't got any docs generated by it anyway, so remove from repo. Remove largely duplicate BUILDING.md and old json-schema.md. Test-bot: skip
109 lines
No EOL
5.4 KiB
Markdown
109 lines
No EOL
5.4 KiB
Markdown
---
|
|
title: How to build Keyman Core
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
### To build
|
|
|
|
* Python 3
|
|
* Meson build system.
|
|
* C++17 or later compiler.
|
|
|
|
### Optional
|
|
|
|
* [kmc](https://keyman.com/developer/download) (for testing)
|
|
|
|
## Installing Python3
|
|
|
|
### Linux
|
|
|
|
You will be able to install a python3 package in any reputable recent version of
|
|
linux using its package manager if it's not already installed.
|
|
|
|
### macOS
|
|
|
|
You can get the official installer from the official Python site:
|
|
[https://www.python.org/downloads/mac-osx](https://www.python.org/downloads/mac-osx/)
|
|
|
|
### Windows
|
|
|
|
You can get the official installer from the official Python site:
|
|
[https://www.python.org/downloads/windows](https://www.python.org/downloads/windows/)
|
|
|
|
## Installing Meson
|
|
|
|
Ensure you have Python3 correctly installed and can run the command `pip3`.
|
|
|
|
$> python3 -m pip install meson
|
|
|
|
## Building
|
|
|
|
In your source directory do the following:
|
|
|
|
$> cd core
|
|
$> ./build.sh configure build test
|
|
|
|
## Note on kmc
|
|
|
|
kmc is node.js-based the command-line compiler from Keyman Developer, available
|
|
from [keyman.com](https://keyman.com/developer/) or on npm at
|
|
[@keymanapp/kmc](https://npmjs.com/package/@keymanapp/kmc).
|
|
|
|
### Windows
|
|
|
|
The search path can be edited through System settings / Advanced system settings
|
|
/ Environment Variables / User environment variables.
|
|
|
|
If you have Keyman Developer installed, kmc should already be on your path.
|
|
Otherwise, add the path where you extracted the kmcomp archive.
|
|
|
|
### Linux & MacOS
|
|
|
|
Install kmc from the NPM package.
|
|
|
|
|
|
[km_core_cu]: background#km_core_cu "km_core_cu type"
|
|
[km_core_usv]: background#km_core_usv "km_core_usv type"
|
|
[km_core_virtual_key]: background#km_core_virtual_key "km_core_virtual_key type"
|
|
[km_core_status]: background#km_core_status "km_core_status type"
|
|
[km_core_modifier_state]: background#km_core_modifier_state "km_core_modifier_state type"
|
|
[km_core_keyboard]: background#km_core_keyboard "km_core_keyboard struct"
|
|
[km_core_state]: background#km_core_state "km_core_state struct"
|
|
[km_core_options]: background#km_core_options "km_core_options struct"
|
|
[km_core_status_codes]: background#km_core_status_codes "km_core_status_codes enum"
|
|
[km_core_attr]: background#km_core_attr "km_core_attr struct"
|
|
[km_core_tech_value]: background#km_core_tech_value "km_core_tech_value enum"
|
|
[km_core_get_engine_attrs]: background#km_core_get_engine_attrs "km_core_get_engine_attrs function"
|
|
[km_core_bool]: background#km_core_bool "km_core_bool enum"
|
|
[km_core_caps_state]: state#km_core_caps_state "km_core_caps_state enum"
|
|
[km_core_actions]: state#km_core_actions "km_core_actions struct"
|
|
[km_core_state_get_actions]: state#km_core_state_get_actions "km_core_state_get_actions function"
|
|
[km_core_context_status]: state#km_core_context_status "km_core_context_status enum"
|
|
[km_core_state_context_set_if_needed]: state#km_core_state_context_set_if_needed "km_core_state_context_set_if_needed function"
|
|
[km_core_state_context_clear]: state#km_core_state_context_clear "km_core_state_context_clear function"
|
|
[km_core_option_scope]: options#km_core_option_scope "km_core_option_scope enum"
|
|
[km_core_option_item]: options#km_core_option_item "km_core_option_item struct"
|
|
[km_core_options_list_size]: options#km_core_options_list_size "km_core_options_list_size function"
|
|
[km_core_state_options_update]: options#km_core_state_options_update "km_core_state_options_update function"
|
|
[km_core_keyboard_attrs]: keyboards#km_core_keyboard_attrs "km_core_keyboard_attrs struct"
|
|
[km_core_keyboard_key]: keyboards#km_core_keyboard_key "km_core_keyboard_key struct"
|
|
[km_core_keyboard_imx]: keyboards#km_core_keyboard_imx "km_core_keyboard_imx struct"
|
|
[km_core_keyboard_load_from_blob]: keyboards#km_core_keyboard_load_from_blob "km_core_keyboard_load_from_blob function"
|
|
[km_core_keyboard_dispose]: keyboards#km_core_keyboard_dispose "km_core_keyboard_dispose function"
|
|
[km_core_keyboard_get_attrs]: keyboards#km_core_keyboard_get_attrs "km_core_keyboard_get_attrs function"
|
|
[km_core_keyboard_get_key_list]: keyboards#km_core_keyboard_get_key_list "km_core_keyboard_get_key_list function"
|
|
[km_core_keyboard_key_list_dispose]: keyboards#km_core_keyboard_key_list_dispose "km_core_keyboard_key_list_dispose function"
|
|
[km_core_keyboard_imx_list_dispose]: keyboards#km_core_keyboard_imx_list_dispose "km_core_keyboard_imx_list_dispose function"
|
|
[km_core_state_imx_register_callback]: keyboards#km_core_state_imx_register_callback "km_core_state_imx_register_callback function"
|
|
[km_core_state_imx_deregister_callback]: keyboards#km_core_state_imx_deregister_callback "km_core_state_imx_deregister_callback function"
|
|
[km_core_state_create]: keyboards#km_core_state_create "km_core_state_create function"
|
|
[km_core_state_clone]: keyboards#km_core_state_clone "km_core_state_clone function"
|
|
[km_core_state_dispose]: keyboards#km_core_state_dispose "km_core_state_dispose function"
|
|
[km_core_debug_context_type]: keyboards#km_core_debug_context_type "km_core_debug_context_type enum"
|
|
[km_core_state_context_debug]: keyboards#km_core_state_context_debug "km_core_state_context_debug function"
|
|
[km_core_cu_dispose]: keyboards#km_core_cu_dispose "km_core_cu_dispose function"
|
|
[km_core_event_flags]: processor#km_core_event_flags "km_core_event_flags enum"
|
|
[km_core_process_event]: processor#km_core_process_event "km_core_process_event function"
|
|
[km_core_event]: processor#km_core_event "km_core_event function"
|
|
[km_core_event_code]: processor#km_core_event_code "km_core_event_code enum" |