Before opening a PR, please ensure CI passes all jobs. Also, please check to see if any of the below sections apply to you.
LCM uses the GNU LESSER GENERAL PUBLIC LICENSE. The full text may be found in the COPYING file.
C and C++ code should be formatted using:
./format_code.shThis script is hard-coded to use a specific version of clang-format in order to ensure consistency. If you do not have that version available via your system package manager, consider using docker.
Configure with cmake .. -DCMAKE_BUILD_TYPE=Debug or cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
to configure a build with debug symbols.
Modifying lcm-gen does not rebuild the tests. #490. The following is a workaround:
cd build
rm -r test && make -j
make testCode in the directory lcmgen leaks memory. It is not an uncommon practice to allow this for short
lived CLI tools. It is preferred to avoid and clean up after this practice though.
#484.
lcm.jar, lcm-spy, and lcm-logplayer-gui are built with Cmake. There is not a Ant/Maven/Gradle
project. To edit the code, use your IDE of choice to create a project in the lcm-java folder.
lcm-java/lcm should be the top level package (lcm.lcm.LCM is the fully qualified name for the
LCM class).
To get the best results from Visual Studio Code, it may be necessary to first create an Eclipse project by using Eclipse.
If you modify the help message on any of the following executables:
lcm-logplayer-guilcm-spylcm-loggerlcm-logplayerlcm-gen
then the corresponding manual file should also be updated. Please consider using a version of help2man that matches the one the man pages were previously generated with to minimize unnecessary diffs. To regenerate the manual pages, run:
docs/generate_man_pages.shThat script makes multiple assumptions about the environment it is run in. Please see its docstrings for more information.
Docs are not built by the default CMake build make command. make doc will build the Sphinx site and run language specific API tools (Javadoc, Doxygen). To build only the Sphinx site, run cd ./docs; make clean html (Not ./build/docs). "clean" is important for every rebuild. You can preview the docs by running (recommended from a new terminal) cd ./docs/_build/html; python3 -m http.server 5000 (where 5000 is a stand-in for your port of choice).