Skip to content

Commit

Permalink
Merge remote-tracking branch 'pub-sub-repo/ros2-merge' into pub-sub
Browse files Browse the repository at this point in the history
  • Loading branch information
ds58 committed Nov 7, 2024
2 parents 402d683 + c7769af commit dff6e04
Show file tree
Hide file tree
Showing 305 changed files with 50,894 additions and 0 deletions.
149 changes: 149 additions & 0 deletions .github/workflows/build-natives.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Build ihmc-pub-sub natives

on:
workflow_dispatch:

jobs:
build-linux:
runs-on: [ubuntu-20.04]
strategy:
matrix:
platform: [x86_64, arm64]
max-parallel: 1
steps:
- uses: actions/checkout@v4
- name: Debug
run: |
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
- name: Pull repo
run: |
git reset --hard
git pull
- name: Install dependencies
run: |
sudo apt update
sudo apt install build-essential g++ gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-aarch64-linux-gnu cmake git swig -y
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Check Java/Gradle versions
run: |
java --version
gradle --version
- name: Compile native library (arm64)
if: matrix.platform == 'arm64'
run: |
LINUX_CROSS_COMPILE_ARM=1 bash cppbuild.bash
- name: Compile native library (x86_64)
if: matrix.platform == 'x86_64'
run: |
bash cppbuild.bash
- name: Commit generated java and native libraries
uses: EndBug/add-and-commit@v9
with:
add: '*.java *.so *.so.*' # Only commit generated java from Linux
author_name: ihmc-rosie
author_email: [email protected]
message: 'Rebuild natives for Linux'
push: true
build-windows:
runs-on: [windows-2019]
needs: [build-linux]
steps:
- uses: actions/checkout@v4
- name: Pull repo
run: |
git reset --hard
git pull
- uses: ilammy/msvc-dev-cmd@v1
with:
vsversion: 2019
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Check Java/Gradle versions
run: |
java --version
gradle --version
- name: Compile native library
run: |
bash.exe cppbuild.bash
- name: Commit native libraries
uses: EndBug/add-and-commit@v9
with:
add: '*.dll' # Only commit generated java from Linux
author_name: ihmc-rosie
author_email: [email protected]
message: 'Rebuild natives for Windows'
push: true
build-macos-intel:
runs-on: [macos-12]
needs: [build-windows]
strategy:
max-parallel: 1
steps:
- uses: actions/checkout@v4
- name: Pull repo
run: |
git reset --hard
git pull
- name: Install dependencies
run: |
brew install coreutils
sudo xcode-select --switch /Applications/Xcode_13.1.app
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Check Java/Gradle versions
run: |
java --version
gradle --version
- name: Compile native library (x86_64)
run: |
bash cppbuild.bash
- name: Commit generated java and native libraries
uses: EndBug/add-and-commit@v9
with:
add: '*.dylib *.jnilib' # Only commit generated java from Linux
author_name: ihmc-rosie
author_email: [email protected]
message: 'Rebuild natives for macOS'
push: true
build-macos-arm:
runs-on: [macos-14]
needs: [build-macos-intel]
strategy:
max-parallel: 1
steps:
- uses: actions/checkout@v4
- name: Pull repo
run: |
git reset --hard
git pull
- name: Install dependencies
run: |
brew install coreutils
brew install swig
sudo xcode-select --switch /Applications/Xcode_14.3.1.app
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Check Java/Gradle versions
run: |
java --version
gradle --version
- name: Compile native library (arm64)
run: |
bash cppbuild.bash
- name: Commit generated java and native libraries
uses: EndBug/add-and-commit@v9
with:
add: '*.dylib *.jnilib' # Only commit generated java from Linux
author_name: ihmc-rosie
author_email: [email protected]
message: 'Rebuild natives for macOS'
push: true
102 changes: 102 additions & 0 deletions .github/workflows/run-gradle-test-all-platforms.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Run Gradle test (all platforms)

on:
workflow_dispatch:

