> CMake - Minus > > The major drawback of CMake is that we couldn't find a way to do the > conversion in separate steps. We had to write the CMake makefiles in > parallel to the existing ones and so had to maintain two build > systems for several months.
Your conclusion is wrong. See add_custom_target function in manual - you can run any external build system from cmake. I even use it as configurer which founds OOo binaries and jars for ant :) As for me, major advantages of CMake are: * speed of initial configuration step, fast re-configuration because of caching; * easy setting up of build parameters through ccmake - much more convenient than those --long-keys; * more intelligent tracking of source dependencies - less files require rebuild if something changes than autotools think; * possibility of parallel build of several directories; * much faster installation - up-to-date binaries are not updated Also: * it's easy to determine operating system of build host and do custom actions for each platform (e.g., build bundle for Mac) > CMake does not overcome the other inherent faults of a recursive, > segmented build system that are explained in the wiki. Again wrong. You can use add_custom_dependencies for each module and configure build oreder as fine as you need > We also need a solution for builds from more than one code > repository. I explained that in the wiki. The "one project, one > workdir" approach of CMake does not offer enough flexibility to make > that possible without headaches. Wrong. You can add paths from underlaying dirs into CMakeLists.txt, or even use ../ to get higher... Nobody forces you to have CMakeLists.txt in every directory, and you can run external build systems for sub-directories with passing them correct parameters > CMake requires tedious procedures or extra scripting to easily build > single modules of OOo, something that is still important for many OOo > developers. Sometimes it's true - non-trivial actions which aren't related to compilation/linking are often simplier to do from shell script. But if you choose autotools, you also have to require shell! You can run shell scripts as external program from build system though. You can run shell script for unix, or bat for Windows. -- Regards, Konstantin --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
