[Gambas-devel] What about cmake?

Sebastian Kulesz sebikul at ...176...
Sun Oct 13 19:10:22 CEST 2013


---------- Forwarded message ----------
From: "Sebastian Kulesz" <sebikul at ...176...>
Date: Oct 13, 2013 1:03 PM
Subject: Re: [Gambas-devel] What about cmake?
To: "Benoît Minisini" <gambas at ...1...>
Cc:

Here [0] is an updated package (not up to date with trunk). Most of the
tree is now ported to cmake, i'm missing a few components which i had some
trouble building or finding the libraries they depend on. The code is much
cleaner now, i removed A LOT of files and symlinks. Cmake simplified a lot
the include directives.

I need some info about the installation process for the binary components.
If possible, the exact steps autoconf executes when doing a make install in
every component.

I'm also having a build error with gbx about an existing symbol with a
different declaration which is causing an error.

I had to move, remove and change a lot of files. Please test it in your
system an let me know if you find a bug. As before, installation is not yet
implemented.

Hope you mine it!

[0] http://goo.gl/1rBMhS
Le 12/10/2013 07:50, Sebastian Kulesz a écrit :

>
>
>
> On Fri, Oct 11, 2013 at 3:58 PM, Benoît Minisini
> <gambas at ...1... <mailto:gambas at ...729...**sourceforge.net<gambas at ...1...>>>
> wrote:
>
>     Le 07/10/2013 23:17, Sebastian Kulesz a écrit :
>      > Here is a a source archive with the previously mentioned components
>      > migrated [0], I don't want to mess up with the svn repository
> without
>      > knowing, and a diff is not feasible. Installing is not possible
>     ATM, you
>      > will only get to compile a limited set of components. These are a
>     few of
>      > the things i can think of that still need some work (besides
>     moving the
>      > rest of the tree):
>      >
>      > - Create a macro to run the informer after component installation
>      > - Create a macro to compile and install gambas components
>      > - Move preprocesor macros to the root CMakeLists, some are yet
>     hardcoded.
>      > - Create a dependency tree between components. If one is enabled,
>     every
>      > parent must be enabled.
>      > - Correctly configure the CMake packager to enable the
>     installation of
>      > libraries and binares.
>      >
>      > The good thing about CMake is that with a simple make package you
>     end up
>      > having a deb, rpm, or whatever you want. It avoids the trouble to
>      > package the enormous list of components for each distribution
> (Debian
>      > and Ubuntu users would greatly benefit from this).
>      >
>      > We have yet to hear about Benoît's input. What do you think?
>      >
>      > PS: gb.qt4.ext is failing due to a missing include directive. I
>     will fix
>      > it when i have enough time to finish the whole qt4 component.
>      >
>      > [0] http://goo.gl/DtVvwg (Google drive)
>      >
>
>     It's a very good idea to use cmake instead of autoconf. But you have to
>     implement the configuration / compilation & installation process
>     entirely, otherwise it will be useless!
>
>     A few questions:
>
>     How is the 'config.h' file and all its custom constants generated?
>
>
> You define them in the root CMakeLists.txt or any other included before
> the CONFIGURE_FILE macro is called. Right now i just wrote them so it
> would compile. I'm not sure if they are defined as they should be,
> mostly the platform specific constants.
>
>
>     How can you add version requirements on libraries?
>
>
> Depends how the library is detected. Most libraries have custom macros
> implemented to detect them, in this case it's just a >= game. Otherwise
> you can use pkg-tool.
>
>
>     How can you write a custom installation process to implement the
>     equivalent of the Gambas "make install" that:
>     - installs the core of Gambas first,
>     - installs binary components,
>     - compiles all components (or component parts) written in Gambas,
>     - calls 'gbi3' to regenerate the information files each time a
> component
>     has been compiled,
>     - compiles and installs all the examples, the IDE and eventually other
>     Gambas 3 applications provided with the sources?
>
>
> It's not hard actually, the only thing is that it takes a lot of time to
> move from one system to another. The runtime is almost done. I'm stuck
> with a compilation error about already declared symbols, but i will get
> into that once i finish the rest.
>
> I'm in the process of porting the binary components, writing all the
> rules to detect libraries, disable them with flags, etc.
> I haven't touched the gambas components yet.
>
>
> I will send an updated package this weekend!
>
>
>
I can't wait for a Gambas source package fully based on cmake! autoconf is
*so* slow!!! :-€

-- 
Benoît Minisini
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/devel/attachments/20131013/87f59cc6/attachment.html>


More information about the Devel mailing list