Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake: allow only one or few precisions to be built #77

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

scivision
Copy link

@scivision scivision commented Nov 21, 2022

fixes #73

Building only one or a few precision(s) e.g. real32, real64, complex32, complex64 allows build time to be slashed by up to 75%, especially important for embedded systems.

Additional necessary modifications were made so that Scalapack works more robustly across compilers and operating systems, including:

  • apply -Wno-implicit* to modern C99+ default compilers such as GCC 12 and Clang
  • workaround find_package bug that made CMake have to be configured twice on some systems
  • configure more robustly when building Lapack via ExternalProject, particularly with Ninja
  • Use GNUInstallDirs to handle lib/lib64, particularly important for RHEL-like Linux OS
  • correct/simplify CI syntax
  • add CI jobs for each precision and MacOS real32 (since MacOS runners are slow and limited number of them)
  • reduce maintenance burden by using functions to deduplicate large amounts of CMake script

These updates are all based upon the https://github.com/scivision/scalapack CMake wrapper of Scalapack, which over the past 4 years has grown to an unexpectedly large user base, when that traffic should rightfully be directed toward this official project. This PR fixes critical issues in Scalapack's CMake scripts that led us to make the scivision/scalapack wrapper. This will help us redirect users to the original Scalapack project here.

@zerothi
Copy link
Contributor

zerothi commented Nov 18, 2024

I don't know if the maintainers would like this at all, but if anything, I think -DBUILD_COMPLEX16 should be changed to -DBUILD_DOUBLE_COMPLEX for consistency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

build errors on GCC 10 (gfortran)
2 participants