Keyboard Support

Contact and Search Homepage

Header bottom

On this page

KMComp Command-line Compiler

KMComp is the command-line compiler included in Keyman Developer. It is located in %ProgramFiles(x86)%\Tavultesoft\Keyman Developer 9.0.

The following parameters are available:

Compiler mode

kmcomp [-s[s]] [-nologo] [-c] [-d] [-w] [-e [installer.msi [-u]]] 
       [-l username password] [-p RuntimeSourcePath] infile [-t target] 
       [outfile.kmx|outfile.js [error.log]]

General compiler parameters

A .kmn file (Keyboard Source), .kps file (Package Source), or .kpj (project). Required in compiler mode. If a .kpj is specified, the .kpj will determine output paths and all files referenced in the project will be built (see -t).
Generate an output file for Windows/Mac OS X; can only be specified for a .kmn infile. Optional; if omitted, generates an output file with the same base name as the input file.
Generate an output file for KeymanWeb/touch devices; can only be specified for a .kmn infile. Optional; if omitted for a .kmn input, no JavaScript keyboard will be built.
Write output to a text file specified by error.log instead of stdout.
Mostly silent; don't print information-level messages
Fully silent; don't print anything except fatal internal errors
Don't print the compiler description and registration
Clean target(s) instead of building (only for .kpj)
Include debug information
Treat warnings as errors
-t target
Build only the target file from the project (only for .kpj)

Branding Pack parameters

-l username password
Login and password override for compiling product installers
-p RuntimeSourcePath
Set Keyman runtime source path to RuntimeSourcePath
-e [installer.msi]
Create a .exe installer for a package as well, using installer.msi if specified
update .kps to refer to latest version of installer.msi

Encryption mode

Encryption mode is used with the Branding Pack to prepare files for distribution.

kmcomp -x filetoencrypt [product.pxx]

Encryption parameters

Name of the .kmx or .kct file to encrypt. If .kmx, then product.pxx must also be specified.
Name of product to encrypt a .kmx file for.