The font collection code was somewhat wrong in kmc-keyboard-info. It collected all fonts referenced in the package, even for multi-keyboard packages, which meant that the .keyboard_info file listed all fonts for all languages. Furthermore, if a font was referenced in multiple language entries in the .kps, then it would be repeated for each language in the .keyboard_info. This patch addresses both of these bugs. The good news is that this makes some of the .keyboard_info files smaller. In particular, fv_all.keyboard_info goes from 4675 lines down to 695 lines! Fixes: #12852 Cherry-pick-of: #12909 |
||
|---|---|---|
| .. | ||
| common | ||
| ext | ||
| images | ||
| inst | ||
| kmanalyze | ||
| kmc | ||
| kmc-analyze | ||
| kmc-keyboard-info | ||
| kmc-kmn | ||
| kmc-ldml | ||
| kmc-model | ||
| kmc-model-info | ||
| kmc-package | ||
| kmcmplib | ||
| kmconvert | ||
| kmdecomp | ||
| samples | ||
| server | ||
| setup | ||
| test | ||
| tike | ||
| tools | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| Defines.mak | ||
| developer.groupproj | ||
| developer.sln | ||
| Header.mak | ||
| history.md | ||
| Makefile | ||
| README.md | ||
| Target.mak | ||
Keyman Developer
This is the current home for Keyman Developer.
Cross-dependencies
We do not have 100% clean separation between Keyman Developer and Keyman for Windows. Shared units are intended to live in common, however the following projects will need to be updated in the future.
- kmbrowserhost in Windows is included as part of Keyman Developer.
Folders
src/common
Units shared among Keyman Developer projects, Delphi
src/ext
3rd party code and components, mostly Delphi
src/inst - keymandeveloper.msi
Building and signing of the installation archive keymandeveloper.msi.
src/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.
src/kmanalyze - kmanalyze.exe
A keyboard source analysis and automated regression test tool. Testing for logical errors of a keyboard.
src/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.
src/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.
src/kmc
node-based next generation compiler, hosts kmc, (and legacy kmlmc, kmlmp)
src/kmc-analyze - Analysis tools
File analysis tools for Keyman files.
src/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.
src/kmc-kmn - Keyboard Compiler
Builds .kmx files from .kmn. Command line access through kmc.
src/kmc-ldml - LDML Keyboard Compiler
Next Generation keyboard compiler - LDML keyboards. Command line access through kmc.
src/kmc-model - Lexical Model Compiler
The Lexical Model Compiler, runs on nodeJS on all supported desktop platforms. Command line access through kmc.
src/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.
src/kmc-package - Package Compiler
Compiles .kps packages into .kmp files. Works with both lexical model packages and keyboard packages. Command line access through kmc.
src/samples
Contains sample keyboards and sample developer projects. See readme.txt for details.
src/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.
src/setup - setup.exe
Installation program for Keyman Developer for Windows. Bundles with keymandeveloper.msi to generate single deployable installer executable.
src/tike - "Tavultesoft Integrated Keyboard Editor"
This is the designer side of the Developer. Used for designing, developing, testing and packing keyboards for distribution.
src/tools
Various build-time tools for Keyman Developer.