lcm-gen

lcm-gen(1)      Lightweight Communications and Marshalling (LCM)      lcm-gen(1)



NAME
       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)


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


AUTHOR
       This manual page was written by Albert Huang.



LCM                                2007-12-13                         lcm-gen(1)