diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd9c59..1a32910 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog +### [1.2.3] - 2022-08-27 +#### Fixed +- fix support for cmake versions below 3.17 + ### [1.2.2] - 2022-08-25 #### Changed - modernize cmake build to fix most conda-forge builds diff --git a/CMakeLists.txt b/CMakeLists.txt index f5524ff..caf1bb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,14 @@ else() find_package(Python COMPONENTS Interpreter Development.Module REQUIRED) endif() -if("${Python_INTERPRETER_ID}" STREQUAL "PyPy") +if(CMAKE_VERSION VERSION_LESS 3.17) + execute_process( + COMMAND "${Python_EXECUTABLE}" -c + "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX').split('.')[1])" + OUTPUT_VARIABLE Python_SOABI + OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ECHO STDOUT) + message(STATUS "Corrected SOABI: ${Python_SOABI}") +elseif("${Python_INTERPRETER_ID}" STREQUAL "PyPy") message(STATUS "PyPy SOABI: ${Python_SOABI}") execute_process( COMMAND "${Python_EXECUTABLE}" -c diff --git a/setup.py b/setup.py index e554ccc..e5abea6 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def show_message(*lines): setup_args = { "name": "jarowinkler", - "version": "1.2.2", + "version": "1.2.3", "url": "https://github.com/maxbachmann/JaroWinkler", "author": "Max Bachmann", "author_email": "pypi@maxbachmann.de", diff --git a/src/jarowinkler/CMakeLists.txt b/src/jarowinkler/CMakeLists.txt index 6fd48e4..95ad66c 100644 --- a/src/jarowinkler/CMakeLists.txt +++ b/src/jarowinkler/CMakeLists.txt @@ -10,8 +10,21 @@ function(create_cython_target _name) endif() endfunction(create_cython_target) +function(rf_add_library name) + if(CMAKE_VERSION VERSION_LESS 3.17) + Python_add_library(${name} MODULE ${ARGV}) + get_property(suffix TARGET ${name} PROPERTY SUFFIX) + if (NOT suffix) + set (suffix "${CMAKE_SHARED_MODULE_SUFFIX}") + endif() + set_property (TARGET ${name} PROPERTY SUFFIX ".${Python_SOABI}${suffix}") + else() + Python_add_library(${name} MODULE WITH_SOABI ${ARGV}) + endif() +endfunction(rf_add_library) + create_cython_target(_initialize_cpp) -Python_add_library(_initialize_cpp MODULE WITH_SOABI ${_initialize_cpp}) +rf_add_library(_initialize_cpp ${_initialize_cpp}) target_compile_features(_initialize_cpp PUBLIC cxx_std_14) target_include_directories(_initialize_cpp PRIVATE ${RF_CAPI_PATH} ${JW_BASE_DIR}/jarowinkler) target_link_libraries(_initialize_cpp PRIVATE jaro_winkler::jaro_winkler) diff --git a/src/jarowinkler/__init__.py b/src/jarowinkler/__init__.py index 71bba68..fad30f1 100644 --- a/src/jarowinkler/__init__.py +++ b/src/jarowinkler/__init__.py @@ -1,6 +1,6 @@ __author__: str = "Max Bachmann" __license__: str = "MIT" -__version__: str = "1.2.2" +__version__: str = "1.2.3" def _fallback_import(module: str, name: str): import importlib