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 [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: This is a digitally signed message part.