Cross Version/Platform Builds

On 24/03/2014 at 18:37, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   15 
Platform:   Windows  ; Mac  ;  
Language(s) :     C++  ;

I have 2 plugins finished. Both were developed using the Mac R15 SDK. Both work in Mac R15 perfectly.

Admittedly, I'm new to C++ development so I don't have a background to pull from and see cross compiling is done in other projects.

I've spent quite a lot of time trying to figure out a sane approach to build for Win/Mac and R13-R15 C4D versions. I thought CMake might be the answer and got the Mac R15 build compiling with it. I then unsuccessfully tried to push that over to my Win R15 system and compile. And then on top of that, I just recently learned that plugins need to be compiled with each different C4D SDK version if you're building backwards and I only have R15 installed.

So my question is, what is good approach to all of this? Should I not have started development with the R15 SDK since its not backwards compatible? Should I revert to the R13 SDK and define __LEGACY_API to solve my version builds problem since none of my plugins require R15 functionality? How should I be building cross platform without having to open/reconfigure VS/Xcode every time I update?

Thanks for your help.

On 25/03/2014 at 00:48, xxxxxxxx wrote:

It's hard to revert back from R15, using the __LEGACY_API is very easy if the plugin should be compatible
with former versions. Compile with the lowest version you want to be compatible with and try them in 
newer releases. As soon as it doesn't work anymore, re-compile for the newer release.

You can compile with Demo versions of Cinema 4D, too.


On 25/03/2014 at 09:09, xxxxxxxx wrote:

Thanks NiklasR,

I'm already in the process of reverting to the Mac R13 SDK and got one of my plugins to compile so far. So I think I got the version problem squared away.

Do you have any insight on streamlining cross platform builds? I know this is more of a general compiling question, but figured it would be helpful to know what other C4D devs are doing and why.