Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

complete new ecal core design from ecal-io #11

Merged
merged 2 commits into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
279 changes: 252 additions & 27 deletions .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,242 @@ on:
push:
pull_request:
branches:
- master
- main

jobs:
build-macos:
runs-on: macos-latest

strategy:
matrix:
build_configuration:
########################################
- name: "default"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "ON"
ECAL_CORE_COMMAND_LINE: "ON"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "ON"
ECAL_CORE_TIMEPLUGIN: "ON"
ECAL_CORE_TRANSPORT_UDP: "ON"
ECAL_CORE_TRANSPORT_TCP: "ON"
ECAL_CORE_TRANSPORT_SHM: "ON"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "full"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "ON"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "ON"
ECAL_CORE_CONFIG_INIFILE: "ON"
ECAL_CORE_COMMAND_LINE: "ON"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "ON"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "ON"
ECAL_CORE_TIMEPLUGIN: "ON"
ECAL_CORE_TRANSPORT_UDP: "ON"
ECAL_CORE_TRANSPORT_TCP: "ON"
ECAL_CORE_TRANSPORT_SHM: "ON"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "pubsub"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "ON"
ECAL_CORE_TRANSPORT_TCP: "ON"
ECAL_CORE_TRANSPORT_SHM: "ON"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "pubsub_proto"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "ON"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "ON"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "ON"
ECAL_CORE_TRANSPORT_TCP: "ON"
ECAL_CORE_TRANSPORT_SHM: "ON"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "pubsub_udp_only"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "OFF"
ECAL_CORE_REGISTRATION_SHM: "OFF"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "ON"
ECAL_CORE_TRANSPORT_TCP: "OFF"
ECAL_CORE_TRANSPORT_SHM: "OFF"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "pubsub_tcp_only"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "OFF"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "OFF"
ECAL_CORE_TRANSPORT_TCP: "ON"
ECAL_CORE_TRANSPORT_SHM: "OFF"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "pubsub_shm_only"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "OFF"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "ON"
ECAL_CORE_SUBSCRIBER: "ON"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "OFF"
ECAL_CORE_TRANSPORT_TCP: "OFF"
ECAL_CORE_TRANSPORT_SHM: "ON"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "client_server"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "OFF"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "OFF"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "OFF"
ECAL_CORE_SUBSCRIBER: "OFF"
ECAL_CORE_SERVICE: "ON"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "OFF"
ECAL_CORE_TRANSPORT_TCP: "OFF"
ECAL_CORE_TRANSPORT_SHM: "OFF"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "client_server_proto"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "ON"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "ON"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "ON"
ECAL_CORE_MONITORING: "OFF"
ECAL_CORE_PUBLISHER: "OFF"
ECAL_CORE_SUBSCRIBER: "OFF"
ECAL_CORE_SERVICE: "ON"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "OFF"
ECAL_CORE_TRANSPORT_TCP: "OFF"
ECAL_CORE_TRANSPORT_SHM: "OFF"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"
########################################
- name: "monitoring_only"
########################################
ECAL_CORE_BUILD_SAMPLES: "ON"
ECAL_CORE_BUILD_SAMPLES_PROTOBUF: "ON"
ECAL_CORE_BUILD_TESTS: "ON"
ECAL_CORE_BUILD_TESTS_PROTOBUF: "ON"
ECAL_CORE_CONFIG_INIFILE: "OFF"
ECAL_CORE_COMMAND_LINE: "OFF"
ECAL_CORE_REGISTRATION: "ON"
ECAL_CORE_REGISTRATION_SHM: "OFF"
ECAL_CORE_MONITORING: "ON"
ECAL_CORE_PUBLISHER: "OFF"
ECAL_CORE_SUBSCRIBER: "OFF"
ECAL_CORE_SERVICE: "OFF"
ECAL_CORE_TIMEPLUGIN: "OFF"
ECAL_CORE_TRANSPORT_UDP: "OFF"
ECAL_CORE_TRANSPORT_TCP: "OFF"
ECAL_CORE_TRANSPORT_SHM: "OFF"
ECAL_CORE_NPCAP_SUPPORT: "OFF"
BUILD_SHARED_LIBS: "OFF"
CMAKE_BUILD_TYPE: "Release"

steps:
- name: Install Dependencies
run: brew install ninja protobuf
run: brew install ninja protobuf pkg-config

- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
submodules: 'true'
fetch-depth: 0
Expand All @@ -25,34 +249,35 @@ jobs:
mkdir "${{ runner.workspace }}/_build"
cd "${{ runner.workspace }}/_build"
cmake $GITHUB_WORKSPACE -G "Ninja" \
-DHAS_CAPNPROTO=OFF \
-DBUILD_SAMPLES=ON \
-DBUILD_ECAL_TESTS=ON \
-DECAL_LAYER_ICEORYX=OFF \
-DECAL_INSTALL_SAMPLE_SOURCES=ON \
-DECAL_JOIN_MULTICAST_TWICE=OFF \
-DECAL_NPCAP_SUPPORT=OFF \
-DECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS=ON \
-DECAL_THIRDPARTY_BUILD_PROTOBUF=OFF \
-DECAL_THIRDPARTY_BUILD_GTEST=ON \
-DECAL_THIRDPARTY_BUILD_RECYCLE=ON \
-DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=14
-DECAL_CORE_BUILD_SAMPLES=${{ matrix.build_configuration.ECAL_CORE_BUILD_SAMPLES }} \
-DECAL_CORE_BUILD_SAMPLES_PROTOBUF=${{ matrix.build_configuration.ECAL_CORE_BUILD_SAMPLES_PROTOBUF }} \
-DECAL_CORE_BUILD_TESTS=${{ matrix.build_configuration.ECAL_CORE_BUILD_TESTS }} \
-DECAL_CORE_BUILD_TESTS_PROTOBUF=${{ matrix.build_configuration.ECAL_CORE_BUILD_TESTS_PROTOBUF }} \
-DECAL_CORE_CONFIG_INIFILE=${{ matrix.build_configuration.ECAL_CORE_CONFIG_INIFILE }} \
-DECAL_CORE_COMMAND_LINE=${{ matrix.build_configuration.ECAL_CORE_COMMAND_LINE }} \
-DECAL_CORE_REGISTRATION=${{ matrix.build_configuration.ECAL_CORE_REGISTRATION }} \
-DECAL_CORE_REGISTRATION_SHM=${{ matrix.build_configuration.ECAL_CORE_REGISTRATION_SHM }} \
-DECAL_CORE_MONITORING=${{ matrix.build_configuration.ECAL_CORE_MONITORING }} \
-DECAL_CORE_PUBLISHER=${{ matrix.build_configuration.ECAL_CORE_PUBLISHER }} \
-DECAL_CORE_SUBSCRIBER=${{ matrix.build_configuration.ECAL_CORE_SUBSCRIBER }} \
-DECAL_CORE_SERVICE=${{ matrix.build_configuration.ECAL_CORE_SERVICE }} \
-DECAL_CORE_TIMEPLUGIN=${{ matrix.build_configuration.ECAL_CORE_TIMEPLUGIN }} \
-DECAL_CORE_TRANSPORT_UDP=${{ matrix.build_configuration.ECAL_CORE_TRANSPORT_UDP }} \
-DECAL_CORE_TRANSPORT_TCP=${{ matrix.build_configuration.ECAL_CORE_TRANSPORT_TCP }} \
-DECAL_CORE_TRANSPORT_SHM=${{ matrix.build_configuration.ECAL_CORE_TRANSPORT_SHM }} \
-DECAL_CORE_NPCAP_SUPPORT=${{ matrix.build_configuration.ECAL_CORE_NPCAP_SUPPORT }} \
-DBUILD_SHARED_LIBS=${{ matrix.build_configuration.BUILD_SHARED_LIBS }} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_configuration.CMAKE_BUILD_TYPE }} \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON
sudo mkdir /etc/ecal
sudo cp "$GITHUB_WORKSPACE/ecal/core/cfg/ecal.ini" /etc/ecal
sudo cp "$GITHUB_WORKSPACE/src/core/cfg/ecal.ini" /etc/ecal
shell: bash

- name: Build Release
run: cmake --build . --config Release
working-directory: ${{ runner.workspace }}/_build

- name: Pack
run: cpack -G DragNDrop
working-directory: ${{ runner.workspace }}/_build

- name: Upload DMG
uses: actions/upload-artifact@v2
with:
name: macos-dmg
path: ${{ runner.workspace }}/_build/_deploy/*.dmg
# - name: Run Tests
# run: ctest -V
# working-directory: ${{ runner.workspace }}/_build
Loading