eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.65k stars 384 forks source link

unable to compile on OSX #175

Closed Karsten1987 closed 4 years ago

Karsten1987 commented 4 years ago

Required information

Operating system: Mojave

Compiler version: clang-1001.0.46.4

Observed result or behaviour:

Starting >>> iceperf
--- stderr: iceoryx_introspection
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LIB_TINFO
    linked by target "iceoryx_introspection" in directory /Users/karsten/workspace/ros2/iceoryx_ws/osx/src/iceoryx/tools/introspection

---

Expected result or behaviour: clean compilation

Conditions where it occurred / Performed steps: colcon build in a workspace with iceoryx and rmw_iceoryx.

elfenpiff commented 4 years ago

@Karsten1987 at the moment we do not support colcon on mac. But it is on our radar as next step! Therefore, we need to add a GitHub CI colcon target. I think @prasannabhat is currently working on it whenever he finds the time and then we clean up the CMake files.

prasannabhat commented 4 years ago

@Karsten1987 You might need to build & install ncurses (LIB_TINFO is part of this) manually. I dont know if there in an easy way to install ncurses in mac.

@elfenpiff gave me the hint to build it by sources. I am building it in github CI mac workflow Refer workflow step Build ncurses by source

May be this helps

elBoberido commented 4 years ago

@Karsten1987, how do you build it? iceoryx_utils and iceoryx_posh should not depend on ncurses. Can you check if it builds if you place a COLCON_IGNORE file into tools/introspection?

Karsten1987 commented 4 years ago

I've mentioned this on the OSX PR here that I think the right solution is to explicitly exclude the introspection package on OSX. Placing a COLCON_IGNORE becomes really cumbersome when trying to run in batch mode or CI.

elfenpiff commented 4 years ago

@Karsten1987 if you only need a COLCON_IGNORE file then colcon should build after merging this pull request where I just added the file: https://github.com/eclipse/iceoryx/pull/176

Karsten1987 commented 4 years ago

If you add a COLCON_IGNORE it won't build on any platform - Linux included. That's not what we want. This would disable the introspection package whenever you build within a ROS2 context.

Karsten1987 commented 4 years ago

I think this issue should be re-opened as #176 did not address the issue.

elBoberido commented 4 years ago

@Karsten1987, is there a possibility to control colcon apart from a COLCON_IGNORE, e.g. a .colcon file with meta data?

Another possibility would be to not have the introspection client required and only build it if ncurses is found.

Karsten1987 commented 4 years ago

colcon has quite a few ways of configuration: https://colcon.readthedocs.io/en/released/user/configuration.html

However, from what I understood, the introspection package is simply not supported on OSX, is that right? If so, I still think the right approach here is to simply avoid compiling this package via cmake as mentioned here.