spiegel-keyman/developer/src/README.md
2024-10-22 10:28:00 +07: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, (and legacy kmlmc, kmlmp)
### 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.