LCM-GEN(1)

NAME
lcm-gen - a tool for generating serialization code

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#.

-h | --help
    [ true ] Show this help

-t | --tokenize
    [ false ] Show tokenization

-d | --debug
    [ false ] Show parsed file

--lazy
    [ false ] Generate output file only if .lcm is newer

--use-quotes-for-includes
    [ false ] Use quotes instead of angular brackets for including header files

--package-prefix
    [ ] Add this package name as a prefix to the declared package

--version
    [ false ] Show version information and exit

C OPTIONS

-c | --c
    [ false ] Emit C code

--c-cpath
    [ . ] Location for .c files

--c-hpath
    [ . ] Location for .h files

--c-export-include
    [ ] #include that provides the export symbol

--c-export-symbol
    [ ] ABI export decoration symbol

--cinclude
    [ ] Generated #include lines reference this folder

--c-no-pubsub
    [ false ] Do not generate _publish and _subscribe functions

--c-typeinfo
    [ false ] Generate typeinfo functions for each type

C++ OPTIONS

-x | --cpp
    [ false ] Emit C++ code

--cpp-std
    [ c++98 ] C++ standard(c++98, c++11)

--cpp-hpath
    [ . ] Location for .hpp files

--cpp-include
    [ ] Generated #include lines reference this folder

Java OPTIONS

-j | --java
    [ false ] Emit Java code

--jpath
    [ ] Java file destination directory

--jmkdir
    [ true ] Make java source directories automatically

--jdecl
    [ implements lcm.lcm.LCMEncodable ] String added to class declarations

--jdefaultpkg
    [ lcmtypes ] Default Java package if LCM type has no package

Python OPTIONS

-p | --python
    [ false ] Emit Python code

--ppath
    [ ] Python destination directory

--python-no-init
    [ false ] Do not create __init__.py

Lua OPTIONS

-l | --lua
    [ false ] Emit Lua code

--lpath
    [ ] Lua destination directory

--lua-no-init
    [ false ] Do not create init.lua

C#.NET OPTIONS

--csharp
    [ false ] Emit C#.NET code

--csharp-path
    [ ] C#.NET file destination directory

--csharp-mkdir
    [ true ] Make C#.NET source directories automatically

--csharp-strip-dirs
    [ false ] Do not generate folders for default and root namespace

--csharp-decl
    [ : LCM.LCM.LCMEncodable ] String added to class declarations

--csharp-root-nsp
    [ ] Root C#.NET namespace (wrapper) added before LCM package

--csharp-default-nsp
    [ LCMTypes ] Default C#.NET namespace if LCM type has no package

Go OPTIONS

-g | --go
    [ false ] Emit Go code

--go-path
    [ . ] Location for .go files

--go-mkdir
    [ true ] Create parent directories as needed

--go-tag-name
    [ ] Give the struct member tag the a name (e.g. json for `json:"tag"`)

--go-strip-dirs
    [ false ] Do not generate directories for Go packages

--go-fingerprint
    [ false ] Add fingerprint as suffix to filenames and types, fingerprint is pre-calculate to const

--go-no-overwrite
    [ false ] Do not overwrite an existing target file, skip and log

--go-emit-gopacket
    [ false ] Emit gopacket API

--go-import-prefix
    [ ] Add this package prefix to all LCM type import statements

--go-default-package
    [ lcmtypes ] Default Go package if LCM type has no package

COPYRIGHT
lcm-gen is part of the Lightweight Communications and Marshalling (LCM) project. Permission is granted to copy, distribute and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. See the file COPYING in the LCM distribution for more details regarding distribution. LCM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with LCM; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA