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