Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

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

infile
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).
outfile.kmx
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.
outfile.js
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.
error.log
Write output to a text file specified by error.log instead of stdout.
-s
Mostly silent; don't print information-level messages
-ss
Fully silent; don't print anything except fatal internal errors
-nologo
Don't print the compiler description and registration
-c
Clean target(s) instead of building (only for .kpj)
-d
Include debug information
-w
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
-u
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

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