# 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)