Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into igtd/create-sample
Browse files Browse the repository at this point in the history
  • Loading branch information
iguessthislldo committed Jun 10, 2024
2 parents 4ca0ed2 + 607413e commit f2581f4
Show file tree
Hide file tree
Showing 227 changed files with 4,735 additions and 2,348 deletions.
122 changes: 58 additions & 64 deletions .github/workflows/build_and_test.yml

Large diffs are not rendered by default.

28 changes: 15 additions & 13 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ jobs:
path: OpenDDS/build/ACE_TAO
- name: Install xerces
run: sudo apt-get -y install libxerces-c-dev
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "3.23"
ninjaVersion: "latest"
- name: Configure
run: |
cd OpenDDS
Expand Down Expand Up @@ -168,8 +172,10 @@ jobs:
with:
repository: DOCGroup/ACE_TAO
path: OpenDDS/build/ACE_TAO
- name: Install Ninja
run: sudo apt-get -y install ninja-build
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "latest"
ninjaVersion: "latest"
- name: Configure
run: |
cd OpenDDS
Expand Down Expand Up @@ -213,18 +219,10 @@ jobs:
with:
ndk-version: r25c
add-to-path: false
- name: Checkout MPC
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: MPC
- name: Checkout ACE/TAO
uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
with:
repository: DOCGroup/ACE_TAO
path: OpenDDS/build/ACE_TAO
- name: Install Ninja
run: sudo apt-get -y install ninja-build
cmakeVersion: "3.24"
ninjaVersion: "latest"
- name: Configure Host Tools
run: |
cd OpenDDS
Expand Down Expand Up @@ -325,6 +323,10 @@ jobs:
with:
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "3.23"
ninjaVersion: "latest"
- name: Checkout OpenDDS
uses: actions/checkout@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
submodules: true

- name: Log in to the Container registry
uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand Down
14 changes: 7 additions & 7 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
# what's printed by:
# git shortlog --summary --numbered --email

Justin Wilson <wilsonj@unityfoundation.io> <[email protected]>
Justin Wilson <wilsonj@unityfoundation.io> Justin R. Wilson
Justin Wilson <wilsonj@unityfoundation.io> <wilsonj@objectcomputing.com>
Justin Wilson <wilsonj@objectcomputing.com> <[email protected]>
Justin Wilson <wilsonj@objectcomputing.com> Justin R. Wilson
Justin Wilson <wilsonj@objectcomputing.com> <wilsonj@unityfoundation.io>

Jeff Schmitz <[email protected]> <[email protected]>
Jeff Schmitz <[email protected]> iamtheschmitzer <[email protected]>
Expand All @@ -21,10 +21,10 @@ Paul Calabrese <[email protected]> <[email protected]>

Huang-Ming Huang <[email protected]> <[email protected]>

Fred Hornsey <hornseyf@unityfoundation.io> <[email protected]>
Fred Hornsey <hornseyf@unityfoundation.io> Frederick Hornsey
Fred Hornsey <hornseyf@unityfoundation.io> <hornseyf@objectcomputing.com>
Fred Hornsey <hornseyf@unityfoundation.io> iguessthislldo <[email protected]>
Fred Hornsey <hornseyf@objectcomputing.com> <[email protected]>
Fred Hornsey <hornseyf@objectcomputing.com> Frederick Hornsey
Fred Hornsey <hornseyf@objectcomputing.com> <hornseyf@unityfoundation.io>
Fred Hornsey <hornseyf@objectcomputing.com> iguessthislldo <[email protected]>

Doug Lewis <[email protected]> unknown <[email protected]>

Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ endif()
set(OPENDDS_CONFIG_AUTO_STATIC_INCLUDES 1) # Always true for CMake builds
set(config_file "dds/OpenDDSConfig.h")
set(config_out_dir "${CMAKE_CURRENT_BINARY_DIR}/opendds_config_include")
set(OPENDDS_CONFIG_INCLUDE_DIR "${config_out_dir}" CACHE INTERNAL "")
set(config_out_file "${config_out_dir}/${config_file}")
configure_file("${config_file}.in" "${config_out_file}")
add_library(OpenDDS_Config INTERFACE)
Expand Down Expand Up @@ -136,6 +137,7 @@ install(
cmake/opendds_version.cmake
cmake/tao_group.cmake
cmake/tao_idl_sources.cmake
cmake/test_cxx_std.cpp
"${config_cmake}"
DESTINATION "${cmake_dest}"
)
Expand Down
5 changes: 5 additions & 0 deletions MPC/config/dcps_optional_features.mpb
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,10 @@ feature (!no_opendds_security) : taoidldefaults, dcps_ts_defaults {
dcps_ts_flags += -DOPENDDS_SECURITY
}

