Seeking help collaborating on an XOP on Mac and PC

A partner and I are trying to create a complex XOP together. I use a Mac, my partner uses a PC, and we would like to share all of our files through Github as we go. (Unfortunately, we don't have the funds to buy new computers.)

Our problem is that the XOP toolkit does not have built-in cross-platform support. It provides "project files", which handle most of the XOP setup process automatically, but these project files only come with the extensions "sln" or "xcodeproj". "Sln" projects can only be opened by Visual Studio (which only works on Windows), and "xcodeproj" files can only be opened by XCode (which only works on Macs). So there's no way for my partner and I to use the same project file or have the same setup.

It seems like the best solution would be to build an XOP without using these project files. The C++ code we need exists independently of them. We just need to find a way to compile and build it into an "xop" file on our own. Both my partner and I are fairly new to C++ development, so we are not sure how to do this.

Does anyone with experience with XOPs know how to build them manually, or by using different software?

Both of you have to use XCode or Visual Studio for producing the XOP binaries.
The easiest solution is that both of you work with the project files for the platform they are on.
This obviously means that you have to tune two different sets of project files to your needs.
And yes you quickly run into situations where the setup is slightly different.

The only real way out, is to use a project file generator like CMAKE. This is a long overdue wish of mine to have, but definitly not someting you should tackle as rookie.
You can use the same source files but use the project files appropriate for your platform.

When you add a file to one project you will have to add it to the other. This is usually not a big impediment.
It's also possible to create Qt projects for an XOP. You would then use qmake (a makefile generator that comes with Qt) to generate makefiles which you then build with either clang (on Macintosh) or the Visual Studio compiler (on Windows). Your XOP wouldn't actually *use* the Qt libraries at all--you'd just be using the qmake generator and most likely Qt Creator, a cross platform IDE. Assuming you used Qt Creator, the build process would be automated, just like in Xcode or Visual Studio, so that once you got the project set up correctly, building and debugging would be just as easy as in any other IDE.

You can download the Qt installer, which includes Qt Creator, for free from https://www.qt.io/download-open-source. If you already have Qt installed for some other work you are doing, you could probably use that version (I have only tried doing this with Qt 5.4 and 5.5).

This is something that I would recommend only for a relatively advanced programmer who is already familiar with building projects using qmake. Qt project files are text, and so configuring them is more difficult than using Xcode and Visual Studio, where for most things you can point and click to set things up properly.

As Howard said, you are better off creating two projects (an Xcode project and a VS project) that use the same source code files.

If you want to take the approach of using qmake, I think I have one xop that I have built successfully on both platforms using the same Qt .pro file. I could provide that as an example but I couldn't provide additional technical support.
Thanks for your responses. For now I'm going to try using the two different IDEs as Thomas and Howard suggested to avoid something longer and more involved than we can handle.

On another note, I would love to see Igor address this at some point in the future. Getting the XOP toolkit up to date and giving it cross-platform support would be incredibly helpful -- my partner and I have spent 2 days trying to get around these issues on our own.
aclight wrote:
I could provide that as an example but I couldn't provide additional technical support.

I would be interested in the qmake project file. Maybe it's short enough for the code snippet section here in the forum.
In case someone finds this post here. The ZeroMQ-XOP contains a CMakeLists.txt for creating an XOP for Windows and Mac. With CMAKE you can also generate project files for your favourite IDE. See here for the code.