spiegel-keyman/developer/src
Marc Durdin 00b98f2286 fix(windows): emit nunit report path correctly and update TeamCity links
* Windows and Developer sources
* Fixes the report path to be fully qualified
* Adds the TeamCity report logger to remaining DUnitX automated tests

Fixes: #14197
Build-bot: skip build:windows,developer
Test-bot: skip
2025-08-20 07:21:03 +02:00
..
common maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
ext maint(common): fixup jedi build.sh builder-basic.inc.sh include 2025-08-02 14:01:53 +10:00
images fix(developer): remove ancient samples 2022-11-01 17:04:38 +11:00
inst maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
kmanalyze maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
kmc maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-analyze maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-copy maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-generate maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-keyboard-info maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-kmn maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-ldml maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-model maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-model-info maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmc-package maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmcmplib maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
kmconvert fix(windows): emit nunit report path correctly and update TeamCity links 2025-08-20 07:21:03 +02:00
kmdbrowserhost maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
kmdecomp maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
samples maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
server maint(common): rename and move node-related script functions into node.inc.sh 2025-08-02 13:34:29 +10:00
setup maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
test fix(windows): emit nunit report path correctly and update TeamCity links 2025-08-20 07:21:03 +02:00
tike maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
tools maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
.build-builder chore(developer): start building Developer on linux,mac 2024-08-07 10:49:55 +07:00
.eslintrc.cjs chore(developer): add eslint devDependency for kmc 2023-04-25 13:44:56 +07:00
.gitignore refactor(common): merge master into branch 2024-08-01 07:07:07 +07:00
build.sh maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh 2025-08-05 12:54:56 +10:00
developer.groupproj feat(developer): remove kmcomp 2023-09-09 17:47:15 +02:00
developer.sln feat(developer): remove kmcmpdll 2023-09-02 12:25:29 +04:00
history.md chore(developer): move source files to /developer/src 2022-05-18 10:34:48 +10:00
packages.inc.sh refactor: move langtags to @keymanapp/langtags npm module 2025-01-27 09:59:38 +07:00
README.md feat(developer): seed kmc-copy 2024-10-22 10:28:00 +07:00

Keyman Developer

This is the current home for Keyman Developer.

Build Prerequisites

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.