[gst-devel] GSoC proposal: Improving GStreamer on Windows and Mac

Andoni Morales ylatuya at gmail.com
Thu Mar 26 13:59:07 CET 2009


2009/3/26 Ali Sabil <ali.sabil at gmail.com>:
> On Wed, Mar 25, 2009 at 9:48 PM, Stefan Kost <ensonic at hora-obscura.de> wrote:
>> Andoni Morales schrieb:
>>> 2009/3/25 Edward Hervey <bilboed at gmail.com>:
>>>> On Wed, 2009-03-25 at 17:55 +0100, Julien Isorce wrote:
>>>>> Hi,
>>>>>
>>>>> 2009/3/25 Andoni Morales <ylatuya at gmail.com>
>>>>>         >> please add a link to codeblocks.
>>>>>         >
>>>>>         > The Code::Blocks home page is: http://www.codeblocks.org/
>>>>>         > Julien Isorce is also using this IDE for gst-plugins-gl
>>>>>         >
>>>>>
>>>>>          I forgot to mention that Code::Blocks can also be used to
>>>>>         compile
>>>>>         GStreamer in Mac OS X and to cross-compile GStreamer in Linux
>>>>>
>>>>> I like codeblocks but the best choice is to use CMake.
>>>>> ( http://www.cmake.org/ )
>>>>> It's the most easiest, usable, viable, extensible etc... build system
>>>>> known.
>>>>> Qt and KDE are using it now.
>>>>> CMake can generate codeblocks projects and more.
>>>>>
>>>>> CMake is cross platform. It can generate those things:
>>>>>
>>>>> Unix Makefiles  = Generates standard UNIX makefiles.
>>>>> CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
>>>>> Eclipse CDT4 - Unix Makefiles = Generates Eclipse CDT 4.0 project
>>>>> files.
>>>>> KDevelop3 = Generates KDevelop 3 project files.
>>>>> KDevelop3 - Unix Makefiles  = Generates KDevelop 3 project files.
>>>>> Borland Makefiles  = Generates Borland makefiles.
>>>>> MSYS Makefiles   = Generates MSYS makefiles.
>>>>> MinGW Makefiles  = Generates a make file for use with mingw32-make.
>>>>> NMake Makefiles   = Generates NMake makefiles.
>>>>> Unix Makefiles  = Generates standard UNIX makefiles.
>>>>> Visual Studio 6  = Generates Visual Studio 6 project files.
>>>>> Visual Studio 7   = Generates Visual Studio .NET 2002 project files.
>>>>> Visual Studio 7 .NET 2003 = Generates Visual Studio .NET 2003
>>>>> projectfiles.
>>>>> Visual Studio 8 2005  = Generates Visual Studio .NET 2005 project
>>>>> files.
>>>>> Visual Studio 8 2005 Win64  = Generates Visual Studio .NET 2005 Win64
>>>>> project files.
>>>>> Visual Studio 9 2008  = Generates Visual Studio 9 2008 project files.
>>>>> Visual Studio 9 2008 Win64  = Generates Visual Studio 9 2008 Win64
>>>>> project files.
>>>>> Watcom WMake = Generates Watcom WMake makefiles.
>>>>> CodeBlocks - MinGW Makefiles= Generates CodeBlocks project files.
>>>>> CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
>>>>> Eclipse CDT4 - MinGW Makefiles = Generates Eclipse CDT 4.0 project
>>>>> files.
>>>>> Eclipse CDT4 - NMake Makefiles = Generates Eclipse CDT 4.0 project
>>>>> files.
>>>>> Eclipse CDT4 - Unix Makefiles = Generates Eclipse CDT 4.0 project
>>>>> files.
>>>>>
>>>>> CMake can also generate XCode projects, and "darwin makefiles" but I
>>>>> have no Mac machine to copy/past the output of cmake --help.
>>>>>
>>>>> I am also using it in gst-plugins-gl. So I can help.
>>>>>
>>>>> Moreover, CMake can generate installers
>>>>  Some questions that come to mind:
>>>>  * How easy is it to teach it new build systems (S60 and Android come
>>>> to mind here). That includes Makfile, auto-generated files, etc... If it
>>>> can... this would ease the portability work of GStreamer (and plugins) a
>>>> *LOT*.
>>>>  * What are the compile-time dependencies ? How easy/hard would it be
>>>> to use it in a cross-compile setup ? Can it run in esoteric setups ? If
>>>> we can gain new systems but lose old systems (on which auto* works
>>>> perfectly well due to only requiring a shell) it's gonna be a definite
>>>> blocker.
>>>
>>> As far as i know,  CMake is similar to Autotools, in the sense that
>>> you just need it to process the configuration files. Then you can
>>> choose between creating standard makefiles if you want to use it in a
>>> shell environment, or creating Visual Studio projects if you want to
>>> use an IDE.
>>>
>>>>  CMake looks *very* tempting (he who has read the libtool code with
>>>> love throws the first stone), but we need to make sure we're not losing
>>>> anything if we switch.
>>>>
>>>>    Edward
>>>>
>>
>> If the CMake people would only have picked a decent syntax for the CMakelist.txt
>> files ....
>>
> There are other problems with CMake (besides the syntax), you can find
> them here: http://www.bakefile.org/wiki/ComparisonsWithOtherTools

For me KDE is one the best examples of multi-platform project. This
article explains why and how they switched to CMake:
http://lwn.net/Articles/188693/
I think it's worth the reading.
Andoni
>
> --
> Ali
>
> ------------------------------------------------------------------------------
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>




More information about the gstreamer-devel mailing list