On 11/11/2012 15:59, Pau Garcia i Quiles wrote: > On Sun, Nov 11, 2012 at 2:39 AM, JonY <[email protected]> wrote: > >>> 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. >>> >> >> They look clean, but mods? cmake has mods? These has to be installed by >> the end user too? > > I think he means "macro" and "module" files. Usually you distribute >
Sounds like they are reinventing autotools. >>> 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: >>> >> >> "Toolchain files" for every system and triplet combination that you MAY >> want to support? This is one of the parts that I do not understand about >> cmake, why does it have to make cross-compile difficult? > > A "toolchain" file is just a file that says "for platform X the C > compiler is arm-gcc-4.2, the C++ compiler is arm-g++-4.2, the make > tool is...", etc. CMake includes support for many platforms (compilers > and operating systems) out of the box. You only need to create your > own toolchain file when adding support for a new > compiler/language/platform. In practice, this usually means you only > need to create a toolchain file for cross-compiling for embedded > platforms. > That effectively says to the user "you MUST have the same setup as my developer machine to compile this". Good lucky sorting out arm-vendor-abi-gcc vs armv5tel-unkown-abi2-gcc vs dozens of configurations out there. I'll reconsider my opinion on cross compiler support once cmake understands build/host/target triplets. > As an additional bonus, there are the "superbuilds": you can easily > combine provide a CMake-based meta-build system for CMake and > non-CMake-based projects. This way, it would be possible to use the > very same CMake build system to build mingw-w64 on Windows, Linux, > BSD, etc. Even for cross-compiling. It'd be more or less what I am > doing in winstng to build Wt: > Sure, a top level cmake is fine, but please don't shoehorn it into any of part mingw-w64 or it's subprojects, it already has an existing build system. The last thing we need is to tell the user "in addition to a shell interpreter, you need cmake/jam/waf/ant/msbuild too for this subproject".
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ 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
