Skip to content

Commit

Permalink
Merge branch 'master' into jwi-qosxmlconstants
Browse files Browse the repository at this point in the history
  • Loading branch information
jwillemsen authored Nov 24, 2023
2 parents 8f43a18 + f4ec88a commit 1d76f5a
Show file tree
Hide file tree
Showing 331 changed files with 16,719 additions and 4,721 deletions.
1,206 changes: 765 additions & 441 deletions .github/workflows/build_and_test.yml

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions .github/workflows/dds-rtps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout dds-rtps
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: omg-dds/dds-rtps
path: dds-rtps
- name: checkout ACE_TAO
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: Latest_Micro
Expand All @@ -40,7 +40,7 @@ jobs:
export COMPILER_VERSION=$(g++ --version 2>&1 | head -n 1)
echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
- name: checkout MPC
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: OpenDDS/ACE_TAO/ACE/MPC
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docker_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,25 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true

- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825
uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56
with:
context: .
push: true
Expand Down
19 changes: 11 additions & 8 deletions .github/workflows/ishapes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
VCPKG_GIT_COMMIT: 8eb57355a4ffb410a2e94c07b4dca2dffbee8e50

jobs:

Linux:
Expand All @@ -17,18 +20,18 @@ jobs:
- name: install qt
run: sudo apt-get -y install qtbase5-dev
- name: checkout OpenDDS
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: Latest_Micro
path: OpenDDS/ACE_TAO
- name: checkout MPC
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: OpenDDS/ACE_TAO/ACE/MPC
Expand All @@ -53,12 +56,12 @@ jobs:
runs-on: windows-2022
steps:
- name: checkout OpenDDS
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: checkout ACE_TAO
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: Latest_Micro
Expand All @@ -74,10 +77,10 @@ jobs:
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/vcpkg-qt'
vcpkgGitCommitId: f6a5d4e8eb7476b8d7fc12a56dff300c1c986131
vcpkgGitCommitId: '${{ env.VCPKG_GIT_COMMIT }}'
runVcpkgInstall: true
- name: checkout MPC
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/MPC
path: OpenDDS/ACE_TAO/ACE/MPC
Expand All @@ -88,7 +91,7 @@ jobs:
run: |
cd OpenDDS
perl configure --optimize --no-debug --static --tests ^
"--qt=%VCPKG_ROOT%/installed/x64-windows" ^
"--qt=%VCPKG_INSTALLED_DIR%/x64-windows" ^
"--mpcopts=-value_template platforms=x64" ^
"--mpcopts=-value_template configurations=Release" ^
"--mpcopts=-value_template Release::runtime_library=MultiThreadedDLL"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: checkout OpenDDS
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ${{ env.DDS_ROOT }}
- name: checkout ACE_TAO
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: DOCGroup/ACE_TAO
ref: ace6tao2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sphinx_strict.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout OpenDDS
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Run Strict Checks
run: |
Expand Down
62 changes: 62 additions & 0 deletions .github/workflows/update-ace-tao.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "Update ACE/TAO Versions"

