Cython¶
Find cython
executable.
This module will set the following variables in your project:
CYTHON_EXECUTABLE
path to the
cython
programCYTHON_VERSION
version of
cython
CYTHON_FOUND
true if the program was found
For more information on the Cython project, see https://cython.org/.
Cython is a language that makes writing C extensions for the Python language as easy as Python itself.
The following functions are defined:
- add_cython_target¶
Create a custom rule to generate the source code for a Python extension module using cython.
- add_cython_target(<Name> [<CythonInput>]
[EMBED_MAIN] [C | CXX] [PY2 | PY3] [OUTPUT_VAR <OutputVar>])
<Name>
is the name of the new target, and <CythonInput>
is the path to a cython source file. Note that, despite the name, no new
targets are created by this function. Instead, see OUTPUT_VAR
for
retrieving the path to the generated source for subsequent targets.
If only <Name>
is provided, and it ends in the “.pyx” extension, then it
is assumed to be the <CythonInput>
. The name of the input without the
extension is used as the target name. If only <Name>
is provided, and it
does not end in the “.pyx” extension, then the <CythonInput>
is assumed to
be <Name>.pyx
.
The Cython include search path is amended with any entries found in the
INCLUDE_DIRECTORIES
property of the directory containing the
<CythonInput>
file. Use include_directories
to add to the Cython
include search path.
Options:
EMBED_MAIN
Embed a main() function in the generated output (for stand-alone applications that initialize their own Python runtime).
C | CXX
Force the generation of either a C or C++ file. By default, a C file is generated, unless the C language is not enabled for the project; in this case, a C++ file is generated by default.
PY2 | PY3
Force compilation using either Python-2 or Python-3 syntax and code semantics. By default, Python-2 syntax and semantics are used if the major version of Python found is 2. Otherwise, Python-3 syntax and semantics are used.
OUTPUT_VAR <OutputVar>
Set the variable
<OutputVar>
in the parent scope to the path to the generated source file. By default,<Name>
is used as the output variable name.
Defined variables:
<OutputVar>
The path of the generated source file.
Cache variables that affect the behavior include:
CYTHON_ANNOTATE
Whether to create an annotated .html file when compiling.
CYTHON_FLAGS
Additional flags to pass to the Cython compiler.
Example usage¶
find_package(Cython)
# Note: In this case, either one of these arguments may be omitted; their
# value would have been inferred from that of the other.
add_cython_target(cy_code cy_code.pyx)
add_library(cy_code MODULE ${cy_code})
target_link_libraries(cy_code ...)