[OE-core] [PATCH V2] python3native, pythonnative: export PYTHON_LIBRARY and PYTHON_INCLUDE_DIR

Alexander Kanavin alex.kanavin at gmail.com
Wed Sep 4 18:58:47 UTC 2019


Thanks, this looks good now.

Alex

On Wed, 4 Sep 2019 at 20:49, Khem Raj <raj.khem at gmail.com> wrote:

> packages can use
>
> find_package(PythonInterp REQUIRED)
> find_package(PythonLibs REQUIRED)
>
> while we control PYTHON pointing to native py3 the libs and include
> directories will then point to build host version, which can result in
> unexpected combination and if we are lucky we get errors if its quite
> different e.g. py2 libs/includes and py3 executable
>
> This variable can be then used to export PYTHON_LIBRARY and
> PYTHON_INCLUDE_DIR so that above find_packages can work correctly
>
> see [1] for how it happens in cmake
>
> LLDB uses it see [2]
>
> [1]
> https://github.com/Kitware/CMake/blob/master/Modules/FindPythonLibs.cmake
> [2]
> https://github.com/llvm/llvm-project/blob/master/lldb/cmake/modules/LLDBConfig.cmake#L226
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> v2: Use PYTHON_DIR variable
>
>  meta/classes/python3native.bbclass | 8 ++++++++
>  meta/classes/pythonnative.bbclass  | 8 ++++++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/meta/classes/python3native.bbclass
> b/meta/classes/python3native.bbclass
> index a3acaf61bb..768302488b 100644
> --- a/meta/classes/python3native.bbclass
> +++ b/meta/classes/python3native.bbclass
> @@ -9,6 +9,14 @@ DEPENDS_append = " python3-native "
>  export STAGING_INCDIR
>  export STAGING_LIBDIR
>
> +# Packages can use
> +# find_package(PythonInterp REQUIRED)
> +# find_package(PythonLibs REQUIRED)
> +# which ends up using libs/includes from build host
> +# Therefore pre-empt that effort
> +export PYTHON_LIBRARY="${STAGING_LIBDIR}/${PYTHON_DIR}"
> +export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
> +
>  export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
>
>  # suppress host user's site-packages dirs.
> diff --git a/meta/classes/pythonnative.bbclass
> b/meta/classes/pythonnative.bbclass
> index ae6600cd15..604423b80e 100644
> --- a/meta/classes/pythonnative.bbclass
> +++ b/meta/classes/pythonnative.bbclass
> @@ -12,6 +12,14 @@ DEPENDS_append = " python-native "
>  export STAGING_INCDIR
>  export STAGING_LIBDIR
>
> +# Packages can use
> +# find_package(PythonInterp REQUIRED)
> +# find_package(PythonLibs REQUIRED)
> +# which ends up using libs/includes from build host
> +# Therefore pre-empt that effort
> +export PYTHON_LIBRARY="${STAGING_LIBDIR}/${PYTHON_DIR}"
> +export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
> +
>  # suppress host user's site-packages dirs.
>  export PYTHONNOUSERSITE = "1"
>
> --
> 2.23.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20190904/6f5e7098/attachment.html>


More information about the Openembedded-core mailing list