spiegel-keyman/developer/src/README.md
Marc Durdin 933ea5bb58 change(developer): remove kmlmc and kmlmp
These were replaced by kmc in v17.0. We kept them as legacy alternatives
in v18.0, but it is time to remove them now to reduce the maintenance of
having multiple entry points to kmc.

Fixes: #13181
Test-bot: skip
2025-10-31 17:08:56 +01:00

155 lines
4.6 KiB
Markdown

# Keyman Developer
This is the current home for Keyman Developer.
## Build Prerequisites
* See [Windows Build Environment Configuration](../../docs/build/windows.md).
## Building Keyman Developer
1. Start 'Git Bash' (part of Git for Windows).
2. Run `developer/src/build.sh`.
3. Artifacts from a successful build will be placed in **developer/bin** folder.
*Note*: running `build.sh` will currently reset the packages and path settings
in your Delphi environment. If you use Delphi for other projects, you should
consider building Keyman under a login user dedicated to it, or in a VM.
Type `build.sh` to see build targets and actions. Common build actions are:
* `build.sh build`
: builds Keyman Developer
* `build.sh clean`
: remove temporary files and build artifacts
* `build.sh publish`
: makes a release of all Keyman Developer projects
* `build.sh install`
: install some or all components to Program Files (requires elevated command prompt).
### Building without Delphi
It is possible to build all components that do _not_ require Delphi. Currently a
few components are Delphi-based (TIKE, setup, a few others), but you may be able
to get away without building them. In this situation, we recommend copying the
relevant Delphi-built components into developer/bin folders from a compatible
installed version of Keyman Developer for testing and debugging purposes.
# Folders
## common
Units shared among Keyman Developer projects, Delphi
## ext
3rd party code and components, mostly Delphi
## inst - keymandeveloper.msi
Building and signing of the installation archive keymandeveloper.msi.
### inst/node
Contains a minimal distribution of node.js intended just for running kmc. If
more dependencies are required, then the developer will be expected to install
node.js themselves; this gets users going without requiring a large installer or
a full node.js install.
## kmanalyze - kmanalyze.exe
A keyboard source analysis and automated regression test tool. Testing for
logical errors of a keyboard.
## kmconvert - kmconvert.exe & kmconvert.x64.exe
KMConvert converts keyboard layouts between different formats. KMConvert will
generate a full Keyman template project from the imported layout or data, in a
new folder named with the ID of the keyboard. It will not overwrite an existing
folder. Also used to generate new projects from templates.
## kmdecomp - kmdecomp.exe
Unsupported utility decompiles a Keyman .kmx keyboard. It will produce a .kmn
source file and optionally a .ico or .bmp image. see kmdecomp/kmdecomp.md for
details.
## kmdbrowserhost - kmdbrowserhost.exe
Hosts Chromium components for Keyman Developer; similar to kmbrowserhost.exe
in Keyman for Windows.
## kmc
node-based next generation compiler, hosts kmc
### kmc-analyze - Analysis tools
File analysis tools for Keyman files.
### kmc-copy - Project copying and renaming tools
Tools to copy and rename Keyman keyboard files and projects
### kmc-generate - Generation tools
Project generation tools for Keyman.
### kmc-keyboard-info - Keyboard Info Compiler
Builds .keyboard_info files for use on the Keyman Cloud keyboard repository
at https://github.com/keymanapp/keyboards. Command line access through kmc.
### kmc-kmn - Keyboard Compiler
Builds .kmx files from .kmn. Command line access through kmc.
### kmc-ldml - LDML Keyboard Compiler
Next Generation keyboard compiler - LDML keyboards. Command line access through
kmc.
### kmc-model - Lexical Model Compiler
The Lexical Model Compiler, runs on nodeJS on all supported desktop platforms.
Command line access through kmc.
### kmc-model-info - Model Info Compiler
Builds .model_info files for use on the Keyman Cloud lexical model repository at
https://github.com/keymanapp/lexical-models. Command line access through kmc.
### kmc-package - Package Compiler
Compiles .kps packages into .kmp files. Works with both lexical model packages
and keyboard packages. Command line access through kmc.
## samples
Contains sample keyboards and sample developer projects. See readme.txt for
details.
## server
Keyman Developer Server. Node-based, cross platform host app for Keyman
Developer. Used currently for web-based test and deployment. In future, will
be the foundation for a web-based Keyman Developer project.
## setup - setup.exe
Installation program for Keyman Developer for Windows. Bundles with
keymandeveloper.msi to generate single deployable installer executable.
## tike - "Tavultesoft Integrated Keyboard Editor"
This is the designer side of the Developer. Used for designing, developing,
testing and packing keyboards for distribution.
## tools
Various build-time tools for Keyman Developer.