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

Stefan Kost ensonic at hora-obscura.de
Wed Mar 25 21:48:30 CET 2009


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 ....

Stefan




More information about the gstreamer-devel mailing list