Skip to content

Commit 131ded6

Browse files
authored
CMake SOABI/SOSABI detection tweaks (#483)
This commit changes how the `SOABI` / `SOSABI` suffices are detected to enable cross-compiling with scikit-build-core.
1 parent 1102ab5 commit 131ded6

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

cmake/nanobind-config.cmake

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,30 @@ else()
1313
set(NB_SUFFIX_EXT "${CMAKE_SHARED_MODULE_SUFFIX}")
1414
endif()
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}")
2133
endif()
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()
3141
endif()
3242

0 commit comments

Comments
 (0)