On Sun, Jun 05, 2016 at 01:59:53PM +0200, Kornel Benko wrote: > Am Sonntag, 5. Juni 2016 um 12:13:51, schrieb Georg Baum > <georg.b...@post.rwth-aachen.de> > > Kornel Benko wrote: > > > > > Am Samstag, 4. Juni 2016 um 09:55:10, schrieb Georg Baum > > >> > > >> However, this is not so important. With autotools we have only very few > > >> people who understand the macro stuff in m4/, config/ and configure.ac, > > >> but everybody is able to do his modifications to the various Makefile.am. > > >> I am pretty sure that cmake can be setup in a similar way, so that we > > >> have the complicated parts that need expert knowledge and are not changed > > >> often, and the easy ones that can be changed by everybody. > > > > > > Sort of. The comparable ones are m4 macros and macros in the > > > development/cmake/modules directory. But I do not see cmake-analogy to > > > Makefile.am files. > > > > I thought those were the CMakeLists.txt files in the individual > > directories? > > The purpose of Makefile.am is to define what gets built, packaged and > > installed in that directory in a way as simple as possible. I had the > > impression that the purpose of CMakeLists.txt is the same. If it is not > > possible to set up cmake in a way that the average developer needs to know > > as little cmake stuff as he currently needs to know from autotools, then > > this would be a big disadvantage. > > Yes, you are right. Sometimes I cannot see the forest. Too many trees. > > > >> I would suggest to make a comparison table of build system features > > >> in the wiki, and everybody adds the ones he needs. Then we can see which > > >> build system supports which feature, and how much work it would be to > > >> implement the mising ones in cmake. > > > > > > +1 > > > > I started a quite incomplete table at > > http://wiki.lyx.org/Devel/BuildSystems > > with some options I used. I would invite everybody to contribute to make it > > complete. The only question is whether we should continue it in the wiki or > > in Development.lyx. I would prefer the latter, since it is easier to edit > > and you get better visual feedback, but of course this would make > > contributions from non-developers more hard. > > OK, starting on the list first. I can only comment on the cmake part. > > [A] detection of external dependencies > cmake does full detection IMHO > [B] create .rpm > cmake creates rpm, deb, > [E] create window package > don't know, we should ask Peter
CC'ing Peter then. Scott > [I] Reliability > why is scons higher then autotools? > cmake not reliable? > [J] Supported platforms > cmake supports all our platforms IMHO > > Commandline arguments for autotools and cmake (arguments for cmake) > custom archiver -DCMAKE_AR= > custom assemble -DCMAKE_AS= > custom C compiler -DCMAKE_CXX_COMPILER= > C++ runtime library -DLYX_STDLIB_DEBUG=ON > included boost -DLYX_EXTERNAL_BOOST=OFF > included hunspell -DLYX_3RDPARTY_BUILD=ON > included zlib -DLYX_3RDPARTY_BUILD=ON > installation prefix -DCMAKE_INSTALL_PREFIX= > version suffix in work > verbose compiler output -DLYX_QUIET=OFF > > > > >> One thing I noticed recently is the > > >> version suffix: Which autotools you can use an arbitrary one, with cmake > > >> you can only toggle between a predefined one or none at all, which is a > > >> problem if you want to compare two different builds of the same version > > >> with separate configurations (e.g. qt4/qt5 or different compiler > > >> settings). > > > > > > I never had problems with this. Each build with different settings can > > > have its own build-dir, so the comparison is trivial. I am doing it this > > > way. So for example my build dir for lyx using gcc5.3 with qt5.6 is > > > '/usr/BUILD/BuildLyxGitQt5.6main-gcc5.3' > > > > > > We don't need to install first. > > > > > > But it is also easy to change the boolean selecting suffix to be a string. > > > > IMHO it is needed. Sometimes you want to install and cannot use the build > > dir only. For example, Liviu would need to rename his .deb packages if we > > would switch to cmake right now, and this would be cumbersome for the users. > > > > I started the work. But I have to know, what should be affected by the suffix. > Suffix = xy > 1.) Installations directory (probably not) > 2.) Environment variables (like LYX_USERDIR_xy) > 3.) Package name > 4.) Program suffixes (lyx2.3.dev) > 5.) Data directory (for lyx-system-lib-dir) > 6.) Binary dir > > > Georg > > > Kornel
signature.asc
Description: PGP signature