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
将设置为此函数创建的目标列表。