Description
Dear mavros team,
As part of the RoboStack project, we are aiming to provide cross-platform ROS packages that can be installed via conda (see https://github.com/RoboStack/ros-noetic). We were able to successfully compile mavros on Linux, macOS & Windows.
For Windows (which I know is currently not supported by mavros), we needed quite a few patches to get mavros to compile. macOS was much easier. You can see the patches here:
- libmavconn
- mavlink - this includes some conda specific patches around PYHONEXECUTABLE, please ignore these
- mavros-1 - this includes a patch that is required for both Windows and macOS
- mavros-2 - this includes a bunch of patches for Windows specifically, and in the current state would break the other platforms (we only apply this patch on Windows).
Are you interested at all in merging these patches upstream? Most of the patches could be easily guarded by if(WIN)
type statements (and most of them are already). For example, I did not find a simple equivalent for set_this_thread_name
and would simply disable that on Windows. Other changes are a little more annoying - I needed to move some variables from being private/protected to public, as the Visual Studio compiler complained about trying to access these which is not allowed (I am not sure about the C++ internals, and why it works on Linux but not Windows).