Files
2026-07-13 13:39:38 +08:00

56 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.18)
project(lk_durable LANGUAGES C)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
add_library(lk_durable MODULE livekit/durable/frame.c)
target_link_libraries(lk_durable PRIVATE Python::Module)
target_include_directories(lk_durable PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/livekit/durable
)
# target_compile_definitions(lk_durable PRIVATE Py_BUILD_CORE)
# from https://github.com/pybind/pybind11/blob/d4f9cfbc2866f2156e1b17cb478a67088c6063f6/tools/pybind11NewTools.cmake#L146
execute_process(
COMMAND "${Python_EXECUTABLE}" "-c"
"import sys, importlib; s = importlib.import_module('distutils.sysconfig' if sys.version_info < (3,10) else 'sysconfig'); print(s.get_config_var('EXT_SUFFIX') or s.get_config_var('SO') or '')"
OUTPUT_VARIABLE _PY_EXT_SUFFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(_PY_EXT_SUFFIX STREQUAL "")
message(FATAL_ERROR "Could not determine Python EXT_SUFFIX/SO")
endif()
get_filename_component(_PY_DEBUG_POSTFIX "${_PY_EXT_SUFFIX}" NAME_WE)
get_filename_component(_PY_SUFFIX "${_PY_EXT_SUFFIX}" EXT)
set_target_properties(lk_durable PROPERTIES
PREFIX ""
OUTPUT_NAME "lk_durable"
DEBUG_POSTFIX "${_PY_DEBUG_POSTFIX}"
SUFFIX "${_PY_SUFFIX}"
)
if(DEFINED Python_EXTENSION_SUFFIX)
set_target_properties(lk_durable PROPERTIES SUFFIX "${Python_EXTENSION_SUFFIX}")
endif()
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set_target_properties(lk_durable PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
)
endif()
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG)
set_target_properties(lk_durable PROPERTIES
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG}"
)
endif()
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE)
set_target_properties(lk_durable PROPERTIES
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE}"
)
endif()