eclipse-iceoryx / iceoryx2

Eclipse iceoryx2™ - true zero-copy inter-process-communication in pure Rust
https://iceoryx.io
Apache License 2.0
989 stars 37 forks source link

Use cargo-c instead of cmake #418

Open nappa85 opened 1 month ago

nappa85 commented 1 month ago

cargo-c exists exactly to ease the build of Rust programs into C libraries, it's an easier and less error-prone approach than managing the cmakefiles yourself.

elBoberido commented 1 week ago

We also need to support colcon via cmake and as far as I understand cargo-c, this is not easily possible. We need cmake to integrate into the C and C++ world, not to integrate C and C++ libraries into iceoryx2.

If I didn't miss anything, we are not able to use cargo-c.

nappa85 commented 1 week ago

cargo-c produces a platform-correct shared library a pkg-config file and one or more headers, cmake can consume the pkg-config files fairly easy.

Il mar 29 ott 2024, 18:45 Mathias Kraus @.***> ha scritto:

We also need to support colcon via cmake and as far as I understand cargo-c, this is not easily possible. We need cmake to integrate into the C and C++ world, not to integrate C and C++ libraries into iceoryx2.

If I didn't miss anything, we are not able to use cargo-c.

— Reply to this email directly, view it on GitHub https://github.com/eclipse-iceoryx/iceoryx2/issues/418#issuecomment-2444953055, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZXINLMBKRJRMNJO5LGZI3Z57CSHAVCNFSM6AAAAABPCTXFRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBUHE2TGMBVGU . You are receiving this because you authored the thread.Message ID: @.***>

elBoberido commented 5 days ago

Does this also easily work with cross compilation and on more exotic OSes like QNX and VxWorks?

I'm a little bit hesitant to add another layer of indirection since the cmake files are not that complex and we are little bit burned by the - supposedly simple - bazel.

nappa85 commented 4 days ago

Does Rust works on QNX and VxWorks?

Il ven 1 nov 2024, 18:09 Mathias Kraus @.***> ha scritto:

Does this also easily work with cross compilation and on more exotic OSes like QNX and VxWorks?

I'm a little bit hesitant to add another layer of indirection since the cmake files are not that complex and we are little bit burned by the - supposedly simple - bazel.

— Reply to this email directly, view it on GitHub https://github.com/eclipse-iceoryx/iceoryx2/issues/418#issuecomment-2452253227, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZXINOHPEXM5E3A7XLME4DZ6OYU3AVCNFSM6AAAAABPCTXFRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGI2TGMRSG4 . You are receiving this because you authored the thread.Message ID: @.***>

elBoberido commented 4 days ago

It works on QNX and I think also VxWorks but I not so sure about the latter. We want to target both OSes and even more exotic ones like eMCOS which are used in safety domains.

lu-zero commented 3 days ago

Does this also easily work with cross compilation and on more exotic OSes like QNX and VxWorks?

The two targets aren't currently supported since I'm taking a conservative approach since every platform has its own set of details for shared libraries.

If you have experience with any of those platform target I'd welcome a pull request to add the necessary informations:

For people with access to the platform it would take 10 minutes to prepare the patch. eMCOS isn't currently even present in the documentation so I guess its addition is very recent.

elBoberido commented 1 day ago

eMCOS is something we recently put on our interesting project list. It is quite often used in safety critical domains, similar to VxWorks and QNX.

We also need to be conservative, since at some point everything needs to be either certified or qualified, which is very costly. Some of the dependencies we currently have will also be replaced by tailored, custum implementations due to that.

cargo-c is for sure a great project, but for us it does not add as much value as for other projects and we also do not have a complex CMake setup.