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

Enable symbol mangling on macOS and Windows #34

Open
wants to merge 61 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
017f5de
Added support for mangling C library symbols on Windows.
gmartin82 Oct 31, 2024
7650eb2
Allow unused variables in get_library_name().
gmartin82 Oct 31, 2024
b34e382
Bumping version number to 0.3.4.
gmartin82 Oct 31, 2024
3ca4682
Installing Rust toolchain as part of CI run to ensure fmt is available.
gmartin82 Nov 4, 2024
645f300
Support for symbol mangling on all operating systems.
gmartin82 Dec 5, 2024
1399b5c
Fixing CI build.
gmartin82 Dec 6, 2024
f53b808
Enable symbol mangling in CI on Windows.
gmartin82 Dec 6, 2024
7715145
Removed regex from Cargo manifest.
gmartin82 Dec 6, 2024
4f04504
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
1b40cb2
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
9c26f2b
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
be497c2
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
c6d5cfd
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
b939dfc
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
775f985
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
54cdc97
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
ae09f16
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
9aa96cb
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
3c22265
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
d079ff9
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
7b261d7
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
3b10a0b
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
8304c60
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
383864b
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
26139f1
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
da7c1ec
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
5321831
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
80dc4f5
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
40610a3
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
1fc3342
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
fc4d222
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
3d3d6c2
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
8e03c0e
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
b2b4267
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
2c57dab
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
1a62c4f
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
ccfddea
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
ec30502
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
3b3b899
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
b65554f
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
bff6ddd
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
fd72e3d
Run tests with iceoryx feature enabled.
gmartin82 Dec 6, 2024
3c002a4
Tidied CMake file.
gmartin82 Dec 9, 2024
2bb0fff
Tidied build script and temporarily disabled failing tests in CI.
gmartin82 Dec 9, 2024
698b4cf
Correcting Windows build of Iceoryx.
gmartin82 Dec 9, 2024
4cc990c
Enable failing Iceoryx tests.
gmartin82 Dec 9, 2024
a6c636a
Don't run tests when Iceoryx enabled on Ubuntu ARM CI build.
gmartin82 Dec 9, 2024
b74ff6e
Don't run tests when Iceoryx enabled on Ubuntu ARM CI build.
gmartin82 Dec 9, 2024
50b2dde
Don't run tests when Iceoryx enabled on Ubuntu ARM CI build.
gmartin82 Dec 9, 2024
fdb068b
Don't run tests when Iceoryx enabled on Ubuntu ARM CI build.
gmartin82 Dec 9, 2024
0a73325
Don't run tests when Iceoryx enabled on Ubuntu ARM CI build.
gmartin82 Dec 9, 2024
fcdd7bf
Documented optional features.
gmartin82 Dec 9, 2024
8acb012
Documented optional features.
gmartin82 Dec 9, 2024
120d3bb
Reordered link libs in build script to resolve build issue on Ubuntu …
gmartin82 Dec 10, 2024
3a2d9c6
Reordered link libs in build script to resolve build issue on Ubuntu …
gmartin82 Dec 10, 2024
002aa71
Attempting to fix CI tests.
gmartin82 Dec 10, 2024
b316061
Attempt to fix CI build issue.
gmartin82 Dec 10, 2024
d569067
Attempt to fix CI build issue.
gmartin82 Dec 10, 2024
6129209
Attempt to fix CI build issue.
gmartin82 Dec 10, 2024
ef74dc2
Attempt to fix CI build issue.
gmartin82 Dec 10, 2024
7b712ce
Fix Iceoryx tests in CI.
gmartin82 Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 27 additions & 6 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,30 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-11, macos-ventura, [ubuntu-22.04, ARM64]]
runs-on: [self-hosted, "${{ matrix.os }}"]
os-arch:
- { os: "ubuntu-latest", arch: "X64" }
- { os: "windows-11", arch: "X64" }
- { os: "macos-ventura", arch: "ARM64" }
- { os: "ubuntu-22.04", arch: "ARM64" }
runs-on: ["${{ matrix.os-arch.os }}", "${{ matrix.os-arch.arch }}"]

steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install ACL
if: startsWith(matrix.os,'ubuntu')
if: startsWith(matrix.os-arch.os,'ubuntu')
run: sudo apt-get -y install acl-dev
- name: Install LLVM toolchain
if: startsWith(matrix.os-arch.os,'macos')
run: |
brew install llvm@19
ls /opt/homebrew/opt/llvm@19/bin
echo "/opt/homebrew/opt/llvm@19/bin" >> $GITHUB_PATH
- name: Install Rust toolchain
run: |
rustup show
rustup component add rustfmt clippy
- name: Code format check
uses: actions-rs/cargo@v1
with:
Expand All @@ -34,10 +48,17 @@ jobs:
with:
command: clippy
args: -- -D warnings
- name: Build (without Iceoryx)
- name: Build (default features)
run: cargo build --verbose
- name: Build (with Iceoryx)
if: ${{ ! startsWith(matrix.os,'window') }}
if: ${{ ! startsWith(matrix.os-arch.os,'window') }}
run: cargo build --features iceoryx --verbose
- name: Run tests (without Iceoryx)
- name: Build (with symbol prefixing)
run: cargo build --features prefix_symbols --verbose
- name: Run tests (default features)
run: cargo test --verbose
- name: Run tests (with Iceoryx)
if: ${{ ! startsWith(matrix.os-arch.os,'window') }}
run: cargo test --features iceoryx --verbose
- name: Run tests (with symbol prefixing)
run: cargo test --features prefix_symbols --verbose
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cyclors"
version = "0.3.3"
version = "0.3.4"
authors = ["kydos <angelo@icorsaro.net>"]
license = "Apache-2.0"
readme = "README.md"
Expand Down Expand Up @@ -30,3 +30,4 @@ cmake = "0.1"

[features]
iceoryx = []
prefix_symbols = []
17 changes: 17 additions & 0 deletions Cross.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[target.x86_64-unknown-linux-musl]
image = "jenoch/rust-cross:x86_64-unknown-linux-musl"

[target.arm-unknown-linux-gnueabi]
image = "jenoch/rust-cross:arm-unknown-linux-gnueabi"

[target.arm-unknown-linux-gnueabihf]
image = "jenoch/rust-cross:arm-unknown-linux-gnueabihf"

[target.armv7-unknown-linux-gnueabihf]
image = "jenoch/rust-cross:armv7-unknown-linux-gnueabihf"

[target.aarch64-unknown-linux-gnu]
image = "jenoch/rust-cross:aarch64-unknown-linux-gnu"

[target.aarch64-unknown-linux-musl]
image = "jenoch/rust-cross:aarch64-unknown-linux-musl"
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
# cyclors
Low level RUST APIs for cyclone

## Supported Features

* ```iceoryx```: Enable support for the Iceoryx PSMX plugin in Cyclone DDS (Linux and macOS only).
* ```prefix_symbols```: Prefix the symbols in the Cyclone DDS and Cyclocut libraries with the version of the cyclors crate. This allows for different versions of the crate to be loaded together statically. On macOS and Windows platforms ```llvm-nm``` and ```llvm-objcopy``` are required.

**Note:** The ```iceoryx``` and ```prefix_symbols``` features are optional and cannot be enabled at the same time.
Loading
Loading