56 lines
1.9 KiB
CMake
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()
|
|
|