From: Jos D. <jos...@gm...> - 2012-12-07 09:23:43
|
Hi Trevor, I can see your point now about the cmake. I'll give it a try. You are right the nmake build is a hard to fight monster, any replacement making that simpler is a good thing. Would building static tclsh and libs be possible in the cmake you're planning? Jos. On Fri, Dec 7, 2012 at 10:14 AM, Trevor Davel (Twylite) <tw...@cr... > wrote: > Hi, > > > On 2012/12/07 10:37 AM, Jos Decoster wrote: > > On Fri, Dec 7, 2012 at 9:23 AM, Harald Oehlmann < > har...@el...> wrote: > >> >> How does the CMAKE build work ? >> Should we pass from nmake to cmake ? >> >> If Tcl would build on all platforms with cmake, I'd agree to let the > nmake build go. Otherwise cmake would be yet another build method. > > I'd really like to convince you that CMake should replace NMake for > Windows only (thus not 'another'). > > A cross-platform cmake build by comparison would be 'another' build method > to maintain, because I can't see everyone agreeing to drop autoconf. > > I've looked at the work that Clifford Yapp has done on a cross-platform > CMake build ( > http://www.tclcommunityassociation.org/wub/proceedings/Proceedings-2011/CliffordYapp/tcltk_cmake_paper.pdf) > and it's really good, but it tries to shoehorn the Windows build into a > Unix model, and in doing so it reproduces a bunch of the complexity and > problems of the current (autoconf + NMake) approach. > > The build - and particularly the install - needs of Windows are different > from *nix. You _can_ support both in one build system, but when you do you > end up complicating the *nix build and getting an un-Windowsy result on > Windows. You also end up with frequent breaks of the Windows build when > developers on a *nix platform make non-trivial updates to the build files > (and that's a problem in Tcl where there are relatively few developers > building on Windows). > > The main reason why I started work on a CMake build was to be able to > build Tcl extensions. Tcl went through about a four-year period of chronic > build failures on Windows (from 2007 to 2011 I could not once check out > HEAD/trunk from Tcl, Tk, Itcl, Thread and get a successful build+install > using NMake), and many other extensions had woefully out of date NMake > support (or none at all). I'm no stranger to NMake, but getting an > extension building and installing with it is not a task for the faint of > heart. Even maintaining an NMake build over time is tricky. > > I wanted something that I could easily use to get extensions building, and > that would be easy for a non-Windows developer to set up (with a high > chance of success). That is why Coffee (my CMake builds) focuses on > _really simply_ CMakefiles and targets Windows only. The CMakefile feels > more like a config.in than a Makefile.in. You can't achieve that level > of simplicity in a cross-platform build. > > TL;DR: replace NMake with CMake, then we have the same number of supported > build methods, but the build is easier to maintain on Windows and supports > more compliers. > > Regards, > Twylite > > |