[CMake] CMake-based build systems that are useful for study purposes?

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon Oct 22 17:44:15 EDT 2012


On 2012-10-22 20:25-0000 Eric Clark wrote:

> I would love your opinion on what I have done here. Since this being
developed for developers, it is always nice to get the developer's
(our end-user's) perspective. Do you think I am missing the purpose of
the project() command all together?

I am out of my depth here because I have never worked with such a
complex collection of projects such as yours.  As a general rule,
though (as others have said previously) there are no limits to the
amount and kind of software you can build and test under one project
command.  That said, when a project gets too big, it might be useful
to split it up into semi-independent units (with one project command
each) that can be built separately.  I do that myself for two separate
software projects that are part of the overall Time Ephemerides
project.  The first one of those (ephcom) can stand on its own.  It
builds several different C libraries, utilities that depend on those
libraries, and both Fortran and Python bindings for those C libraries
(all under on project command). The second one of those projects
(te_gen) builds a te_gen Fortran library that depends on the ephcom
Fortran bindings library.  It also builds quite a few Fortran
applications that depend on the te_gen Fortran library.  All this is
under a second project command.

So right now I build, test, and install ephcom by hand then do the
same thing for te_gen by hand (with an automatic check in that build
system that the installed ephcom can be found).  I know there is a way
under CMake to automate the build of both the ephcom and te_gen
projects from one overall hypothetical "Time Ephemerides" parent
project.  I haven't looked further into such a possibility because
only two projects are involved, but if you have a lot of different
projects with an "interesting" dependency graph between them, I think
automation of the build of each of your projects would be essential.

I hope those general ideas help, but I also hope others with more
expertise at multi-project software will comment further if I have
made some mistakes describing what is possible with the project
command.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list