[Getdp-announce] switch to CMake

Christophe Geuzaine cgeuzaine at ulg.ac.be
Mon Aug 6 16:43:48 CEST 2012


Hello everybody,

I have replaced GetDP's old autoconf-based ("configure") build system with CMake (http://www.cmake.org).

For those of you using Gmsh, I followed exactly the same approach so you should not find the new system too hard to use. The top-level README.txt contains basic instructions on how to get started with CMake.

As has been the case with Gmsh, CMake will solve a lot of the annoying maintenance issues that we had with autoconf:

- CMake can generate either classical makefiles or project files for IDEs like Visual Studio, Eclipse and Xcode. This allows us to remove
all the hacks/scripts needed to compile Gmsh on non-Unix systems.

- CMake tracks dependencies automatically, so there is no need anymore for "make depend" or "make clean".

- CMake allows (and recommends) to perform "out-of-source" builds. This has two advantages: 1) the source tree is not polluted by configuration, object, library or binary files, and 2) one can develop and test several build variants (Sparskit/PETSc-real/PETSc-complex, etc.) from the same source tree at the same time. No need for "make clean" anymore when changing configuration.

- The CMake configuration files (CMakeLists.txt) are fairly easy to understand, so more people will be able to change/fix them if necessary.

- All the ad-hoc packaging tricks have been replaced by a single rule using CPack.

Let me know if you encounter any problems with the new build system; I will try to fix issues as they are reported.

WARNING #1: If you "svn up" your existing source tree, you will have to remove the "Common/GetDPConfig.h" file by hand before your first recompilation. You will also probably want to remove all the old object files ("make clean") and configure leftovers (variables, config.log, etc.) before upgrading.

WARNING #2: The code in SVN is in the process of being cleaned up so we can generate GetDP libraries usable from within other codes. The biggest change you will likely see is that errors do not cause GetDP to quit anymore. Please report any new crashes that this new behavior might have introduced.

Cheers,

Christophe

-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine