| # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB) | |
| # Copyright (c) 2018, Mellanox Technologies. All rights reserved. See COPYING file | |
| execute_process(COMMAND "${PYTHON_EXECUTABLE}" -c | |
| "from Cython.Compiler.Main import main; import Cython; print(Cython.__version__);" | |
| OUTPUT_VARIABLE _VERSION | |
| RESULT_VARIABLE _VERSION_RESULT | |
| ERROR_QUIET) | |
| if(NOT _VERSION_RESULT) | |
| # We make our own cython script because it is very hard to figure out which | |
| # cython exectuable wrapper is appropriately matched to the python | |
| # interpreter we want to use. Cython must use the matching version of python | |
| # or things will go wrong. | |
| string(STRIP "${_VERSION}" CYTHON_VERSION_STRING) | |
| set(CYTHON_EXECUTABLE "${BUILD_PYTHON}/cython") | |
| file(WRITE "${CYTHON_EXECUTABLE}" "#!${PYTHON_EXECUTABLE} | |
| from Cython.Compiler.Main import main | |
| main(command_line = 1)") | |
| execute_process(COMMAND "chmod" "a+x" "${CYTHON_EXECUTABLE}") | |
| # Dockers with older Cython versions fail to build pyverbs. Until we get to | |
| # the bottom of this, disable pyverbs for older Cython versions. | |
| if (CYTHON_VERSION_STRING VERSION_LESS "0.25") | |
| message("Cython version < 0.25, disabling") | |
| unset(CYTHON_EXECUTABLE) | |
| endif() | |
| endif() | |
| unset(_VERSION_RESULT) | |
| unset(_VERSION) | |
| include(FindPackageHandleStandardArgs) | |
| find_package_handle_standard_args(cython | |
| REQUIRED_VARS CYTHON_EXECUTABLE CYTHON_VERSION_STRING | |
| VERSION_VAR CYTHON_VERSION_STRING) | |
| mark_as_advanced(CYTHON_EXECUTABLE) |