“modern CMake” – Slides

CMake_logo

I’ve held a Presentation about “modern CMake” at the C++ Meetup in Wiesbaden a week ago and wanted to share the slides with the Internet. I try to highlight the parts of a CMake project which I consider as modern (I guess there is room for interpretation here) I give a small introduction to CMake…

cmakepp: Expression Syntax

99692

“CMake’s syntax is not sexy.” Is a statement that probably everyone can understand. It does not allow the developer rudimentary constructs which almost all other languages have. But because CMake’s language is astonishingly flexible I was able to create a lexer and parser and interpreter for a custom 100 % compatible syntax which (once “JIT…

cmakepp: Dynamic Calls, Return Values and Exceptions

CMake_logo

This post discusses the reasoning, implementation and usage of return values and exceptions in CMake using cmakepp. If you want to use cmakepp (it is very simple to include and under the MIT license and is a single cmake file to be included) go to cmakepp‘s GitHub page: https://github.com/toeb/cmakepp and read how to get it…

Langeoog: 22° Moon Halo

DSC06518

“The familiar 22° halo around the Sun or Moon occurs because of refraction in tiny hexagonal ice crystals in the air. With the 60° apex angle of the prism formed by extending the sides of the crystal and the index of refraction of ice (n=1.31) one can calculate the angle of minimum deviation to be…

cmakepp: reflecting and manipulating CMakeLists

CMake_logo

The basic CMakeLists.txt files for cmake based projects are usually very simple. Their manipulation lends itself to be automated and for this purpose I developed a parser for cmake script which allows you to manipulate it programatically from within cmake itself. On top of the cmake script parser I generated utility functions which allow you…

cmakepp: Template Generation in CMake

CMake_logo

Find it at http://github.com/toeb/cmakepp Download cmakepp standalone file here As with all my work I appreciate all feedback given and am particularly happy about virtual internet points To the Post: While working on the documentation of cmakepp I grew wary of always doubling the documentation – one in the source code and a mirror in…

Heterogeneous Package Search and Retrieval in CMake

logo

Finding and Retrieving third party sources, tools and binaries is currently a hot subject for C++. There are quite a few solutions (biicode, cpm, hunter, …) Also there is github, bitbucket, source balls etc. Further there are many package managers for many different platforms which also can contain packages (apt-get, chocolatey, nuget, npm, pip, ….).…

Parallel Processes in CMake

CMake_logo

If you need to check out multiple large repositories or build and install large separate projects you might want to use parallel processes in CMake. Dividing your tasks to use multiple CMake and or other processes can speed up your build and configuration steps immensely. Since all cmake host OSs support multitasking from the command…

CMake and the Filesystem

CMake_logo

Filesystem I have always been a bit confused when working with cmake’s file functions and the logic behind paths (sometimes they are found sometimes they are not…) For ease of use I reimplemented a own path managing system which behaves very similar to powershell and bash (see ss64.com) it is based around a global path…

CTest Integration for VisualStudio

screenshot

Motivation I have long searched for an extension in VisualStudio which allows you to control kitware’s CTests via the Test Explorer. Since no such thing existed I have developed a workable proof of concept myself :D. This software is currently not in its finished state, It still needs polishing because it can be slow and…