stonier / ecl_core

A set of tools and interfaces extending the capabilities of c++ to provide a lightweight, consistent interface with a focus for control programming.
Other
84 stars 70 forks source link

Building on OS X and Windows #111

Open wolfv opened 3 years ago

wolfv commented 3 years ago

Hi,

we've recently tried to build the ecl libraries as part of the RoboStack effort (we try to package all of ros-noetic for Linux, OS X and Windows as conda packages). We recently had a blog post about this.

Unfortunately we hit some issues with OS X and Windows.

I just wanted to check if you have some ideas how to fix them? We can add patches for the different platfroms if we have to. https://github.com/RoboStack/ros-noetic/pull/51/checks?check_run_id=1968007033

Cheers!

wolfv commented 3 years ago

@stonier there is some more analysis of what's going on in the PR linked here: https://github.com/RoboStack/ros-noetic/pull/51

stonier commented 3 years ago

Whoa, time warp. Been a long time since I've compiled these libraries for windows and mac, maybe 2007? My company shifted entirely over to linux at that time and I stopped 'officially' supporting those platforms due to not having CI around for them.

Having said that, it's probably close to working since the libraries haven't changed much and I do know some people ran kobuki on windows which uses them.

Looks like streams are trying to use sockets but the socket implementation which is not included in an apple build: https://github.com/stonier/ecl_core/blob/devel/ecl_devices/include/ecl/devices/socket.hpp#L28.

The actual application being compiled there, ecl_core_apps/src/benchmarks/streams.cpp doesn't use the socket streams, so that should be fine.

Likely what you need is to just apply the same kind of macro used in devices/socket.hpp for the whole of https://github.com/stonier/ecl_core/blob/devel/ecl_streams/include/ecl/streams/socket_streams.hpp.