SimVascular / SimVascular/svMultiPhysics

Minimum CMake version

Open
#457 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
45
Forks
60
Avg merge
5d 23h
Merged PRs (30d)
11

Description

Problem

Just curious why the CMake minimum version is set to 3.20? It builds fine with version 3.18, and that seems to be the version you need to use when building on the SDSC Expanse system (which I believe others use the solver on too). If there is a different set of modules, etc. that someone can point me to which works on Expanse with CMake >= 3.20, that would help!

Also, if a user does need to change the minimum version to build on a particular system, this needs to be changed in 8 different places:

>>> grep -ri 'cmake_minimum_required' .
./Code/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Code/ThirdParty/parmetis_internal/simvascular_parmetis_internal/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Code/ThirdParty/gklib_internal/simvascular_gklib_internal/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Code/ThirdParty/metis_internal/simvascular_metis_internal/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Code/ThirdParty/tinyxml/simvascular_tinyxml/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Code/ThirdParty/tetgen/simvascular_tetgen/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./Externals/CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
./CMakeLists.txt:cmake_minimum_required(VERSION 3.20)
Solution

I know it's a good idea to set the minimum to make sure everything is up to date, but maybe it makes sense to set the minimum version only once so building on systems that need to change this can be done with just one change?

Additional context

No response

Code of Conduct
  • I agree to follow this project's Code of Conduct and Contributing Guidelines

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the eight CMakeLists.txt files named in the issue and comparing their cmake_minimum_required declarations. Check how the top-level, Code, Externals, and bundled ThirdParty builds are connected, then test the resulting configuration with CMake 3.18 and 3.20. Done means the minimum version can be changed in one place without breaking the listed build areas.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.