RFC: android_linux merge

I’m glad to announce we’re ready to merge the long-running android_linux branch into master. The first step is this RFC.

As the name would imply, the emphasis of this branch has been to introduce initial support for Cinder on both Linux and Android. In addition, this branch introduces preliminary support for building Cinder using CMake.

Immediately relevant, independent of what platform you’re working with, is that this branch requires modification of a couple of settings in existing projects. In particular, the Cinder static library has been relocated to simplify linker settings overall.

Formerly on macOS, the Cinder static library has lived at lib/libcinder_d.a and lib/libcinder.a for Debug and Release configurations respectively. Now, it is located at lib/macosx/{Debug|Release}/libcinder.a. This allows projects to use the $(CONFIGURATION) build setting to distinguish between Debug and Release configurations.

To update your Xcode project, set Other Linker Flags build setting should now be:
"$(CINDER_PATH)/lib/macosx/$(CONFIGURATION)/libcinder.a" for both configurations.

A similar change is required on MSW, where the Cinder static library has previously lived at lib/cinder-{v120|v140}_d.lib and lib/cinder-{v120|v140}.lib for Debug and Release configurations respectively. Now, it is located at lib\msw\{x86|x64}\{Debug|Release}\{v120|v140}\cinder.lib. This change allows projects to use the same build setting independent of platform toolset, configuration, and architecture.

To update your Visual C++ project, set Additional Library Directories under Linker | General to <Path To Cinder>\lib\msw\$(PlatformTarget);<Path To Cinder>\lib\msw\$(PlatformTarget)\$(Configuration)\$(PlatformToolset)\

You’ll also find that the Xcode and VC projects for Cinder itself are now located in a proj/ directory at the root of the Cinder repository.

In addition, if you’d like to start to experiment with Android, Linux, or CMake ahead of this merge, please refer to this archived post for Android & Linux, and this post for CMake.

Barring anything unanticipated being discovered by this RFC, we’ll plan to merge this branch into master in the coming week.

-Andrew

10 Likes

Wauw thats some exiting news, I always avoided these Linux branches because I thought they would be very hackish.
I think Linux a perfect host for large scale long running installations which are often done with Cinder.

Wow Andrew, what a great Christmas present! I’ve looked forward to seeing this happen for years now. Thanks so much to you and Hai and all the other great ppl for making this happen. :smile:

I, for one, welcome our new Cinder overlords.

OK - this is merged now.

If you’re tracking with the master branch, you’ll want to:

git pull
git submodule update

and then rebuild Cinder. Please note that the Cinder projects are now in proj/xcode and proj/vc2013.

We’ll do proper documentation and release notes before releasing 0.9.1. Thanks to everyone who contributed to this significant new set of features. One of the most gratifying things for me personally is seeing what a team effort Cinder releases are these days. The credit roll on this one is too long to enumerate here, but thanks again to everybody whose donated time and expertise made this work possible.

-Andrew

4 Likes

Merry Xmas!
Time for cross-platform happiness!