From 626679036f68f888c24a842445d53638d43023bd Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 17 Oct 2023 14:40:40 -0500 Subject: [PATCH 1/5] Fixes and Tweaks for CMake Documentation --- docs/devguide/building/cmake.rst | 23 ++++++++++++++--------- docs/devguide/building/index.rst | 10 ++++++++-- docs/news.d/cmake-build.rst | 3 ++- 3 files changed, 24 insertions(+), 12 deletions(-) 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 From b41a5a3067d7b38204db454274bbca41db91fa9a Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 17 Oct 2023 16:23:05 -0500 Subject: [PATCH 2/5] Update docs/devguide/building/cmake.rst Co-authored-by: Adam Mitz --- docs/devguide/building/cmake.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/devguide/building/cmake.rst b/docs/devguide/building/cmake.rst index a9cad17995a..31e4e006724 100644 --- a/docs/devguide/building/cmake.rst +++ b/docs/devguide/building/cmake.rst @@ -737,8 +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 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. +These variables are set by the ``configure`` script in an 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 changed after that. Dependencies ^^^^^^^^^^^^ From 4e4e877302d37d59e7e134b737e4392ae7892a87 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 17 Oct 2023 17:30:59 -0500 Subject: [PATCH 3/5] More Fixes and Tweaks --- cmake/opendds_group.cmake | 2 +- docs/devguide/building/index.rst | 6 +++--- docs/news.d/cmake-build.rst | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmake/opendds_group.cmake b/cmake/opendds_group.cmake index 6db31e05b82..556c5c94f85 100644 --- a/cmake/opendds_group.cmake +++ b/cmake/opendds_group.cmake @@ -2,7 +2,7 @@ # file or http://www.opendds.org/license.html for details. # # Definitions for the OpenDDS libraries that are shared between the CMake -# config package for a MPC-built OpenDDS and a CMake-built OpenDDS. +# config package for an MPC-built OpenDDS and a CMake-built OpenDDS. if(_OPENDDS_GROUP_CMAKE) return() diff --git a/docs/devguide/building/index.rst b/docs/devguide/building/index.rst index b7bfc3d1604..c20598e36dd 100644 --- a/docs/devguide/building/index.rst +++ b/docs/devguide/building/index.rst @@ -647,10 +647,10 @@ 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 -========================= +Using a CMake-built OpenDDS +=========================== -After building and optionally installing OpenDDS, it can be used through the same :doc:`CMake package ` as a MPC-built OpenDDS. +After building and optionally installing OpenDDS, it can be used through the same :doc:`CMake package ` as an MPC-built OpenDDS. .. _cmake-running-tests: diff --git a/docs/news.d/cmake-build.rst b/docs/news.d/cmake-build.rst index 9a15c20616f..ebbe9c2f06b 100644 --- a/docs/news.d/cmake-build.rst +++ b/docs/news.d/cmake-build.rst @@ -3,8 +3,8 @@ .. news-rank: 10 - OpenDDS can now be built using CMake for most common scenarios. - - This is still considered somewhat experimental as it doesn't support :ref:`all the scenarios that a MPC-built OpenDDS currently can `. - - See :ref:`cmake-building` for how to build OpenDDS using CMake and other details. + - This is still considered somewhat experimental as it doesn't support :ref:`everything that an MPC-built OpenDDS currently can `. + - See :ref:`cmake-building` for details. .. news-rank: 0 .. news-start-section: CMake Config Package From bdbc6eb0d160d774332b88f89d03e550c2186b59 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Wed, 18 Oct 2023 12:47:11 -0500 Subject: [PATCH 4/5] Fix Typo, Add Qualifier to 2 Variables --- docs/devguide/building/cmake.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/devguide/building/cmake.rst b/docs/devguide/building/cmake.rst index 31e4e006724..0a71b63c359 100644 --- a/docs/devguide/building/cmake.rst +++ b/docs/devguide/building/cmake.rst @@ -766,7 +766,7 @@ Dependencies .. cmake:var:: OPENDDS_JAVA :nocontentsentry: - Path to :ref:`deps-gtest` + Path to :ref:`deps-java` .. cmake:var:: OPENDDS_QT :nocontentsentry: @@ -806,6 +806,7 @@ Features ACE/TAO and OpenDDS were built with C++11 or later. Default depends on the compiler being used. + Has no effect when building OpenDDS using CMake. .. cmake:var:: OPENDDS_DEBUG :nocontentsentry: @@ -824,6 +825,7 @@ Features ``.inl`` files are included in header files. Default is ``ON`` + Has no effect when building OpenDDS using CMake. .. cmake:var:: OPENDDS_VERSIONED_NAMEPSACE :nocontentsentry: From 88b9e4fa26279e28eec88b70386f90ed11174038 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Wed, 18 Oct 2023 17:05:12 -0500 Subject: [PATCH 5/5] Fix Typo in get_ace_tao.cmake --- cmake/get_ace_tao.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/get_ace_tao.cmake b/cmake/get_ace_tao.cmake index 8b79ff38dbe..c6669589c9b 100644 --- a/cmake/get_ace_tao.cmake +++ b/cmake/get_ace_tao.cmake @@ -7,7 +7,8 @@ endif() set(url_base "https://github.com/DOCGroup/ACE_TAO/releases/download/") set(ace_ver "7.1.1") set(zip_md5 "db6d014b6d5863090988204295a0f73e") -set(tbz_zmd5 "2f60399b059dfd184c8248443920b6e5") +set(tbz_md5 "2f60399b059dfd184c8248443920b6e5") + set(_OPENDDS_CONFIGURE_ACE_TAO_ARGS) set(ACE_IS_BEING_BUILT MPC CACHE INTERNAL "") set(TAO_IS_BEING_BUILT MPC CACHE INTERNAL "")