If I were asked to list 3 things to sell a user on ArrayFire, I would say:
<li>Fast, Parallel, Interchangeable backends</li>
<li>Open Source BSD License</li>
<li>Cross Platform</li>

The last of these is what I shall be discussing today. The challenges of cross platform development and how we, at ArrayFire, deal with this problem.
With cross platform we are not just talking about supporting the 3 major operating systems (Linux, OSX, Windows), but also dealing with 32 and 64 bit, trying ArrayFire on new platforms such as ARM and the Tegra K1, and in future with Android.

Lets break this down into 3 separate categories
1. Configuring and Building using CMake
2. Upstream Libraries
3. Continuous Integration using Jenkins
4. Packaging

## Configuring & Building With CMake
With ArrayFire 3.0, I, and most of the ArrayFire team, had our first extensive encounter with CMake. 