[Gambas-devel] What about cmake?

Sebastian Kulesz sebikul at ...176...
Sat Oct 12 07:50:13 CEST 2013


On Fri, Oct 11, 2013 at 3:58 PM, Benoît Minisini <
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!


>
> --
> Benoît Minisini
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
> _______________________________________________
> Gambas-devel mailing list
> Gambas-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/devel/attachments/20131012/99eb2cfd/attachment.html>


More information about the Devel mailing list