Some checks failed
Basic Checks / license-check (push) Has been cancelled
Basic Checks / include-check (push) Has been cancelled
Basic Checks / style-check (push) Has been cancelled
Basic Checks / docs-check (push) Has been cancelled
Basic Checks / python-tests (push) Has been cancelled
Basic Checks / pin-validation (push) Has been cancelled
Basic Checks / cmake-checks (push) Has been cancelled
Basic Checks / frozen-tools-check (push) Has been cancelled
Publish or Update docker image for head of branch / prepare-tags (push) Has been cancelled
Release or update docker image for a released mbed-os version / prepare-tags (push) Has been cancelled
Publish or Update docker image for head of branch / build-container (push) Has been cancelled
Publish or Update docker image for head of branch / test-container (linux/amd64) (push) Has been cancelled
Publish or Update docker image for head of branch / test-container (linux/arm64) (push) Has been cancelled
Publish or Update docker image for head of branch / deploy-container (push) Has been cancelled
Release or update docker image for a released mbed-os version / build-container (push) Has been cancelled
Release or update docker image for a released mbed-os version / test-container (linux/amd64) (push) Has been cancelled
Release or update docker image for a released mbed-os version / test-container (linux/arm64) (push) Has been cancelled
Release or update docker image for a released mbed-os version / deploy-container (push) Has been cancelled
Prune temporary docker images / prune-images (push) Has been cancelled
63 lines
2.1 KiB
CMake
63 lines
2.1 KiB
CMake
# Copyright (c) 2020 ARM Limited. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# CMake functions for checking for Python packages
|
|
# Requires PYTHON_EXECUTABLE to be defined. Call FindPython first!
|
|
|
|
# set OUTPUT_VAR to whether PACKAGENAME was found
|
|
function(check_python_package PACKAGENAME OUTPUT_VAR)
|
|
# can't have Python packages without Python!
|
|
if(NOT Python3_FOUND)
|
|
set(${OUTPUT_VAR} FALSE PARENT_SCOPE)
|
|
return()
|
|
endif()
|
|
|
|
set(NEED_TO_RUN_CHECK TRUE)
|
|
|
|
if(DEFINED ${OUTPUT_VAR})
|
|
if(${OUTPUT_VAR})
|
|
# if the python interpreter changed, we need to recheck
|
|
if("${PY_INTERP_FOR_${OUTPUT_VAR}}" STREQUAL "${Python3_EXECUTABLE}")
|
|
set(NEED_TO_RUN_CHECK FALSE)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if(NEED_TO_RUN_CHECK)
|
|
set(PY_INTERP_FOR_${OUTPUT_VAR} ${Python3_EXECUTABLE} CACHE INTERNAL "The python interpreter used to run the ${OUTPUT_VAR} check" FORCE)
|
|
|
|
execute_process(
|
|
COMMAND ${Python3_EXECUTABLE} -c "import ${PACKAGENAME}" RESULT_VARIABLE PACKAGECHECK_RESULT
|
|
)
|
|
|
|
if(${PACKAGECHECK_RESULT} EQUAL 0)
|
|
set(HAVE_PACKAGE TRUE)
|
|
else()
|
|
set(HAVE_PACKAGE FALSE)
|
|
endif()
|
|
|
|
if(HAVE_PACKAGE)
|
|
message(STATUS "Checking for Python package ${PACKAGENAME} -- found")
|
|
else()
|
|
message(STATUS "Checking for Python package ${PACKAGENAME} -- not found")
|
|
endif()
|
|
|
|
set(${OUTPUT_VAR} ${HAVE_PACKAGE} CACHE BOOL "Whether the Python package ${PACKAGENAME} was found" FORCE)
|
|
mark_as_advanced(${OUTPUT_VAR})
|
|
endif()
|
|
endfunction(check_python_package)
|
|
|
|
# check that PACKAGENAME can be imported, and print an error if not
|
|
function(verify_python_package PACKAGENAME)
|
|
|
|
# we can just generate our own variable name
|
|
string(TOUPPER "HAVE_${PACKAGENAME}" HAVE_VAR_NAME)
|
|
|
|
check_python_package(${PACKAGENAME} ${HAVE_VAR_NAME})
|
|
|
|
if(NOT ${HAVE_VAR_NAME})
|
|
message(FATAL_ERROR "The required Python package ${PACKAGENAME} was not found in ${Python3_EXECUTABLE}. Please install it.")
|
|
endif()
|
|
|
|
endfunction(verify_python_package)
|