lcm-gen man page

lcm-gen — code generation tool.

Synopsis

lcm-gen [options] FILE...

Description

lcm-gen is the Lightweight Communications and Marshalling code generation utility. It takes as input one or more .lcm files containing LCM message type definitions, and generates language-specific bindings for marshalling and unmarshalling messages of the specified types.

Currently, lcm-gen is capable of generating language bindings for C, C++, Java, Python, Lua, and C#.

General Options

-h
Prints some help text and exits.
-t, --tokenize
Show tokenization.
-d, --debug
Show parsed files.
--lazy
Generate output file only if .lcm is newer than output file (or if output file does not already exist).
--package-prefix PFX
Add package name PFX as a prefix to the declared package.
--version
Shows version information and exits.

C Options

-c, --c
Emit C code.
--c-cpath DIR
Destination directory for generated .c files. (default: current directory)
--c-hpath DIR
Destination directory for generated .h files. (default: current directory)
--cinclude DIR
Generated #include lines reference this directory
--c-no-pubsub DIR
Do not generate _publish and _subscribe functions. This results in .c and .h files that have no linking dependencies and can be used for just marshalling, separately from liblcm. They still #include <lcm/lcm_coretypes.h>, so you will need to copy that file to the appropriate include path.
--c-typeinfo
Generate typeinfo functions for each type (experimental).

C++ Options

-x, --cpp
Emit C++ code.
--cpp-hpath DIR
Destination directory for generated .hpp files. (default: current directory)
--cpp-include DIR
Generated C++ #include lines reference this directory
--cpp-std STD
Generated files comply with the specified C++ standard. Supported values are: c++98, c++11. Default is c++98.

Java Options

-j, --java
Emit Java code.
--jpath DIR
Destination base directory for generated Java files. (default: current directory)
--jmkdir <true|false>
Automatically create Java source directories (default: true)
--jdecl STR
String added to class declarations (default: implements lcm.lcm.LCMEncodable)
--jdefaultpkg PKG
Default Java package if LCM type has no package (default: lcmtypes)

Python Options

-p, --python
Emit Python code.
--ppath DIR
Destination base directory for generated Python files. (default: current directory)

Lua Options

-l, --lua
Emit Lua code.
--lpath DIR
Lua destination directory.

C#.Net Options

--csharp
Emit C#.NET code
--csharp-path DIR
C#.NET destination directory
--csharp-mkdir <true|false>
Make C#.NET source directories automatically (default: true)
--csharp-strip-dirs <true|false>
Do not generate folders for default and root namespace (default: false)
--csharp-decl STR
String added to class declarations (default: " : LCM.LCM.LCMEncodable")
--csharp-root-nsp NSP
Root C#.NET namespace (wrapper) added before LCM package (default: "")
--csharp-default-nsp NSP
Default C#.NET namespace if LCM type has no package (default: LCMTypes)

Author

This manual page was written by Albert Huang.

Referenced By

lcm-spy(1).

2007-12-13 LCM Lightweight Communications and Marshalling (LCM)