[Networkit] Build system discussion: Using CMake instead of SCons

Moritz von Looz moritz.looz-corswarem at kit.edu
Mon May 8 15:35:14 CEST 2017

Dear fellow NetworKit developers and users,

some users mentioned that they would prefer CMake over SCons and wish that NetworKit switch.

Reasons in favor of a switch:
- As CMake is more well-known, a given environment is more likely to have a working CMake installation than a SCons installation. This holds especially for high-performance clusters, where users have limited control
over their build environment. Using SCons introduces an additional dependency.
- While the Python interface of NetworKit targets Python 3, SCons still requires Python 2. In fact, the last seven releases of SCons start their release notes with noting that they are the last version still
supporting versions earlier than Python 2.7, as they are moving towards Python 3. While SCons is still actively developed, it is not clear when it will be compatible with Python 3. This leaves us with NetworKit
depending on both Python 2 and 3.
- CMake has faster build times.

Reasons against:
- It is not broken. Switching takes work and breaks user workflows.
- SCons scripts are purely in Python, while CMake requires its users to learn a new syntax.

I'm in favour of switching away from SCons to reduce the number of dependencies, especially the dependency to Python 2. CMake seems like a good candidate due to its wide availability and active development.

What is your take on this?

All the best,

More information about the NetworKit mailing list