Compiz fusion & CMake
by Dennis Kasprzyk, Thursday, April 3rd @ 11:46 pm

I’ve committed the first version of a generic Compiz plugin CMake macro into the universal Makefile repository. This macro makes it really easy to write CMakeLists.txt files to build a plugin with CMake. The macro implements the same functionality that is currently implemented in the universal Makefile and the code that is needed in the CMakeLists.txt file is as simple as the code of the plugin.info file.

With CMake we get various benefits compared to the universal Makefile:

  • Out of tree build support to keep the checkout clean
  • Combine the build of multiple plugins into one big build (much faster than using yags/Makefile)
  • It doesn’t use libtool. This makes the build faster
  • Multi core compiling (something that is pretty broken with yags/Makefile)

We also consider to switch the build system of our merged plugin repositories to CMake. Guillaume (iXce) has already created a test CMake build system in the plugins-main repository. We will keep both build systems in the repository, until we are sure that CMake provides everything we need. Maybe we will also switch to use the generic CMake macro in the merged repositories, but this would definitely kill the autoconf/automake build system because of the needed change of the structures in the repository. Something like this won’t happen before 0.8.0 is released.

Why CMake?
Because it’s easy. You can learn to create a complex and individual build system in hours with CMake, instead of days (years) with autoconf/automake.

TrackBack URL

  1. : Pat, April 5 @ 10:42 pm

    How would CMake work if you would like to cross-compile voor a different target platform?

  2. : Dennis Kasprzyk, April 5 @ 11:33 pm

    I think that cross compile support will be added in CMake version 2.6.

  3. : fusion/plugins-main e cmake. « Tecnologia e non solo, April 6 @ 3:31 pm

    [...] fusion/plugins-main e cmake. Archiviato in: Fusion, OpenCompositing, Varie — telperion @ 2:31 pm Compilazione di fusion/plugins-main con il nuovo CMake build system che dovrebbe diventare quanto prima il nuovo sistema di compilazione di compiz/fusion. [...]

  4. : telperion, April 6 @ 3:40 pm

    can implement “make uninstall” target like in cmake-faq?

  5. : Dennis Kasprzyk, April 6 @ 10:42 pm

    I’m not sure about the uninstall. Maybe…

  6. : Compiz Fusion de Cubo a Cilindro de Clindro a Esfera - talishte, April 25 @ 6:15 am

    [...] desesperado a tu amigo windowszero de pasarse a Linux, lo tienes que bajar y compilar (eso si con GMake) lo antes posible o bien le puedes contar la historia de amor del [...]