diff mbox series

[meta-python,2/3] python3-cmake: New recipe

Message ID 20230310133901.4144306-2-zboszor@gmail.com
State Under Review
Headers show
Series [meta-python,1/3] python3-scikit-build: New recipe | expand

Commit Message

Böszörményi Zoltán March 10, 2023, 1:39 p.m. UTC
Some python modules rely on "import cmake".

Only build and ship the python parts, and don't download and
build cmake from sources. Use the already built cmake instead.

The CMakeLists.txt file is a crippled copy from this cmake
python module's sources, removing almost everything, and
adding a dummy install target, so do_install() doesn't fail.

The python code is patched so cmake is used from PATH.

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
---
 .../python/python3-cmake/CMakeLists.txt       | 11 ++++++
 .../python3-cmake/run-cmake-from-path.patch   | 11 ++++++
 .../python/python3-cmake_3.25.2.bb            | 37 +++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt
 create mode 100644 meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch
 create mode 100644 meta-python/recipes-devtools/python/python3-cmake_3.25.2.bb
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt b/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt
new file mode 100644
index 000000000..8ba81970f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt
@@ -0,0 +1,11 @@ 
+cmake_minimum_required(VERSION 3.6)
+
+#
+# For more details, see docs/building.rst
+#
+
+project(CMakePythonDistributions NONE)
+
+install(CODE "
+  message(STATUS \"Install CMake project\")
+")
diff --git a/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch b/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch
new file mode 100644
index 000000000..5c38fadce
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch
@@ -0,0 +1,11 @@ 
+--- cmake-3.25.2/src/cmake/__init__.py.old	2023-03-10 09:40:43.582315753 +0100
++++ cmake-3.25.2/src/cmake/__init__.py	2023-03-10 09:41:38.030874047 +0100
+@@ -36,7 +36,7 @@
+ 
+ 
+ def _program(name, args):
+-    return subprocess.call([os.path.join(CMAKE_BIN_DIR, name)] + args, close_fds=False)
++    return subprocess.call([name] + args, close_fds=False)
+ 
+ 
+ def cmake():
diff --git a/meta-python/recipes-devtools/python/python3-cmake_3.25.2.bb b/meta-python/recipes-devtools/python/python3-cmake_3.25.2.bb
new file mode 100644
index 000000000..d0e11f9a6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake_3.25.2.bb
@@ -0,0 +1,37 @@ 
+SUMMARY = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
+LICENSE = "BSD-3-Clause & Apache-2.0"
+LIC_FILES_CHKSUM = " \
+	file://LICENSE_BSD_3;md5=9134cb61aebbdd79dd826ccb9ae6afcd \
+	file://LICENSE_Apache_20;md5=19cbd64715b51267a47bf3750cc6a8a5 \
+"
+
+DEPENDS = "ninja-native cmake-native python3-scikit-build-native"
+
+PYPI_PACKAGE = "cmake"
+PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
+
+inherit pypi python_setuptools_build_meta
+SRC_URI[sha256sum] = "bcf9f0369743278ec26961542b31ed1610e6f4cfc20c00a3f1c61985abb3b0d2"
+
+SRC_URI += " \
+	file://CMakeLists.txt \
+	file://run-cmake-from-path.patch \
+"
+
+addtask do_patchbuild after do_patch before do_configure
+
+do_patchbuild () {
+	rm -f ${S}/CMakeLists.txt
+	cp ${WORKDIR}/CMakeLists.txt ${S}/
+}
+
+do_install:append () {
+	rm -rf ${D}${bindir}
+}
+
+RDEPENDS:${PN} = " \
+	cmake \
+	python3-scikit-build \
+"
+
+BBCLASSEXTEND = "native nativesdk"