diff --git a/docs/devguide/building/cmake.rst b/docs/devguide/building/cmake.rst index 1d2b7f2ab62..a9cad17995a 100644 --- a/docs/devguide/building/cmake.rst +++ b/docs/devguide/building/cmake.rst @@ -2,6 +2,10 @@ Using OpenDDS in a CMake Project ################################ +.. seealso:: + + :ref:`cmake-building` + OpenDDS can be used with `CMake `__\-based projects by using the :ghfile:`OpenDDS CMake config package `. This package bridges the gap between the MPC build system used by OpenDDS and CMake-based projects by providing :ref:`imported library targets ` and the ability to add IDL to a target using :cmake:func:`opendds_target_sources`. @@ -733,7 +737,8 @@ These variables can be used to override default behavior of the CMake package. Config Variables ----------------- -These variables are set by the configure script and normally shouldn't be changed. +These variables are set by the ``configure`` script in a MPC-built OpenDDS and normally shouldn't be changed. +They can be changed when configuring a :ref:`CMake-built OpenDDS ` using ``-D``, but should not be chagned after that. Dependencies ^^^^^^^^^^^^ @@ -741,42 +746,42 @@ Dependencies .. cmake:var:: OPENDDS_ACE :nocontentsentry: - Path to ACE, usually :envvar:`ACE_ROOT` + Path to :ref:`deps-ace`, usually :envvar:`ACE_ROOT` .. cmake:var:: OPENDDS_TAO :nocontentsentry: - Path to TAO, usually :envvar:`TAO_ROOT` + Path to :ref:`deps-tao`, usually :envvar:`TAO_ROOT` .. cmake:var:: OPENDDS_OPENSSL :nocontentsentry: - Path to OpenSSL + Path to :ref:`deps-openssl` .. cmake:var:: OPENDDS_GTEST :nocontentsentry: - Path to Google Test + Path to :ref:`deps-gtest` .. cmake:var:: OPENDDS_JAVA :nocontentsentry: - Path to Java + Path to :ref:`deps-gtest` .. cmake:var:: OPENDDS_QT :nocontentsentry: - Path to QT + Path to :ref:`deps-qt` .. cmake:var:: OPENDDS_RAPIDJSON :nocontentsentry: - Path to RapidJSON + Path to :ref:`deps-rapidjson` .. cmake:var:: OPENDDS_XERCES3 :nocontentsentry: - Path to Xerces + Path to :ref:`deps-xerces` .. cmake:var:: OPENDDS_HOST_TOOLS diff --git a/docs/devguide/building/index.rst b/docs/devguide/building/index.rst index cf64f93e166..b7bfc3d1604 100644 --- a/docs/devguide/building/index.rst +++ b/docs/devguide/building/index.rst @@ -574,7 +574,8 @@ These are the variables that are exclusive to building OpenDDS with CMake: .. cmake:var:: OPENDDS_JUST_BUILD_HOST_TOOLS - If true, just builds ``opendds_idl``. + If true, ``opendds_idl`` is the only thing built for OpenDDS. + If ACE/TAO is also being built, then ``ace_gperf``, ``tao_idl``, and their dependencies are also built. The build directory for this can be passed to :cmake:var:`OPENDDS_HOST_TOOLS`. .. cmake:var:: OPENDDS_ACE_TAO_SRC @@ -646,6 +647,11 @@ Installation Once built, OpenDDS can be installed using `cmake --install `__. Currently ACE/TAO has to be installed separately and this is only possible with GNU Make. +Using CMake-built OpenDDS +========================= + +After building and optionally installing OpenDDS, it can be used through the same :doc:`CMake package ` as a MPC-built OpenDDS. + .. _cmake-running-tests: Running Tests @@ -663,7 +669,7 @@ Known Limitations - ACE/TAO can't be automatically built unless there is explicit support for the platform. Currently this only exists for Windows, Linux, macOS, and Android. - All other platforms will require configuring and building ACE/TAO separately :cmake:var:`OPENDDS_ACE` + All other platforms will require configuring and building ACE/TAO separately and passing the path using :cmake:var:`OPENDDS_ACE`. - See https://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html for how to manually build ACE/TAO. diff --git a/docs/news.d/cmake-build.rst b/docs/news.d/cmake-build.rst index f70481de1fd..9a15c20616f 100644 --- a/docs/news.d/cmake-build.rst +++ b/docs/news.d/cmake-build.rst @@ -1,4 +1,4 @@ -.. news-prs: 4203 +.. news-prs: 4203 4214 .. news-start-section: Additions .. news-rank: 10 - OpenDDS can now be built using CMake for most common scenarios. @@ -9,6 +9,7 @@ .. news-rank: 0 .. news-start-section: CMake Config Package - Added :cmake:func:`opendds_install_interface_files` to help install IDL files and the files generated from them. +- Added :cmake:var:`OPENDDS_HOST_TOOLS` and :cmake:var:`OPENDDS_ACE_TAO_HOST_TOOLS` to allow cross compiling applications with both MPC and CMake-built OpenDDS. .. news-rank: 0 .. news-start-section: :cmake:func:`opendds_target_sources`: .. news-rank: 10