rapids_cython_create_modules

添加于 v24.02.00 版本。

从 Cython 生成 C(++) 并创建 Python 模块。

rapids_cython_create_modules([CXX]
                             [SOURCE_FILES <src1> <src2> ...]
                             [LINKED_LIBRARIES <lib1> <lib2> ... ]
                             [INSTALL_DIR <install_path>]
                             [MODULE_PREFIX <module_prefix>]
                             [COMPONENT <component_name>]
                             [ASSOCIATED_TARGETS <target1> <target2> ...])

为每个提供的源文件创建一个 Cython 目标,然后添加相应的 Python 扩展模块。每个构建的库的 RPATH 都设置为 $ORIGIN。

注意

要求在使用前调用 rapids_cython_init()

CXX

标志,指示 Cython 文件需要生成 C++ 而不是 C。

SOURCE_FILES

要构建到 Python 扩展模块中的 Cython 源文件列表。请注意,此函数假定 Cython 源文件与要构建的扩展模块一一对应,即对于 SOURCE_FILES 中的每个 <Name>.pyx,我们假定 <Name>.pyx 是一个 Cython 源文件,应为其构建扩展模块 <Name>

LINKED_LIBRARIES

需要链接到所有模块的库列表。在 RAPIDS 中,此列表通常至少包含相应的 C++ 库。

INSTALL_DIR

相对于安装前缀的路径,以便可以以可重定位的方式将其转换为绝对路径。如果未提供,则默认为相对于 PROJECT_SOURCE_DIR 的 CMAKE_CURRENT_SOURCE_DIR 路径。

MODULE_PREFIX

用于命名生成的库目标的名称前缀。当同一项目不同子包中的多个 Cython 模块具有相同名称时,此功能很有用。默认前缀为空字符串。

COMPONENT

应安装生成的 Python 模块的组件名称。这允许对项目不同组件的安装进行更精细的控制。

ASSOCIATED_TARGETS

与此函数中创建的 Cython 目标相关联的目标列表。目标到相关目标的映射被存储,并可能被以下函数利用

  • rapids_cython_add_rpath_entries() 接受相关目标的路径,并更新与之关联的每个目标的 RPATH。

结果变量

RAPIDS_CYTHON_CREATED_TARGETS 将设置为此函数创建的目标列表。