On Sun, 11 Nov 2012 01:22:18 +0800
JonY <[email protected]> wrote:

> On 11/10/2012 23:39, Ozkan Sezer wrote:
> > On 11/10/12, Ruben Van Boxem <[email protected]> wrote:
> >> 2012/11/10 Ozkan Sezer <[email protected]>
> >>
> >>> On 11/10/12, Luis Lavena <[email protected]> wrote:
> >>>> On Sat, Nov 10, 2012 at 10:54 AM, Ruben Van Boxem
> >>>> <[email protected]> wrote:
> >>>>> Hi,
> >>>>>
> >>>>> I have the crazy idea to help with ironCrate.
> >>>>>
> >>>>> I have written a small CMakeLists.txt file to get automated
> >>>>> compilation
> >>>>> working (I know you guys favor autotools, I don't). I am running into
> >>>>> some
> >>>>> issues building the source from the get-go.
> >>>>>
> >>>>
> >>>> I think CMake is already the proposed solution:
> >>>>
> >>>>
> >>> http://sourceforge.net/apps/trac/mingw-w64/wiki/devel%20crt%20licensing,%20Coding-style,%20and%20more
> >>>>
> >>>> As CMake provides the generation of MinGW/MSYS makefiles and Visual
> >>>> Studio project files, which is the goal of ironCrate (be compatible
> >>>> with both compilers)
> >>>>
> >>>
> >>> It still amazed why we are not using plain old makefiles.
> >>> oh well..
> >>>
> >>>
> >> Probably because you'd have to write three sets of makefiles: nmake, msys
> >> make, and mingw32-make, which really is kinda silly...
> >
> > I don't think that composing different makefiles for mingw- and msys-
> > versions of make would be necessary but yes one would be necessary
> > for nmake. Two, or even three different makefiles I consider as fair price
> > against dealing with complexities and/or extra dependencies of cmake
> > or autotools.
> >
> 
> Please, no cmake, even custom makefiles, shell scripts, Python scripts,
> Perl scripts, just no cmake.
> 
> cmake is a maintenance nightmare with it's shell-but-not-shell syntax.


It's unfortunate you both had bad experiences with cmake. Cmake really is quite 
powerful, and recent syntax mods make it friendlier to use.

For example, I contributed the following cmake build scripts to the mruby 
project

  https://github.com/mruby/mruby/blob/master/CMakeLists.txt
  https://github.com/mruby/mruby/blob/master/tools/CMakeLists.txt
  https://github.com/mruby/mruby/blob/master/tools/mruby/CMakeLists.txt
  
https://github.com/mruby/mruby/blob/master/cmake/modules/IntrospectSystem.cmake

which are fairly modular and maintainable.

Another nice thing about cmake is it's concept of "toolchain files" that allow 
you to easily modularize cross-compiling build recipes. For example, with the 
same basic structure as above, one creates toolchain "libraries" to support 
different platforms:

  https://github.com/mruby/mruby/tree/master/cmake

Want to cross-compile from your favorite Arch system?

  
https://github.com/mruby/mruby/blob/master/cmake/Toolchain-Arch-mingw32.cmake.sample

Or how about Ubuntu?

  
https://github.com/mruby/mruby/blob/master/cmake/Toolchain-Ubuntu-mingw32.cmake.sample

Or maybe you fancy OSX?

  
https://github.com/mruby/mruby/blob/master/cmake/Toolchain-OSX-mingw32.cmake.sample

Or maybe you really got bored and decided to cross-compile for OpenWRT...

  https://github.com/mruby/mruby/blob/master/cmake/Toolchain-OpenWRT-ANY.cmake

You get the point.

And one more thing, cmake generates ninja build files (yes, the ninja 
single-file-exe runs on Windows and is easily built on Windows using mingw) in 
addition to the plethora of other build files it supports. I use it to build on 
Windows, Arch, Ubuntu and my quaint little Snow Leopard VB VM.

If you looked at cmake awhile ago and hated it's odd syntax, things have gotten 
better. You really should look at it again starting with the 2.8 series. Oh 
look, 2.8.10.1 just came out with binary downloads for your favorite system.

Jon

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to