bug-gama
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gama] CMake Integration


From: Aleš Čepek
Subject: Re: [Bug-gama] CMake Integration
Date: Sun, 20 Oct 2019 17:43:28 +0200

Dear Vasileios, I am impressed (no irony!). I like some of you improvements, but strongly disagree with some of the others. Anyway, thank you for you work a and effort. Let me now explain my main points.
First of all, Gama is a GNU project and its official build is based on GNU Autotools, Cmake is used only for Windows builds of gama-local.exe from MS Visual Studio (Petra Millarova) and last but not least by Anaconda system, https://anaconda.org/conda-forge/gama/ (Kristian Evers). I am not much familiar with these two platforms, but Petra and Kristian have the final say in the CMake build changes.

Some random comments:
* Start using modern target syntax in CMake ... generally I am for, if Petra and Kristian agree.
* Remove from the source code the old libExpat ... you cannot do this. If you have a look at configure.ac you can see tha old expat sources are used only in case when expat library is not installed on the system (I do not want the build to fail if this library is missing, I do not want strict external dependency)
* Integrated the libxml2, octave, SQLite3 in CMake ... same as in previous point. Octave and Sqlite3 are optional extensions, if the libraries are not available, these features are simply ignored. ... it would be nice if octave and sqlite3 would be only optional features in the CMake build (similarly as in the autotools)
* Factor out the common xml headers/sources into a new library.
     This was necessary, because there was a cyclical dependency. Now CMake
     can auto generate the ellipsoids.h/cpp and the language.h/cpp files

On Sun, 20 Oct 2019 at 16:23, Vasileios-Athanasios Anagnostopoulos <address@hidden> wrote:
Hello Everyone,

As a pet project I started to update the CMake implementation of the
gama project. You can find my progress in https://github.com/anagno/gama .

* What has been done:
     * Start using modern target syntax in CMake
     * Remove from the source code the old libExpat
     * Integrated the libxml2, octave, SQLite3 in CMake
     * Factor out the common xml headers/sources into a new library.
     This was necessary, because there was a cyclical dependency. Now CMake
     can auto generate the ellipsoids.h/cpp and the language.h/cpp files
during
     the generation of the project.
     * Integrated the Conan package manager as an optional in CMake

* Migrate the statan UT ... I am not sure with UT abbreviation. As to the statan functions, I don't think they are rich enough to form an individual library (surely I could find a statisticaly library, but why to define another dependency just for a few simple functions)

* Migrate the generation of the docs in CMake (probably using Doxygen?) ... I do not like Doxygen comments in the source codes, which is not important, what is important is tha Gama as GNU project must come with documentation in Texinfo. This was what I agreed with before Gama was dubbed a GNU package by rms.
* qt ... this is a special case. I return to Qt application gama-q2 these days but this is not an official part of GNU Gama.
* Test the new build system in Windows ... there is a limited unit test support (compared with autotools tests suite), but I doubt that it is needed to run test on internal matrix algorithms from ctest.

Is this of interest ? ... It is definitely of interest! 
* When running the UT with valgrind via CMake ... there are memory leaks ... I would star with this issue, I guess that you detected missing of one delete operator in LocalNetwork::~LocalNetwork() destructor (?) which is allready fixed, but not committed to git yet.
Aleš



* What still remains:

     * Complete the migration of the gama-local UT (not all UT are being
executed via CMake)
     * Migrate the statan UT
     * Migrate the generation of the docs in CMake (probably using Doxygen?)
     * Update the documentation
     * I have not examine the qt library of gama and how it can be
integrated with the changes
     * Test the new build system in Windows.
     * When running the UT with valgrind via CMake (i.e. ctest -j8 -T
memcheck --
https://gitlab.kitware.com/cmake/community/wikis/doc/ctest/Testing-With-CTest#dynamic-analysis),
there are memory leaks. Investigate them and fix them (?)


Is this of interest ? If yes, are they any limitations in my
implementation that I have not considered and should be taken into
consideration?

Have a beautiful week and kind regards,

Vasileios

P.S.: My system is an Ubuntu 18.04 computer, so I am might have miss
some compatibility problems with other linux distros.

P.S.2:This is a pet project, so no promises on when it will be fully done :)

_______________________________________________
Bug-gama mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/bug-gama

reply via email to

[Prev in Thread] Current Thread [Next in Thread]