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-based Python extension builds #1992

Merged
merged 214 commits into from
Feb 27, 2023
Merged

CMake-based Python extension builds #1992

merged 214 commits into from
Feb 27, 2023

Conversation

dweindl
Copy link
Member

@dweindl dweindl commented Feb 15, 2023

Building non-trivial extensions with setuptools alone is a pain. CMake should make everything way easier and simplify finding relevant libraries. This has also potential to solve conda-issues 🤞 .

Changes:

  • CMake-based build of all python extensions, removes any build_clib steps (Closes Use CMake or enscons for python package build/installation #721)
  • Removes most of the setuptools/distutils hacks
  • Removes custom library-finding-logic that is now handled by CMake
  • Enables/disables some additional warnings
  • More relocatable CMake exports

A few modifications to SUNDIALS / SuiteSparse were necessary (all marked by some comment containing AMICI in the respective files):

  • I wasn't able to convince SuiteSparse to find OpenBLAS on windows. Any attempt of doing so has been disabled, and AMICI's logic is used. BLAS with 64bit integer type is assumed.
  • Sundials' FindKLU was modified to find static SuiteSparse libraries (or any SuiteSparse libraries at all...)

dweindl added a commit that referenced this pull request Feb 27, 2023
Instructions are pretty outdated and nobody is willing to maintain them.
If not broken already, at least after #1992, this approach won't work anymore.

Closes #2012
Copy link
Member

@FFroehlich FFroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 nice!

scripts/installAmiciSource.sh Outdated Show resolved Hide resolved
@dweindl dweindl self-assigned this Feb 27, 2023
@sonarqubecloud
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@dweindl dweindl merged commit 9f0ed1d into develop Feb 27, 2023
@dweindl dweindl deleted the cmake branch February 27, 2023 14:20
dweindl added a commit that referenced this pull request Feb 28, 2023
* Doc: Remove outdated mingw instructions

Instructions are pretty outdated and nobody is willing to maintain them.
If not broken already, at least after #1992, this approach won't work anymore.

Closes #2012

* fixup
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.

2 participants