如何在CMake中获取Python模块安装目录?

时间:2018-09-13 16:32:28

标签: python cmake

我使用C ++和Boost创建了一个小型的Python模块,该模块是使用CMake构建的。现在,我需要将其安装到标准python模块目录中,但是它需要成为CMAKE_INSTALL_PREFIX内的路径,因此可以将其与标准Debian打包系统一起打包。

现在我有了它,最后一行显然是错误的,因为它是系统目录的绝对路径。

cmake_minimum_required(VERSION 3.12)
project(foo)

# Not Shown: Extract ${PYTHON_VERSION} from interpreter

find_package(Python ${PYTHON_VERSION} REQUIRED COMPONENTS Interpreter Development)

find_package(Boost 1.55.0 REQUIRED COMPONENTS system python${Python_VERSION_MAJOR}${Python_VERSION_MINOR})

Python_add_library(foo MODULE
    src/foo.cc src/python_interface.cc
)
set_target_properties(foo PROPERTIES PREFIX "")
target_link_libraries(foo
    PUBLIC
        Boost::python${Python_VERSION_MAJOR}${Python_VERSION_MINOR}
)

# This is wrong
install(TARGETS foo DESTINATION ${Python_SITEARCH}/foo)

我也了解了Python的distutilssetuptools,但是它们似乎不适合独立使用。

0 个答案:

没有答案