blob: 474f0f1584b5f9f28f28332dac02cc6d12ba0599 [file] [log] [blame]
From 30c79d1b49839a15c05a0d0ca7e54787cd7988c6 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 4 May 2023 07:17:57 +0000
Subject: [PATCH] CMakeLists.txt: allow to set PYTHON_INSTDIR from outside
CMakeLists.txt used:
find_package(Python REQUIRED COMPONENTS Interpreter)
execute_process(
COMMAND ${Python_EXECUTABLE} -c
"import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
OUTPUT_VARIABLE PYTHON_INSTDIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
but with python3native this returns:
nanopb/0.4.7-r0/git $ ../recipe-sysroot-native/usr/bin/python3-native/python3 -c "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
lib/python3.11/site-packages
which doesn't respect target libdir which might be lib64 with multilib and with python3targetconfig
it also doesn't work right because of the long relative path:
nanopb/0.4.7-r0/build $ ../recipe-sysroot-native/usr/bin/python3-native/python3 -c "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
../../../../../../../../../../../../usr/lib64/python3.11/site-packages
CMake Error at cmake_install.cmake:46 (file):
file cannot create directory:
/OE/lge/build/starfish/nanbield/BUILD/work/o22-starfish-linux/nanopb/0.4.7-r0/image/usr/../../../../../../../../../../../../usr/lib64/python3.11/site-packages/proto.
Maybe need administrative privileges.
Let CMake variable to be passed from the recipe to avoid this as we're already using
${D}${PYTHON_SITEPACKAGES_DIR} in do_install:append anyway.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Upstream-Status: Pending
---
CMakeLists.txt | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d241c5..7d3f993 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,13 +39,15 @@ if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR)
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/nanopb")
endif()
-find_package(Python REQUIRED COMPONENTS Interpreter)
-execute_process(
- COMMAND ${Python_EXECUTABLE} -c
- "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
- OUTPUT_VARIABLE PYTHON_INSTDIR
- OUTPUT_STRIP_TRAILING_WHITESPACE
-)
+if(NOT DEFINED PYTHON_INSTDIR)
+ find_package(Python REQUIRED COMPONENTS Interpreter)
+ execute_process(
+ COMMAND ${Python_EXECUTABLE} -c
+ "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
+ OUTPUT_VARIABLE PYTHON_INSTDIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+endif()
if(nanopb_BUILD_GENERATOR)
set(generator_protos nanopb)