Skip to content

Draft: CMake super-builds

Santiago Ospina De Los Ríos requested to merge feature/cmake-superbuild into master

The idea is to be able to enable CMake super builds following up on !848. This is just a draft on some of the current steps we could make achieve this:

  • Remove pkg-config support.
  • Skip including of targets file on the cmake config file.
  • Use global targets to handle external libraries (I only made a couple as a proof of concept).

With these changes, the following snippet already builds (without installation stage):

cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
project(dune-core CXX)

set(CMAKE_PREFIX_PATH ${PROJECT_BINARY_DIR})

add_subdirectory(dune-common)
add_subdirectory(dune-istl)
add_subdirectory(dune-geometry)
add_subdirectory(dune-grid)
add_subdirectory(dune-localfunctions)

Note that this approach on global imported targets avoids one of the most consuming part of our build: find packages over and over again!

Edited by Santiago Ospina De Los Ríos

Merge request reports