feature (!openddsconfig_h_file) : taoidldefaults, dcps_ts_defaults {
idlflags += -DOPENDDS_IGNORE_OPENDDSCONFIG_H_FILE
dcps_ts_flags += -DOPENDDS_IGNORE_OPENDDSCONFIG_H_FILE
}

project: dcps_optional_bidir_giop {
}
34 changes: 34 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# OpenDDS Releases

## Version 3.28.1 of OpenDDS

Released 2024-05-02

Download [this release on GitHub](https://github.com/OpenDDS/OpenDDS/releases/tag/DDS-3.28.1).

Read [the documentation for this release on Read the Docs](https://opendds.readthedocs.io/en/dds-3.28.1).

### Additions

- Added [`OPENDDS_COMPILE_WARNINGS`](https://opendds.readthedocs.io/en/dds-3.28.1/devguide/building/index.html#cmake-var-OPENDDS_COMPILE_WARNINGS) and `configure` option `--compile-warnings=[WARNING|ERROR]` to enable additional compiler warnings and treating them as errors. ([PR #4558](https://github.com/OpenDDS/OpenDDS/pull/4558))
- Add a `configure` script option for MPC options requiring a value. ([PR #4574](https://github.com/OpenDDS/OpenDDS/pull/4574))
- For example, `./configure --mpc:value_template build_flags+="-Wall -Werror"`.

### Platform Support and Dependencies

- Building with CMake
- Fixed CMake saying it's missing the ACE library when using [`OPENDDS_ACE_TAO_SRC`](https://opendds.readthedocs.io/en/dds-3.28.1/devguide/building/index.html#cmake-var-OPENDDS_ACE_TAO_SRC) with an ACE/TAO outside of the build directory. ([PR #4604](https://github.com/OpenDDS/OpenDDS/pull/4604))

### Removals

- Values passed to the configure script via `--mpcopts` are no longer split on spaces. ([PR #4574](https://github.com/OpenDDS/OpenDDS/pull/4574))
- For example, `./configure --mpcopts="-value_template build_flags+=-Wall -Werror"` must now be written as `./configure --mpcopts=-value_template --mpcopts="build_flags+=-Wall -Werror"`.

### Fixes

- Fixed incorrect usage of OpenSSL in `gov_gen` application. ([PR #4591](https://github.com/OpenDDS/OpenDDS/pull/4591))
- Fix bug where `Service_Participant::type_object_encoding` doesn't return configured value. ([PR #4593](https://github.com/OpenDDS/OpenDDS/pull/4593))
- Do not send heartbeats during a fragmented send in `rtps_udp`. ([PR #4603](https://github.com/OpenDDS/OpenDDS/pull/4603))

### Documentation

- Added [`[transport] send_buffer_size (rtps_udp)`](https://opendds.readthedocs.io/en/dds-3.28.1/devguide/run_time_configuration.html#cfg-prop-transport-rtps_udp-send_buffer_size) and [`[transport] rcv_buffer_size (rtps_udp)`](https://opendds.readthedocs.io/en/dds-3.28.1/devguide/run_time_configuration.html#cfg-prop-transport-rtps_udp-rcv_buffer_size). ([PR #4602](https://github.com/OpenDDS/OpenDDS/pull/4602))

## Version 3.28.0 of OpenDDS

Released 2024-04-16
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ If you wish to file a bug report:
4. Add a launcher script `run_test.pl`. Be sure to document the options. See `tests/DCPS/HelloWorld/run_test.pl` for inspiration.
5. Add a `README.rst` file that gives a high-level overview of the example and the problem that it illustrates.

It should be possible to build and run the example using `run_test.pl` as in the quickstarts for [Windows](https://opendds.org/quickstart/GettingStartedWindows.html) and [Linux](https://opendds.org/quickstart/GettingStartedLinux.html).
It should be possible to build and run the example using `run_test.pl` as in the quickstarts for [Windows](https://opendds.readthedocs.io/en/latest-release/devguide/quickstart/windows.html) and [Linux](https://opendds.readthedocs.io/en/latest-release/devguide/quickstart/linux.html).
If the problem lies in the example, then GitHub's Pull Request interface will allow people to discuss, comment on, and propose changes to get the example working.
If the problem lies in OpenDDS, then the example is a new test case.

Expand All @@ -83,7 +83,7 @@ formal/2019-04-03 (version 2.3)](https://www.omg.org/spec/DDSI-RTPS/2.3). See
the OpenDDS Developer's Guide and the file [docs/design/RTPS](docs/design/RTPS)
for more details on RTPS.

See the [Developer's Guide](https://opendds.readthedocs.io/en/latest-release/devguide/building/introduction.html) for
See the [Developer's Guide](https://opendds.readthedocs.io/en/latest-release/devguide/introduction.html#specifications) for
information on OpenDDS compliance with the DDS specification. If you would like
to contribute a feature or sponsor the developers to add a feature please see
the Support section above for contact information.
Expand Down Expand Up @@ -133,7 +133,7 @@ Windows family:
Embedded/Mobile/IoT:
* LynxOS-178 (OpenDDS Safety Profile)
* VxWorks 6.9, 7, 21.03 (see below)
* [Linux on Raspberry Pi](https://opendds.org/quickstart/GettingStartedPi.html)
* [Linux on Raspberry Pi](https://opendds.readthedocs.io/en/latest-release/devguide/quickstart/pi.html)
* [Android 9.0 "Pie" (API Level 28) NDK r18b](https://opendds.readthedocs.io/en/latest-release/devguide/building/android.html)

We have built OpenDDS for VxWorks 6.9, 7, and 21.03 and have run basic
Expand Down Expand Up @@ -169,5 +169,5 @@ https://opendds.readthedocs.io/en/latest-release/devguide/building/index.html
## Quick Start with Docker

See the [Docker Quick
Start](https://opendds.org/quickstart/GettingStartedDocker.html) for
Start](https://opendds.readthedocs.io/en/latest-release/devguide/quickstart/docker.html) for
how to use the pre-built docker image.
22 changes: 11 additions & 11 deletions acetao.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
[ace6tao2]
hold=0
desc=ACE 6/TAO 2
version=6.5.20
version=6.5.21
repo=https://github.com/DOCGroup/ACE_TAO.git
branch=ace6tao2
url=https://github.com/DOCGroup/ACE_TAO/releases/tag/ACE%2BTAO-6_5_20
zip-filename=ACE+TAO-src-6.5.20.zip
zip-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_20/ACE%2BTAO-src-6.5.20.zip
zip-md5=5050fb0a2b97ad32be553102bb85b5ce
tar.gz-filename=ACE+TAO-src-6.5.20.tar.gz
tar.gz-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_20/ACE%2BTAO-src-6.5.20.tar.gz
tar.gz-md5=10cd636115d7463d96dd1bcb645b8b36
tar.bz2-filename=ACE+TAO-src-6.5.20.tar.bz2
tar.bz2-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_20/ACE%2BTAO-src-6.5.20.tar.bz2
tar.bz2-md5=2551d7d445456bcb316fe5e9a4b514ea
url=https://github.com/DOCGroup/ACE_TAO/releases/tag/ACE%2BTAO-6_5_21
zip-filename=ACE+TAO-src-6.5.21.zip
zip-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_21/ACE%2BTAO-src-6.5.21.zip
zip-md5=6c3f14102768819c2082273be309e366
tar.gz-filename=ACE+TAO-src-6.5.21.tar.gz
tar.gz-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_21/ACE%2BTAO-src-6.5.21.tar.gz
tar.gz-md5=c8b028c4d6b253d35dddf01332d7de10
tar.bz2-filename=ACE+TAO-src-6.5.21.tar.bz2
tar.bz2-url=https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_21/ACE%2BTAO-src-6.5.21.tar.bz2
tar.bz2-md5=7b04201352aefa4cdd3938adef86cde6

[ace7tao3]
hold=1
Expand Down
2 changes: 1 addition & 1 deletion bin/PerlDDS/Run_Test.pm
Original file line number Diff line number Diff line change
Expand Up @@ -595,7 +595,7 @@ sub _process_common {
my $self = shift;
my $name = shift;
my $params = shift;
my $debug_logging = $self->{dcps_log_level};
my $debug_logging = 1;

if ($$params !~ /-DCPSLogLevel / && $self->{dcps_log_level}) {
$$params .= " -DCPSLogLevel $self->{dcps_log_level}";
Expand Down
6 changes: 0 additions & 6 deletions cmake/ace_group.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/import_common.cmake")

_opendds_group(ACE DEFAULT_REQUIRED ACE::ACE)

if(_OPENDDS_ACE_MPC_NAME_IS_ACE_TARGET)
set(_mpc_name ACE-target)
else()
set(_mpc_name ACE)
endif()
_opendds_group_lib(ACE
MPC_NAME "${_mpc_name}"
DEPENDS Threads::Threads
)
_opendds_group_lib(XML_Utils
Expand Down
16 changes: 6 additions & 10 deletions cmake/build_ace_tao.cmake
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
include(ExternalProject)

if(_OPENDDS_MPC_TYPE STREQUAL gnuace)
set(_OPENDDS_TAO_MPC_NAME_IS_TAO_TARGET TRUE CACHE INTERNAL "")
endif()

set(_opendds_std_target OpenDDS_Dcps)
if(OPENDDS_JUST_BUILD_HOST_TOOLS)
set(ws "${OPENDDS_BUILD_DIR}/host-tools.mwc")
file(WRITE "${ws}"
Expand All @@ -14,8 +11,13 @@ if(OPENDDS_JUST_BUILD_HOST_TOOLS)
"}\n"
)
list(APPEND _OPENDDS_CONFIGURE_ACE_TAO_ARGS "--workspace-file=${ws}")
set(_opendds_std_target opendds_idl)
endif()

# Get the C++ standard OpenDDS is going to be built with. We are going to force
# the ACE/TAO build to use the same standard.
set(_opendds_std "$<TARGET_PROPERTY:${_opendds_std_target},CXX_STANDARD>")

find_package(Perl REQUIRED)
if(OPENDDS_STATIC)
list(APPEND _OPENDDS_CONFIGURE_ACE_TAO_ARGS --static=1)
Expand All @@ -38,12 +40,6 @@ execute_process(
COMMAND_ERROR_IS_FATAL ANY
)

# Get the C++ standard OpenDDS is going to be built with. We are going to force
# the ACE/TAO build to use the same standard.
set(_opendds_idl_std "$<TARGET_PROPERTY:opendds_idl,CXX_STANDARD>")
set(_opendds_dcps_std "$<TARGET_PROPERTY:OpenDDS_Dcps,CXX_STANDARD>")
set(_opendds_std "$<IF:$<TARGET_EXISTS:OpenDDS_Dcps>,${_opendds_dcps_std},${_opendds_idl_std}>")

set(_build_cmd "${CMAKE_COMMAND}" -E env "ACE_ROOT=${OPENDDS_ACE}" "TAO_ROOT=${OPENDDS_TAO}")
if(_OPENDDS_XERCES3_FOR_ACE)
list(APPEND _build_cmd "XERCESCROOT=${_OPENDDS_XERCES3_FOR_ACE}")
Expand Down
4 changes: 0 additions & 4 deletions cmake/cplusplus.cpp

This file was deleted.

43 changes: 29 additions & 14 deletions cmake/get_ace_tao.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,40 @@ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.24)
cmake_policy(SET CMP0135 NEW)
endif()

function(_opendds_set_vs_mpc_type)
set(vs_vers
"Visual Studio 14 2015" vc14
"Visual Studio 15 2017" vs2017
"Visual Studio 16 2019" vs2019
"Visual Studio 17 2022" vs2022
)

set(mpc_vs_name)
list(LENGTH vs_vers vs_vers_count)
math(EXPR vs_vers_count_end "${vs_vers_count} - 1")
foreach(i RANGE 0 ${vs_vers_count_end} 2)
list(GET vs_vers ${i} cmake_name)
math(EXPR next "${i} + 1")
list(GET vs_vers ${next} mpc_name)
if(cmake_name STREQUAL CMAKE_GENERATOR)
set(mpc_vs_name "${mpc_name}")
break()
endif()
endforeach()
if(NOT mpc_vs_name)
message(STATUS "Missing a MPC project type for \"${CMAKE_GENERATOR}\", "
"using last known: \"${cmake_name}\"/${mpc_name}")
set(mpc_vs_name "${mpc_name}")
endif()
set(_OPENDDS_MPC_TYPE "${mpc_vs_name}" PARENT_SCOPE)
endfunction()

set(_OPENDDS_CONFIGURE_ACE_TAO_ARGS)
set(ACE_IS_BEING_BUILT MPC CACHE INTERNAL "")
set(TAO_IS_BEING_BUILT MPC CACHE INTERNAL "")
if(WIN32)
set(ext "zip")
if(CMAKE_GENERATOR STREQUAL "Visual Studio 17 2022")
set(_OPENDDS_MPC_TYPE vs2022)
elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 16 2019")
set(_OPENDDS_MPC_TYPE vs2019)
elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 15 2017")
set(_OPENDDS_MPC_TYPE vs2017)
elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 14 2015")
set(_OPENDDS_MPC_TYPE vc14)
else()
set(_OPENDDS_MPC_TYPE vs2022)
endif()
_opendds_set_vs_mpc_type()
set(_OPENDDS_ACE_CONFIG_FILE "config-win32.h")
else()
set(ext "tar.bz2")
Expand Down Expand Up @@ -133,9 +151,6 @@ if(EXISTS "${OPENDDS_ACE_TAO_SRC}/ace/Version.h")
set(OPENDDS_ACE "${OPENDDS_ACE_TAO_SRC}" CACHE INTERNAL "")
elseif(EXISTS "${OPENDDS_ACE_TAO_SRC}/ACE/ace/Version.h")
set(OPENDDS_ACE "${OPENDDS_ACE_TAO_SRC}/ACE" CACHE INTERNAL "")
if(_OPENDDS_MPC_TYPE STREQUAL gnuace)
set(_OPENDDS_ACE_MPC_NAME_IS_ACE_TARGET TRUE CACHE INTERNAL "")
endif()
else()
message(FATAL_ERROR "Can't find ace/Version.h in ${OPENDDS_ACE}")
endif()
Expand Down
17 changes: 13 additions & 4 deletions cmake/import_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,20 @@ endfunction()
function(_opendds_find_in_mpc_projects found_var path_var mpc_projects mpc_name config)
string(JSON mpc_project ERROR_VARIABLE err GET "${mpc_projects}" "${mpc_name}")
if(NOT mpc_project)
set(${found_var} FALSE CACHE INTERNAL "" FORCE)
if(debug)
message(STATUS "lib ${target} (${mpc_name}) not in MPC projects")
# The ACE and TAO libraries targets from MPC might be called ACE-target and
# TAO-target depending on if they're in directories of the same name. It
# should be trivial to predict this, but the path logic for this in MPC
# seems buggy and might not prepend -target when OPENDDS_ACE_TAO_SRC is
# outside of the build directory, so we're just going to check both for all
# targets.
string(JSON mpc_project ERROR_VARIABLE err GET "${mpc_projects}" "${mpc_name}-target")
if(NOT mpc_project)
set(${found_var} FALSE CACHE INTERNAL "" FORCE)
if(debug)
message(STATUS "lib ${target} (${mpc_name} or ${mpc_name}-target) not in MPC projects")
endif()
return()
endif()
return()
endif()
string(JSON configs ERROR_VARIABLE err GET "${mpc_project}" "configs")
if(config AND configs)
Expand Down
Loading

0 comments on commit f2581f4

Please sign in to comment.