on:
workflow_dispatch:
schedule:
- cron: '33 23 * * *'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
update-ace-tao:
runs-on: ubuntu-22.04
steps:
- name: Checkout OpenDDS
uses: actions/checkout@v4
with:
path: OpenDDS
submodules: true
- name: Install Perl Dependencies
uses: shogo82148/actions-setup-perl@v1
with:
install-modules: |
Pithub
Net::SFTP::Foreign
Time::Piece
LWP::UserAgent
LWP::Protocol::https
- name: Run gitrelease.pl --update-ace-tao
run: |
cd OpenDDS
GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}} perl tools/scripts/gitrelease.pl --update-ace-tao
# Help make the title and message for commit and PR
perl tools/scripts/modules/ini.pm acetao.ini --join ', ' '.*/version' > ../acevers
echo "ACEVERS=$(cat ../acevers)" >> $GITHUB_ENV
perl tools/scripts/modules/ini.pm acetao.ini --join ', ' '.*/url' > ../acevers_urls
echo "ACEVERS_URLS=$(cat ../acevers_urls)" >> $GITHUB_ENV
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
id: cpr
with:
path: OpenDDS
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: |
Update ACE/TAO to ${{env.ACEVERS}}
The releases are ${{env.ACEVERS_URLS}}
committer: GitHub <[email protected]>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
signoff: false
branch: workflows/update-ace-tao
delete-branch: true
title: Update ACE/TAO to ${{env.ACEVERS}}
body: "Releases: ${{env.ACEVERS_URLS}}"
labels: |
dependencies
- name: Check outputs
if: ${{ steps.cpr.outputs.pull-request-number }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ GNUmakefile*

# CMake
build/
build-*/
cmake-build/
compile_commands.json

Expand Down
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ Adam Mitz <[email protected]>
Jose Morato <[email protected]>
Mouse <https://github.com/mouse07410>
Marc Neeley <[email protected]>
Idan Neeman <[email protected]>
Peter Oschwald <[email protected]>
Ossama Othman <[email protected]>
Kevin Pansky <[email protected]>
Expand Down
152 changes: 152 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
cmake_minimum_required(VERSION 3.23...3.27)
include("${CMAKE_CURRENT_LIST_DIR}/cmake/opendds_version.cmake")
project(opendds
DESCRIPTION
"OpenDDS is an open-source C++ framework for exchanging data in distributed systems."
VERSION "${OPENDDS_VERSION}"
HOMEPAGE_URL "https://opendds.org/"
LANGUAGES CXX
)
set(CPACK_PACKAGE_CONTACT [email protected])

include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
include(FetchContent)
include(CPack)

set(OPENDDS_IS_BEING_BUILT TRUE CACHE INTERNAL "")
set(OPENDDS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "")
if(EXISTS "${OPENDDS_SOURCE_DIR}/dds/DdsDcpsC.h")
message(FATAL_ERROR "It looks like OpenDDS was already built here using MPC. This could cause "
"issues with a CMake build. Please clean this source tree or use a separate one.")
endif()
set(OPENDDS_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "")
get_filename_component(_OPENDDS_SOURCE_DIR_REAL "${OPENDDS_SOURCE_DIR}" REALPATH)
get_filename_component(_OPENDDS_BUILD_DIR_REAL "${OPENDDS_BUILD_DIR}" REALPATH)
if("${_OPENDDS_SOURCE_DIR_REAL}" STREQUAL "${_OPENDDS_BUILD_DIR_REAL}")
message(FATAL_ERROR "Please build OpenDDS in a different directory from the source tree "
"directory. Use something like \"cmake -S . -B build\".")
endif()
set(OPENDDS_BIN_DIR "${OPENDDS_BUILD_DIR}/bin" CACHE INTERNAL "")
set(OPENDDS_LIB_DIR "${OPENDDS_BUILD_DIR}/lib" CACHE INTERNAL "")
list(APPEND CMAKE_PREFIX_PATH "${OPENDDS_SOURCE_DIR}")
list(APPEND CMAKE_FIND_ROOT_PATH "${OPENDDS_SOURCE_DIR}")
set(_OPENDDS_CMAKE_DIR "${OPENDDS_SOURCE_DIR}/cmake" CACHE INTERNAL "")

# Get and build ACE/TAO if OPENDDS_ACE wasn't defined and initialize the core
# of the CMake support in init.cmake.
if(NOT DEFINED OPENDDS_ACE OR DEFINED ACE_IS_BEING_BUILT)
# This is before init.cmake so init.cmake can get the features from ACE if
# ACE was already built.
include("${_OPENDDS_CMAKE_DIR}/get_ace_tao.cmake")
endif()
include("${_OPENDDS_CMAKE_DIR}/init.cmake")
if(DEFINED ACE_IS_BEING_BUILT)
# This is after init.cmake so ACE/TAO can be configured using the features
# from init.cmake.
include("${_OPENDDS_CMAKE_DIR}/build_ace_tao.cmake")
endif()

if(NOT DEFINED OPENDDS_RAPIDJSON)
set(OPENDDS_RAPIDJSON "${OPENDDS_SOURCE_DIR}/tools/rapidjson")
if(NOT EXISTS "${OPENDDS_RAPIDJSON}/include")
FetchContent_Declare(rapidjson
GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
GIT_TAG fd3dc29a5c2852df569e1ea81dbde2c412ac5051
)
FetchContent_Populate(rapidjson)
set(OPENDDS_RAPIDJSON "${rapidjson_SOURCE_DIR}")
endif()
endif()

if(NOT CMAKE_CROSSCOMPILING)
add_subdirectory(dds/DCPS) # OpenDDS_Util
add_subdirectory(dds/idl) # opendds_idl
if(OPENDDS_JUST_BUILD_HOST_TOOLS)
return()
endif()
endif()

add_subdirectory(dds) # OpenDDS_Dcps
add_subdirectory(dds/DCPS/transport/multicast)
add_subdirectory(dds/DCPS/RTPS)
add_subdirectory(dds/DCPS/transport/rtps_udp)
add_subdirectory(dds/DCPS/transport/shmem)
add_subdirectory(dds/DCPS/transport/tcp)
add_subdirectory(dds/DCPS/InfoRepoDiscovery)
add_subdirectory(dds/DCPS/transport/udp)
add_subdirectory(dds/InfoRepo)
if(OPENDDS_XERCES3)
add_subdirectory(dds/DCPS/QOS_XML_Handler)
endif()
if(OPENDDS_SECURITY)
add_subdirectory(dds/DCPS/security)
if(OPENDDS_BUILT_IN_TOPICS)
add_subdirectory(tools/dds/rtpsrelaylib)
add_subdirectory(tools/rtpsrelay)
endif()
endif()
add_subdirectory(tools/inspect)

# Installation
set(cmake_dest "${CMAKE_INSTALL_DATAROOTDIR}/cmake/OpenDDS")
install(EXPORT opendds_targets
FILE "opendds_targets.cmake"
DESTINATION ${cmake_dest}
)
set(config_cmake "${CMAKE_CURRENT_BINARY_DIR}/config.cmake")
set(opendds_feature_vars)
foreach(var ${_OPENDDS_FEATURE_VARS})
set(opendds_feature_vars "${opendds_feature_vars}set(${var} ${${var}})\n")
endforeach()
configure_file("${_OPENDDS_CMAKE_DIR}/config.cmake.in" "${config_cmake}")
install(
FILES
cmake/OpenDDSConfig.cmake
cmake/OpenDDSConfigVersion.cmake
cmake/ace_group.cmake
cmake/dds_idl_sources.cmake
cmake/export.h.in
cmake/import_common.cmake
cmake/init.cmake
cmake/opendds_group.cmake
cmake/opendds_target_sources.cmake
cmake/opendds_testing.cmake
cmake/opendds_version.cmake
cmake/tao_group.cmake
cmake/tao_idl_sources.cmake
"${config_cmake}"
DESTINATION "${cmake_dest}"
)
install(FILES VERSION.txt DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dds/")
if(OPENDDS_RAPIDJSON)
install(DIRECTORY "${OPENDDS_RAPIDJSON}/include/rapidjson"
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()

# Examples and Tests
if(BUILD_TESTING)
set(_OPENDDS_BUILD_TESTS_DEFAULT TRUE)
else()
set(_OPENDDS_BUILD_TESTS_DEFAULT FALSE)
endif()
set(OPENDDS_BUILD_TESTS ${_OPENDDS_BUILD_TESTS_DEFAULT} CACHE BOOL "Build OpenDDS Tests")
set(OPENDDS_BUILD_EXAMPLES TRUE CACHE BOOL "Build OpenDDS Examples")
if(OPENDDS_BUILD_EXAMPLES OR OPENDDS_BUILD_TESTS)
enable_testing()
add_subdirectory(DevGuideExamples/DCPS/Messenger)
endif()
if(OPENDDS_BUILD_TESTS)
add_subdirectory(tests/cmake/ace_tao_only)
if(OPENDDS_OWNERSHIP_PROFILE)
add_subdirectory(tests/cmake/Messenger)
endif()
add_subdirectory(tests/cmake/idl_compiler_tests)
add_subdirectory(tests/DCPS/Compiler/optional)
add_subdirectory(tests/cmake/include_subdir)
# TODO: This test always builds shared libraries and linker complains about
# ACE/TAO libs lacking -fPIC when ACE is static.
if(OPENDDS_OWNERSHIP_PROFILE AND NOT OPENDDS_STATIC)
add_subdirectory(tests/cmake/generated_global)
endif()
endif()
Loading

0 comments on commit 1d76f5a

Please sign in to comment.