New in version v22.06.00.

Generate C(++) from Cython and create Python modules.

rapids_cython_create_modules([CXX] [SOURCE_FILES <src1> <src2> ...] [LINKED_LIBRARIES <lib1> <lib2> ... ]  [INSTALL_DIR <install_path>] [MODULE_PREFIX <module_prefix>] )

Creates a Cython target for each provided source file, then adds a corresponding Python extension module. Each built library has its RPATH set to $ORIGIN.


Requires rapids_cython_init() to be called before usage.


Flag indicating that the Cython files need to generate C++ rather than C.


The list of Cython source files to be built into Python extension modules. Note that this function assumes that Cython source files have a one-one correspondence with extension modules to build, i.e. for every <Name>.pyx in SOURCE_FILES we assume that <Name>.pyx is a Cython source file for which an extension module <Name> should be built.


The list of libraries that need to be linked into all modules. In RAPIDS, this list usually contains (at minimum) the corresponding C++ libraries.


The path relative to the installation prefix so that it can be converted to an absolute path in a relocatable way. If not provided, defaults to the path to CMAKE_CURRENT_SOURCE_DIR relative to PROJECT_SOURCE_DIR.


A prefix used to name the generated library targets. This functionality is useful when multiple Cython modules in different subpackages of the the same project have the same name. The default prefix is the empty string.


A list of targets that are associated with the Cython targets created in this function. The target<–>associated target mapping is stored and may be leveraged by the following functions:

Result Variables

RAPIDS_CYTHON_CREATED_TARGETS will be set to a list of targets created by this function.