A few weeks ago, I faced an interesting CMake problem: Our group's software contains several submodules such as kernel, math, etc. The topology module, for which I am responsible, obtained a new dependency. I now wanted to notify all other modules about the inclusion status of this module. If the dependency was not met, the module should not be included. Furthermore, all algorithms depending on the topology module shall not be built, either.

I expected this to be difficult, nay impossible, because CMake does not seem to have the concept of global variables. Instead, I was pleasantly surprised to find out about the option PARENT_SCOPE. This option can be used in SET() statements of subordinate modules to set a variable in the scope of the calling module, i.e. the parent.

Hence, typing

SET(TOPOLOGY_MODULE_AVAILABLE true PARENT_SCOPE)

in the CMakeLists.txt file of the subordinate module solved the problem.

Posted Saturday evening, January 14th, 2012 Tags:

While setting up a new system with FreeBSD 9.0, the port of the awesome window manager would not build. More specifically, generating manpages failed with:

xmlto: /usr/ports/x11-wm/awesome/work/awesome-3.4.10/manpages/man1/awesome.1.xml does not validate (status 3)

After some searching, I discovered the solution: Simply install the port textproc/docbook-xml-450 in addition to the dependency textproc/docbook-450 of the awesome window manager.

Posted late Monday evening, January 16th, 2012 Tags:

I managed to get my diploma thesis published using HeiDok, the Open Access platform of Heidelberg University. The interested reader is referred to the permanent URL that displays my parvum opus.

Posted Wednesday night, January 18th, 2012 Tags: