]> code.ossystems Code Review - openembedded-core.git/commit
cmake: fix Python executable with cmake
authorMartin Kelly <mkelly@xevo.com>
Thu, 2 Apr 2020 20:56:32 +0000 (13:56 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 3 Apr 2020 13:49:13 +0000 (14:49 +0100)
commita22200a646eaf42cd4902a2fe3358d29717ac129
tree8940d58ef7464a555ac920efd6ff1a7ae63790b1
parent4b26eaf7152fb712aba47a0c746333578f58ee8d
cmake: fix Python executable with cmake

Currently, CMake has two ways of finding Python executables:
FindPythonInterp and FindPython/FindPython3. FindPythonInterp is
deprecated and may be removed at some point. Currently, python3native
sets PYTHON_EXECUTABLE, which FindPythonInterp uses. This is a problem
for a few reasons:

- Setting PYTHON_EXECUTABLE as an environment variable doesn't work, as
  CMake needs it to be set as an explicit CMake option via -D.
- Projects using the newer FindPython/FindPython3 don't pickup the right
  Python, as the newer routines use Python_EXECUTABLE and
  Python3_EXECUTABLE.

Fix this by setting PYTHON_EXECUTABLE, Python_EXECUTABLE, and
Python3_EXECUTABLE using -D options to EXTRA_OECMAKE.

The CMake routines are documented below:
https://cmake.org/cmake/help/latest/module/FindPythonInterp.html
https://cmake.org/cmake/help/latest/module/FindPython.html
https://cmake.org/cmake/help/latest/module/FindPython3.html

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/cmake.bbclass
meta/classes/python3native.bbclass