Skip to content

Commit 7326e78

Browse files
committed
test_project_cmake: Use proper CMake way to add cpython extension
CMake Python module defines a python_add_library command to easily compile a cpython extension module.
1 parent a45d5d8 commit 7326e78

2 files changed

Lines changed: 4 additions & 20 deletions

File tree

hatch_cpp/tests/test_project_cmake/CMakeLists.txt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,11 @@ endif()
7171

7272

7373
find_package(Python ${CSP_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter Development.Module)
74-
link_directories(${Python_LIBRARY_DIRS})
75-
include_directories(${Python_INCLUDE_DIRS})
76-
77-
set(CMAKE_SHARED_LIBRARY_PREFIX "")
78-
if(NOT WIN32)
79-
set(CMAKE_SHARED_LIBRARY_SUFFIX .so)
80-
else()
81-
set(CMAKE_SHARED_LIBRARY_SUFFIX .pyd)
82-
endif()
8374

8475
include_directories("${CMAKE_SOURCE_DIR}/cpp")
8576

86-
add_library(extension SHARED cpp/project/basic.cpp)
77+
python_add_library(extension MODULE WITH_SOABI cpp/project/basic.cpp)
78+
8779
set_target_properties(extension PROPERTIES PUBLIC_HEADER cpp/project/basic.hpp)
8880
install(TARGETS extension
8981
PUBLIC_HEADER DESTINATION project/include/project

hatch_cpp/tests/test_project_cmake_vcpkg/CMakeLists.txt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,11 @@ endif()
7171

7272

7373
find_package(Python ${CSP_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter Development.Module)
74-
link_directories(${Python_LIBRARY_DIRS})
75-
include_directories(${Python_INCLUDE_DIRS})
76-
77-
set(CMAKE_SHARED_LIBRARY_PREFIX "")
78-
if(NOT WIN32)
79-
set(CMAKE_SHARED_LIBRARY_SUFFIX .so)
80-
else()
81-
set(CMAKE_SHARED_LIBRARY_SUFFIX .pyd)
82-
endif()
8374

8475
include_directories("${CMAKE_SOURCE_DIR}/cpp")
8576

86-
add_library(extension SHARED cpp/project/basic.cpp)
77+
python_add_library(extension MODULE WITH_SOABI cpp/project/basic.cpp)
78+
8779
set_target_properties(extension PROPERTIES PUBLIC_HEADER cpp/project/basic.hpp)
8880
install(TARGETS extension
8981
PUBLIC_HEADER DESTINATION project/include/project

0 commit comments

Comments
 (0)