Zitat von Martin Preuss <aquaman...@gmx.de>:
[...]
Off-topic: Why I think cmake is better than autotools:
[...]

There are two points which prevented me from switching my own projects to
cmake a few years ago:
- no cross-compile support
- no support for convenience libraries

The most important point was the latter one: With the autotools I can have
multiple convenience libraries and reference them in other parts of the
project. With cmake I had to write the names of all source files into the
toplevel CMakeList which is quite uncomfortable with bigger projects...

Do those points still apply? AFAIK at least cross-compiling should work now (I believe since 2.6)?

Cross-compiling: Yes, it is possible since 2.6, though not particularly nice.

Convenience libraries: No [1]. Gnucash doesn't actually use any convenience libraries but instead "real" libraries, and the final executable links into all of them, so this isn't a problem here anyway.

Although I agree that convenience libraries can improve the source code organization, I can also see some value in cmake's argument against this: The compiler flags when compiling the convenience library should depend on where the object files are finally linked into. Otherwise, the convenience library might contain object code that was compiled differently than how the final result needs it (static LIB vs. shared DLL or similar). Hence, even though this is still a missing feature of cmake, I can see the value in the arguments against their usage, at least against the usage which is supported by autotools, because it fools you into a false sense of simplicity where the whole issue isn't as simple as it looks in autotools. But the point is still open.

Regards,

Christian



[1] http://www.cmake.org/Wiki/CMake_FAQ#Does_CMake_support_.22convenience.22_libraries.3F

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to