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

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to