diff options
| author | Philip Balister <philip@balister.org> | 2020-07-10 12:19:06 -0400 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2020-07-12 19:04:17 -0700 |
| commit | 7ebbd785185043bed935a6f3310af3dd78461d86 (patch) | |
| tree | 0c626663ea406246f7ea53d52b24f89fbe3174cf /meta-python/recipes-devtools/python | |
| parent | 66793d35421bdf7d945152b3bffd52d66115f268 (diff) | |
| download | meta-openembedded-7ebbd785185043bed935a6f3310af3dd78461d86.tar.gz | |
python3-pybind11: Use cmake to build and add -native version
* Switch to git repo to pick up cmake files for recipes to use
* Use cmake to build innstead of pypi so cmake files are included in sysroot
* Disable tests to prevent configure failure (I tried adding pytest asa DEPEND)
* Patch out cmake that strips output to prevent QA failures
* Do not check pointer length for installed python when cross compiling.
* With this I can build gnuradio using pybind11.
Signed-off-by: Philip Balister <philip@balister.org>
Acked-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-python/recipes-devtools/python')
3 files changed, 83 insertions, 3 deletions
diff --git a/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-check-pointer-size-when-cross-compiling.patch b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-check-pointer-size-when-cross-compiling.patch new file mode 100644 index 0000000000..6455c95e77 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-check-pointer-size-when-cross-compiling.patch | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | From 3abfa65517959ad279481021fafefba28f955e76 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Philip Balister <philip@balister.org> | ||
| 3 | Date: Fri, 10 Jul 2020 10:14:59 -0400 | ||
| 4 | Subject: [PATCH] Do not check pointer size when cross compiling. | ||
| 5 | |||
| 6 | It is reasonable to build for 32 machine on a 64 bit build machine. Prevents: | ||
| 7 | | CMake Error at tools/FindPythonLibsNew.cmake:127 (message): | ||
| 8 | | Python config failure: Python is 64-bit, chosen compiler is 32-bit | ||
| 9 | |||
| 10 | Signed-off-by: Philip Balister <philip@balister.org> | ||
| 11 | --- | ||
| 12 | tools/FindPythonLibsNew.cmake | 2 +- | ||
| 13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 14 | |||
| 15 | diff --git a/tools/FindPythonLibsNew.cmake b/tools/FindPythonLibsNew.cmake | ||
| 16 | index d0c8fa2..8479e70 100644 | ||
| 17 | --- a/tools/FindPythonLibsNew.cmake | ||
| 18 | +++ b/tools/FindPythonLibsNew.cmake | ||
| 19 | @@ -123,7 +123,7 @@ list(GET _PYTHON_VALUES 9 PYTHON_MULTIARCH) | ||
| 20 | |||
| 21 | # Make sure the Python has the same pointer-size as the chosen compiler | ||
| 22 | # Skip if CMAKE_SIZEOF_VOID_P is not defined | ||
| 23 | -if(CMAKE_SIZEOF_VOID_P AND (NOT "${PYTHON_SIZEOF_VOID_P}" STREQUAL "${CMAKE_SIZEOF_VOID_P}")) | ||
| 24 | +if((NOT CMAKE_CROSSCOMPILING) AND CMAKE_SIZEOF_VOID_P AND (NOT "${PYTHON_SIZEOF_VOID_P}" STREQUAL "${CMAKE_SIZEOF_VOID_P}")) | ||
| 25 | if(PythonLibsNew_FIND_REQUIRED) | ||
| 26 | math(EXPR _PYTHON_BITS "${PYTHON_SIZEOF_VOID_P} * 8") | ||
| 27 | math(EXPR _CMAKE_BITS "${CMAKE_SIZEOF_VOID_P} * 8") | ||
| 28 | -- | ||
| 29 | 2.25.4 | ||
| 30 | |||
diff --git a/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch new file mode 100644 index 0000000000..07ab9a03b5 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | From 918f3ef01c7a67f3beb67307966698474f144581 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Philip Balister <philip@balister.org> | ||
| 3 | Date: Wed, 8 Jul 2020 09:41:43 -0400 | ||
| 4 | Subject: [PATCH] Do not strip binaries. | ||
| 5 | |||
| 6 | * OpenEmbedded strips them after creating debug packages. | ||
| 7 | |||
| 8 | Signed-off-by: Philip Balister <philip@balister.org> | ||
| 9 | --- | ||
| 10 | tools/pybind11Tools.cmake | 13 ------------- | ||
| 11 | 1 file changed, 13 deletions(-) | ||
| 12 | |||
| 13 | diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake | ||
| 14 | index a3603ab..b4c8f63 100644 | ||
| 15 | --- a/tools/pybind11Tools.cmake | ||
| 16 | +++ b/tools/pybind11Tools.cmake | ||
| 17 | @@ -230,19 +230,6 @@ function(pybind11_add_module target_name) | ||
| 18 | |||
| 19 | _pybind11_add_lto_flags(${target_name} ${ARG_THIN_LTO}) | ||
| 20 | |||
| 21 | - if (NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo) | ||
| 22 | - # Strip unnecessary sections of the binary on Linux/Mac OS | ||
| 23 | - if(CMAKE_STRIP) | ||
| 24 | - if(APPLE) | ||
| 25 | - add_custom_command(TARGET ${target_name} POST_BUILD | ||
| 26 | - COMMAND ${CMAKE_STRIP} -x $<TARGET_FILE:${target_name}>) | ||
| 27 | - else() | ||
| 28 | - add_custom_command(TARGET ${target_name} POST_BUILD | ||
| 29 | - COMMAND ${CMAKE_STRIP} $<TARGET_FILE:${target_name}>) | ||
| 30 | - endif() | ||
| 31 | - endif() | ||
| 32 | - endif() | ||
| 33 | - | ||
| 34 | if(MSVC) | ||
| 35 | # /MP enables multithreaded builds (relevant when there are many files), /bigobj is | ||
| 36 | # needed for bigger binding projects due to the limit to 64k addressable sections | ||
| 37 | -- | ||
| 38 | 2.25.4 | ||
| 39 | |||
diff --git a/meta-python/recipes-devtools/python/python3-pybind11_2.5.0.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.5.0.bb index dc3b8f6adf..46bba8d8d1 100644 --- a/meta-python/recipes-devtools/python/python3-pybind11_2.5.0.bb +++ b/meta-python/recipes-devtools/python/python3-pybind11_2.5.0.bb | |||
| @@ -3,7 +3,18 @@ HOMEPAGE = "https://github.com/wjakob/pybind11" | |||
| 3 | LICENSE = "BSD-2-Clause" | 3 | LICENSE = "BSD-2-Clause" |
| 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62" |
| 5 | 5 | ||
| 6 | SRC_URI[md5sum] = "5355e1fd05c8eedef19cc9bfd3d82a77" | 6 | DEPENDS = "boost" |
| 7 | SRC_URI[sha256sum] = "ea5a4e7a880112915463826f1acbec5892df36dfe102ecb249229ac514fb54ad" | ||
| 8 | 7 | ||
| 9 | inherit pypi setuptools3 | 8 | SRC_URI = "git://github.com/pybind/pybind11.git \ |
| 9 | file://0001-Do-not-strip-binaries.patch \ | ||
| 10 | file://0001-Do-not-check-pointer-size-when-cross-compiling.patch \ | ||
| 11 | " | ||
| 12 | SRCREV = "3b1dbebabc801c9cf6f0953a4c20b904d444f879" | ||
| 13 | |||
| 14 | S = "${WORKDIR}/git" | ||
| 15 | |||
| 16 | BBCLASSEXTEND = "native" | ||
| 17 | |||
| 18 | EXTRA_OECMAKE = "-DPYBIND11_TEST=OFF" | ||
| 19 | |||
| 20 | inherit cmake python3native | ||
