summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python
diff options
context:
space:
mode:
authorPhilip Balister <philip@balister.org>2020-07-10 12:19:06 -0400
committerKhem Raj <raj.khem@gmail.com>2020-07-12 19:04:17 -0700
commit7ebbd785185043bed935a6f3310af3dd78461d86 (patch)
tree0c626663ea406246f7ea53d52b24f89fbe3174cf /meta-python/recipes-devtools/python
parent66793d35421bdf7d945152b3bffd52d66115f268 (diff)
downloadmeta-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')
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-check-pointer-size-when-cross-compiling.patch30
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch39
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11_2.5.0.bb17
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 @@
1From 3abfa65517959ad279481021fafefba28f955e76 Mon Sep 17 00:00:00 2001
2From: Philip Balister <philip@balister.org>
3Date: Fri, 10 Jul 2020 10:14:59 -0400
4Subject: [PATCH] Do not check pointer size when cross compiling.
5
6It 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
10Signed-off-by: Philip Balister <philip@balister.org>
11---
12 tools/FindPythonLibsNew.cmake | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/tools/FindPythonLibsNew.cmake b/tools/FindPythonLibsNew.cmake
16index 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--
292.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 @@
1From 918f3ef01c7a67f3beb67307966698474f144581 Mon Sep 17 00:00:00 2001
2From: Philip Balister <philip@balister.org>
3Date: Wed, 8 Jul 2020 09:41:43 -0400
4Subject: [PATCH] Do not strip binaries.
5
6 * OpenEmbedded strips them after creating debug packages.
7
8Signed-off-by: Philip Balister <philip@balister.org>
9---
10 tools/pybind11Tools.cmake | 13 -------------
11 1 file changed, 13 deletions(-)
12
13diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake
14index 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--
382.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"
3LICENSE = "BSD-2-Clause" 3LICENSE = "BSD-2-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=beb87117af69fd10fbf9fb14c22a2e62"
5 5
6SRC_URI[md5sum] = "5355e1fd05c8eedef19cc9bfd3d82a77" 6DEPENDS = "boost"
7SRC_URI[sha256sum] = "ea5a4e7a880112915463826f1acbec5892df36dfe102ecb249229ac514fb54ad"
8 7
9inherit pypi setuptools3 8SRC_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 "
12SRCREV = "3b1dbebabc801c9cf6f0953a4c20b904d444f879"
13
14S = "${WORKDIR}/git"
15
16BBCLASSEXTEND = "native"
17
18EXTRA_OECMAKE = "-DPYBIND11_TEST=OFF"
19
20inherit cmake python3native