Helper functions with CMake
Project description
CMake Utils
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
- Python
- Matlab / GNU Octave
It's important to use a recent CMake version to be effective and clean with CMake script.
Install CMake binary
The Python script
cmake_setup.py
takes only a minute to install binary and includes cmake-gui
.
It works for Linux, MacOS, native Windows and Windows Subsystem for Linux.
python cmake_setup.py
Note: new projects should consider Meson instead of or in addition to CMake. Meson can use CMake projects as subprojects (external projects).
Build CMake
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 cmake_compile.py
This downloads the latest CMake release source and builds from scratch.
Requirements:
- SSL library
- C++ compiler
- GNU Make or Ninja
Examples
- Download with git using FetchContent
- Download and extract ZIP
- measure system parameters with CMake. Note Cygwin reports really small RAM and zero virtual memory.
GNU Octave
Octave from CMake via our FindOctave.cmake works well from CMake for unit tests, liboctave, etc. for Octave ≥ 3.8. We didn't try older versions of Octave.
Matlab
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.
From Matlab:
mex -setup -client engine C++
Will ask you to select a compiler, or simply return:
ENGINE configured to use 'g++' for C++ language compilation.
CMake modules
To avoid duplication, we have several scientific computing CMake modules in scivision/fortran-libs repo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.