CMake is a powerful and easy to use build system for a wide variety of languages including:
- C / C++
- modern object-oriented Fortran 2008 / 2018
- Matlab / GNU Octave
It's important to use a recent CMake version to be effective and clean with CMake script. This can be done via the Python package described below, or from CMake >= 2.8.12 by:
cmake -P install_cmake.cmake
if you need to compile CMake from source, for example on BSD or ARM 32-bit using existing CMake >= 3.13:
cmake -P build_cmake.cmake
pip install cmakeutils
git clone https://github.com/scivision/cmakeutils pip install -e cmakeutils
convert CMake hierarchy .dot to SVG or PNG
CMake plots dependency graphs for programs like:
cmake -B build --graphviz=gfx/block.dot
Then convert to PNG or SVG like:
python -m cmakeutils.graph ~/myprog/gfx
Install CMake binary
python -m cmakeutils.cmake_setup
takes only a minute to install binary and includes
It works for Linux, MacOS, native Windows and Windows Subsystem for Linux.
Ninja is recommended in general for use with CMake on Windows, Mac and Linux:
python -m cmakeutils.ninja_setup
CMake can be builts from source using either:
- older version of CMake,
- without CMake using the "bootstrap" method
The bootstrap method is only for Unix-like systems, while the CMake-based build can also be used on Windows. Any platform for which Kitware doesn't distribute binaries use this script, including IBM Power and ARM.
python -m cmakeutils.cmake_compile
This downloads the latest CMake release source and builds from scratch.
- SSL library
- C++ compiler
- GNU Make or Ninja
- Download with git using FetchContent
- Download and extract ZIP
- measure system parameters with CMake. Note Cygwin reports really small RAM and zero virtual memory.
One-time setup: if you've never used
mex before, you must setup the C++ compiler.
It doesn't hurt to do this again if you're not sure.
mex -setup -client engine C++
Will ask you to select a compiler, or simply return:
ENGINE configured to use 'g++' for C++ language compilation.