RDMnet
0.3.0
Implementation of ANSI E1.33 (RDMnet)
|
View other versions:
|
RDMnet depends on two other ETC libraries, RDM and EtcPal. By default, these libraries are included in source form as git submodules in the RDMnet repository. CMake will automatically pull the submodules when building, so no other action is needed to build RDMnet in the default configuration.
If you are using other libraries that have these dependencies (like ETC's sACN library, which also depends on EtcPal, for example), you can make sure they are using the same version of the dependencies by cloning all of the libraries and dependencies at the same directory level, e.g.:
The CMake configurations for these libraries will automatically check for their dependencies at this level before using submodules. You can disable this behavior by defining the CMake option RDMNET_FORCE_SUBMODULE_DEPS
to ON.
When adding RDMnet to your project, you can choose whether to use RDMnet in binary or source form. RDMnet publishes a small set of built binaries for specific platforms and toolchains to JFrog Bintray.
RDMnet binary packages come with exported CMake config files which allow them to be added using find_package()
. Once the binary package has been downloaded, you can include it in your project by adding:
To include RDMnet as a source dependency from a CMake project, use the add_subdirectory()
command, specifying the root of the RDMnet repository, and use target_link_libraries()
to add the relevant RDMnet include paths and binaries to your project settings.
RDMnet can be built on its own using CMake and its headers and binaries can be installed for inclusion in a non-CMake project. Typical practice is to create a clean directory to hold the build results named some varion of "build".
NOTE: If you are cross-compiling and/or building for an embedded target, some additional configuration is necessary. EtcPal helps make this possible; see the EtcPal embedded build documentation for more details.
-G
option; otherwise, CMake will choose a system-appropriate default. Use cmake --help
to see all available options. CMake also has a GUI tool that can be used for this, as well as plugins available for several editors and IDEs. CMAKE_INSTALL_PREFIX
specifies where the final binaries and headers will go; if not given, they will be installed in a system-appropriate place like /usr/local/include
and /usr/local/lib
on a *nix system.make install
for a Makefile generator). You can also do it manually from the command line in the build directory: If you want to build the RDMnet library on its own, in order to tweak the examples or contribute changes, follow the instructions for "Including RDMnet in non-CMake projects" above. Additionally, you can set some CMake options to build extras like the unit tests and examples:
RDMNET_BUILD_TESTS
: Build the unit testsRDMNET_BUILD_CONSOLE_EXAMPLES
: Build the console example applicationsRDMNET_BUILD_GUI_EXAMPLES
: Build the controller GUI exampleRDMNET_BUILD_TEST_TOOLS
: Build the library test toolsThese can be specified using the CMake GUI tool or at the command line using -D
:
If you want to build the GUI example applications, you will need another prerequisite: Qt (>=5.9.7 open-source). Qt installers are available here. To point CMake at the Qt dependency, there are two options: