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>
This commit is contained in:
Philip Balister
2020-07-10 12:19:06 -04:00
committed by Khem Raj
parent 66793d3542
commit 7ebbd78518
3 changed files with 83 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
From 3abfa65517959ad279481021fafefba28f955e76 Mon Sep 17 00:00:00 2001
From: Philip Balister <philip@balister.org>
Date: Fri, 10 Jul 2020 10:14:59 -0400
Subject: [PATCH] Do not check pointer size when cross compiling.
It is reasonable to build for 32 machine on a 64 bit build machine. Prevents:
| CMake Error at tools/FindPythonLibsNew.cmake:127 (message):
| Python config failure: Python is 64-bit, chosen compiler is 32-bit
Signed-off-by: Philip Balister <philip@balister.org>
---
tools/FindPythonLibsNew.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/FindPythonLibsNew.cmake b/tools/FindPythonLibsNew.cmake
index d0c8fa2..8479e70 100644
--- a/tools/FindPythonLibsNew.cmake
+++ b/tools/FindPythonLibsNew.cmake
@@ -123,7 +123,7 @@ list(GET _PYTHON_VALUES 9 PYTHON_MULTIARCH)
# Make sure the Python has the same pointer-size as the chosen compiler
# Skip if CMAKE_SIZEOF_VOID_P is not defined
-if(CMAKE_SIZEOF_VOID_P AND (NOT "${PYTHON_SIZEOF_VOID_P}" STREQUAL "${CMAKE_SIZEOF_VOID_P}"))
+if((NOT CMAKE_CROSSCOMPILING) AND CMAKE_SIZEOF_VOID_P AND (NOT "${PYTHON_SIZEOF_VOID_P}" STREQUAL "${CMAKE_SIZEOF_VOID_P}"))
if(PythonLibsNew_FIND_REQUIRED)
math(EXPR _PYTHON_BITS "${PYTHON_SIZEOF_VOID_P} * 8")
math(EXPR _CMAKE_BITS "${CMAKE_SIZEOF_VOID_P} * 8")
--
2.25.4

View File

@@ -0,0 +1,39 @@
From 918f3ef01c7a67f3beb67307966698474f144581 Mon Sep 17 00:00:00 2001
From: Philip Balister <philip@balister.org>
Date: Wed, 8 Jul 2020 09:41:43 -0400
Subject: [PATCH] Do not strip binaries.
* OpenEmbedded strips them after creating debug packages.
Signed-off-by: Philip Balister <philip@balister.org>
---
tools/pybind11Tools.cmake | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake
index a3603ab..b4c8f63 100644
--- a/tools/pybind11Tools.cmake
+++ b/tools/pybind11Tools.cmake
@@ -230,19 +230,6 @@ function(pybind11_add_module target_name)
_pybind11_add_lto_flags(${target_name} ${ARG_THIN_LTO})
- if (NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo)
- # Strip unnecessary sections of the binary on Linux/Mac OS
- if(CMAKE_STRIP)
- if(APPLE)
- add_custom_command(TARGET ${target_name} POST_BUILD
- COMMAND ${CMAKE_STRIP} -x $<TARGET_FILE:${target_name}>)
- else()
- add_custom_command(TARGET ${target_name} POST_BUILD
- COMMAND ${CMAKE_STRIP} $<TARGET_FILE:${target_name}>)
- endif()
- endif()
- endif()
-
if(MSVC)
# /MP enables multithreaded builds (relevant when there are many files), /bigobj is
# needed for bigger binding projects due to the limit to 64k addressable sections
--
2.25.4