diff --git a/CMake/ITKSetPython3Vars.cmake b/CMake/ITKSetPython3Vars.cmake index 520764c2b3a..b000d670a03 100644 --- a/CMake/ITKSetPython3Vars.cmake +++ b/CMake/ITKSetPython3Vars.cmake @@ -111,6 +111,14 @@ else() "SABIModule" _SKBUILD_SABI_COMPONENT_REQUIRED ) + # A reconfigure sees the cached value, so remember how it was first set. + if(NOT DEFINED ITK_USE_PYTHON_LIMITED_API_WAS_AUTO) + if(NOT DEFINED ITK_USE_PYTHON_LIMITED_API) + set(ITK_USE_PYTHON_LIMITED_API_WAS_AUTO 1 CACHE INTERNAL "") + else() + set(ITK_USE_PYTHON_LIMITED_API_WAS_AUTO 0 CACHE INTERNAL "") + endif() + endif() if(NOT DEFINED ITK_USE_PYTHON_LIMITED_API) if( ( @@ -139,7 +147,28 @@ else() endif() mark_as_advanced(ITK_USE_PYTHON_LIMITED_API) endif() + if(ITK_USE_PYTHON_LIMITED_API_WAS_AUTO) + set( + _itk_limited_api_origin + "auto-selected from Python ${ITK_WRAP_PYTHON_VERSION}" + ) + else() + set(_itk_limited_api_origin "requested") + endif() unset(_SKBUILD_SABI_COMPONENT_REQUIRED) + # The value auto-enables by interpreter version, so report what was chosen. + if(ITK_USE_PYTHON_LIMITED_API) + message( + STATUS + "Python wrapping: limited API (abi3) ON [${_itk_limited_api_origin}]" + ) + else() + message( + STATUS + "Python wrapping: limited API (abi3) OFF [${_itk_limited_api_origin}]" + ) + endif() + unset(_itk_limited_api_origin) if(ITK_USE_PYTHON_LIMITED_API) if(CMAKE_VERSION VERSION_LESS "3.26") message( diff --git a/Wrapping/macro_files/itk_end_wrap_module.cmake b/Wrapping/macro_files/itk_end_wrap_module.cmake index bddf23a4d2a..681c7974ea4 100644 --- a/Wrapping/macro_files/itk_end_wrap_module.cmake +++ b/Wrapping/macro_files/itk_end_wrap_module.cmake @@ -646,6 +646,8 @@ ${DO_NOT_WAIT_FOR_THREADS_CALLS} # Add testing set(wrapping_test_directory ${CMAKE_CURRENT_SOURCE_DIR}/test) if(BUILD_TESTING AND EXISTS ${wrapping_test_directory}/CMakeLists.txt) + # itk_add_test labels with ${itk-module}, which is unset in this scope. + set(itk-module ${WRAPPER_LIBRARY_NAME}) add_subdirectory(${wrapping_test_directory}) endif() unset(wrapping_test_directory)