@@ -13,20 +13,30 @@ else()
1313 set (NB_SUFFIX_EXT "${CMAKE_SHARED_MODULE_SUFFIX} " )
1414endif ()
1515
16- # This was added in CMake 3.17+, also available earlier in scikit-build-core.
16+ # Check if FindPython/scikit-build-core defined a SOABI/SOSABI variable
17+ if (DEFINED SKBUILD_SOABI)
18+ set (NB_SOABI "${SKBUILD_SOABI} " )
19+ elif(DEFINED Python_SOABI)
20+ set (NB_SOABI "${Python_SOABI} " )
21+ endif ()
22+
23+ if (DEFINED SKBUILD_SOSABI)
24+ set (NB_SOSABI "${SKBUILD_SOSABI} " )
25+ elif(DEFINED Python_SOSABI)
26+ set (NB_SOSABI "${Python_SOSABI} " )
27+ endif ()
28+
1729# PyPy sets an invalid SOABI (platform missing), causing older FindPythons to
1830# report an incorrect value. Only use it if it looks correct (X-X-X form).
19- if (DEFINED Python_SOABI AND "${Python_SOABI } " MATCHES ".+-.+-.+" )
20- set (NB_SUFFIX ".${Python_SOABI }${NB_SUFFIX_EXT} " )
31+ if (DEFINED NB_SOABI AND "${NB_SOABI } " MATCHES ".+-.+-.+" )
32+ set (NB_SUFFIX ".${NB_SOABI }${NB_SUFFIX_EXT} " )
2133endif ()
2234
23- # Python_SOSABI is guaranteed to be available in CMake 3.26+, and it may
24- # also be available as part of backported FindPython in scikit-build-core.
25- if (DEFINED Python_SOSABI)
26- if (Python_SOSABI STREQUAL "" )
35+ if (DEFINED NB_SOSABI)
36+ if (NB_SOSABI STREQUAL "" )
2737 set (NB_SUFFIX_S "${NB_SUFFIX_EXT} " )
2838 else ()
29- set (NB_SUFFIX_S ".${Python_SOSABI }${NB_SUFFIX_EXT} " )
39+ set (NB_SUFFIX_S ".${NB_SOSABI }${NB_SUFFIX_EXT} " )
3040 endif ()
3141endif ()
3242
0 commit comments