GNOME Bugzilla – Bug 675480
Provide CMake build files
Last modified: 2013-01-24 22:42:43 UTC
Please consider shipping CMake build files as part of the official distribution. Benefits: 1. Developers will only have to keep one build file in sync (as opposed to having to update Unix makefiles and Visual Studio 6, 7, 8 project files separately). 2. Users can use the compiler of their choice. For example, under Windows they can use any version of Visual Studio (6 through 11) or even Makefiles if they so choose. 3. CMake supports every platform/compiler imaginable. See http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a partial list (the documentation is missing XCode and Kdeveloper3 but they are supported). I'm not claiming CMake is a silver bullet. It has its flaws. The scripting language is annoying at times and there are corner cases for features supported by one compiler but not another, but there are workarounds for these issues. In my experience, CMake delivers far more benefit than pain. Please investigate for yourself. PS: I found some well-maintained CMake build files at http://code.google.com/p/gstreamer-cmake/ (licensed under LGPL no less). I'm not familiar with the author but this is a great place to start. I also found a related discussion here: http://gstreamer-devel.966125.n4.nabble.com/GSoC-proposal-Improving-GStreamer-on-Windows-and-Mac-td971564.html
I'm not particularly interested in or keen on this. Anyone else?
I generally like the idea of CMake, and use it for our internal plugins, and it's pretty trivial to setup CMake up with the core gstreamer library, however especially on Windows the difficulty arises with building and pulling in plugin dependencies. ossbuild is a slow-going/stalled effort to especially solve this dependency issue. Historically Linux has been the platform most of the core developers focus on, with only a handful caring for Mac and even less for Windows, and autotools seems to work quite well for Linux. Also keep in mind that the majority of GStreamer developers are employees of Collabora (and to a lesser extent Fluendo), and those two companies are working on a GStreamer SDK, which aims to make building on all three major platforms much easier, hopefully for plugin dependencies as well. I imagine once the SDK is released Real Soon Now it will be "the" solution considering who's backing it.
Let me tell you something about build systems that pull in dependencies: Maven. Let's just say I'm not a fan :) I understand the need but I don't foresee anyone doing this right in the near future. Also, I don't think anyone has a firm idea of when GStreamer SDK will come out. I love developers, but Real Soon Now can easily turn into months away ;) The Google Code project I pointed to contains ready-made CMake files. It should be trivial to import them into the official repository. If and when Collabora/Fluendo put out a superior system we can always migrate. In the meantime we'll have something that's easy to use and has been proven to work.
I don't see this reasonably happening in the forseable future.. See the GStreamer SDK at gstreamer.com for windows/mac/android builds.