Skip to main content

Helper functions with CMake

Project description

CMake Utils

DOI

Actions Status

PyPi versions PyPi Download stats

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cmakeutils, version 1.6.3
Filename, size File type Python version Upload date Hashes
Filename, size cmakeutils-1.6.3.tar.gz (7.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page