jobs:
test-linux:
runs-on: [ubuntu-20.04]
steps:
- uses: actions/checkout@v4
with:
lfs: 'false'
submodules: 'recursive'
- name: LFS checkout
run: |
git lfs install --local
git lfs fetch
git lfs pull
git lfs ls-files -l
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: 8.5
- name: Run tests
run: |
patch ihmc-pub-sub/thirdparty/Fast-RTPS/resources/xsd/fastRTPS_profiles.xsd ihmc-pub-sub/patches/fastRTPS_profiles.patch
gradle compositeTask --stacktrace --info -PtaskName=test
test-windows:
runs-on: [windows-2019]
steps:
- uses: actions/checkout@v4
with:
lfs: 'false'
submodules: 'recursive'
- name: LFS checkout
run: |
git lfs install --local
git lfs fetch
git lfs pull
git lfs ls-files -l
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: 8.5
- name: Run tests
run: |
patch ihmc-pub-sub/thirdparty/Fast-RTPS/resources/xsd/fastRTPS_profiles.xsd ihmc-pub-sub/patches/fastRTPS_profiles.patch
gradle compositeTask --stacktrace --info -PtaskName=test
test-macos-intel:
runs-on: [macos-12] # macos-12 is exclusively x86_64 intel
steps:
- uses: actions/checkout@v4
with:
lfs: 'false'
submodules: 'recursive'
- name: LFS checkout
run: |
git lfs install --local
git lfs fetch
git lfs pull
git lfs ls-files -l
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: 8.5
- name: Run tests
run: |
patch ihmc-pub-sub/thirdparty/Fast-RTPS/resources/xsd/fastRTPS_profiles.xsd ihmc-pub-sub/patches/fastRTPS_profiles.patch
gradle compositeTask --stacktrace --info -PtaskName=test
test-macos-arm:
runs-on: [macos-14] # macos-14 runner is exclusively arm64
steps:
- uses: actions/checkout@v4
with:
lfs: 'false'
submodules: 'recursive'
- name: LFS checkout
run: |
git lfs install --local
git lfs fetch
git lfs pull
git lfs ls-files -l
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: 8.5
- name: Run tests
run: |
patch ihmc-pub-sub/thirdparty/Fast-RTPS/resources/xsd/fastRTPS_profiles.xsd ihmc-pub-sub/patches/fastRTPS_profiles.patch
gradle compositeTask --stacktrace --info -PtaskName=test
41 changes: 41 additions & 0 deletions .github/workflows/run-gradle-test-linux-self-hosted.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Run Gradle test (Linux, self-hosted)

on:
push:
branches: ["develop"]
pull_request:
branches: ["develop"]
workflow_dispatch:

jobs:
test-linux:
runs-on: [self-hosted, Linux]
steps:
- uses: actions/checkout@v4
with:
lfs: 'false'
submodules: 'recursive'
- name: LFS checkout
run: |
git lfs install --local
git lfs fetch
git lfs pull
git lfs ls-files -l
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: 8.5
- name: Run tests
run: |
gradle compositeTask -PtaskName=compileJava || true
gradle compositeTask -PtaskName=compileJava
gradle compositeTask -PtaskName=test --info --stacktrace --no-daemon -PrunningOnCIServer=true
- name: Publish Test Report - ${{ inputs.test-category }}
uses: mikepenz/action-junit-report@v4
if: success() || failure() # always run even if the previous step fails
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
detailed_summary: true
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "ihmc-pub-sub/thirdparty/Fast-RTPS"]
path = ihmc-pub-sub/thirdparty/Fast-RTPS
url = https://github.com/eProsima/Fast-RTPS.git
[submodule "ihmc-pub-sub/thirdparty/foonathan_memory_vendor"]
path = ihmc-pub-sub/thirdparty/foonathan_memory_vendor
url = https://github.com/eProsima/foonathan_memory_vendor
37 changes: 37 additions & 0 deletions cppbuild.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash
# This build script is designed to work on Linux and Windows. For Windows, run from a bash shell launched with launchBashWindows.bat

REPO_ROOT=$(pwd)
BUILD_ROOT=$REPO_ROOT/ihmc-pub-sub/buildc

rm -rf $BUILD_ROOT # Optional clean
mkdir -p $BUILD_ROOT

#### Update git submodules ####
git submodule update --init --recursive
cd $REPO_ROOT/ihmc-pub-sub/thirdparty/Fast-RTPS
git reset --hard
cd $REPO_ROOT

#### Apply patches ####
patch $REPO_ROOT/ihmc-pub-sub/thirdparty/Fast-RTPS/resources/xsd/fastRTPS_profiles.xsd $REPO_ROOT/ihmc-pub-sub/patches/fastRTPS_profiles.patch

#### Building FastDDS, ihmc-pub-sub natives ####
cd $BUILD_ROOT
if [ "$MAC_CROSS_COMPILE_ARM" == "1" ]; then
cmake -DCMAKE_BUILD_TYPE=Release \
-DSTANDALONE_PLUGIN=ON \
-DCMAKE_TOOLCHAIN_FILE=../macos-aarch64-toolchain.cmake \
..
elif [ "$LINUX_CROSS_COMPILE_ARM" == "1" ]; then
cmake -DCMAKE_BUILD_TYPE=Release \
-DSTANDALONE_PLUGIN=ON \
-DCMAKE_TOOLCHAIN_FILE=../linux-aarch64-toolchain.cmake \
..
else
cmake -DCMAKE_BUILD_TYPE=Release \
-DSTANDALONE_PLUGIN=ON \
..
fi
cmake --build . --config Release --target install
cd $REPO_ROOT
32 changes: 32 additions & 0 deletions eprosima-idl-parser/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Backup GVim files.
*~
# Temporaly GVim files.
*.swp
# Visual Studio user configuration files.
*.vcxproj.user
*.sdf
*.opensdf
*.suo
# Visual Studio build directories.
Debug*/
Release*/
ipch/
objs/
output/
bin/
# Lib directory
lib/
# Tags info
tags
cscope.out
# Compiled python objects
*.pyc

#### Project files ####

/target/
/build
/.gradle
.idea
*.iml
/out
Loading

0 comments on commit dff6e04

Please sign in to comment.