python3Packages.pyside6-qtads: init at 4.3.1.1

This commit is contained in:
Spencer Pogorzelski
2025-03-22 21:01:24 +01:00
committed by Fabian Affolter
parent f4b669e5d0
commit 5c3886014d
3 changed files with 125 additions and 0 deletions
@@ -0,0 +1,80 @@
{
buildPythonPackage,
cmake-build-extension,
fetchFromGitHub,
lib,
pythonRelaxDepsHook,
pyside6,
qt6,
setuptools,
setuptools-scm,
shiboken6,
}:
buildPythonPackage rec {
pname = "pyside6-qtads";
version = "4.3.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "mborgerson";
repo = "pyside6_qtads";
rev = "v${version}";
hash = "sha256-WSthRtK9IaRDDFEtGMUsQwylD+iGdsZM2vkXBjt8+mI=";
fetchSubmodules = true;
};
# bypass the broken parts of their bespoke python script cmake plugin
patches = [ ./find-nix-deps.patch ];
postPatch = ''
substituteInPlace setup.py \
--replace-fail @shiboken6@ ${shiboken6} \
--replace-fail @pyside6@ ${pyside6}
# can't use pythonRelaxDepsHook because it runs postBuild but the dependency check
# happens during build.
# -Essentials is a smaller version of PySide6, but the name mismatch breaks build
# _generator is also a virtual package with the same issue
substituteInPlace pyproject.toml \
--replace-warn 'PySide6-Essentials' "" \
--replace-warn 'shiboken6_generator' "" \
--replace-quiet '"",' "" \
--replace-quiet '""' ""
'';
buildInputs = [
qt6.qtbase
qt6.qtquick3d
];
nativeBuildInputs = [
pythonRelaxDepsHook
];
build-system = [
cmake-build-extension
setuptools
setuptools-scm
];
dependencies = [
pyside6
shiboken6
];
# cmake-build-extension will configure
dontUseCmakeConfigure = true;
dontWrapQtApps = true;
# runtime deps check fails on the pyside6-essentials virtual package
dontCheckRuntimeDeps = true;
pythonImportsCheck = [ "PySide6QtAds" ];
meta = {
description = "Python bindings to Qt Advanced Docking System for PySide6";
homepage = "https://github.com/mborgerson/pyside6_qtads";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ scoder12 ];
};
}
@@ -0,0 +1,43 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0c0568a..f12d50e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -105,15 +105,17 @@ macro(pyside_config option output_var)
endmacro()
# Query for the shiboken generator path, Python path, include paths and linker flags.
+find_package(Shiboken6 REQUIRED)
+find_package(PySide6 REQUIRED)
pyside_config(--shiboken-module-path shiboken_module_path)
-pyside_config(--shiboken-generator-path shiboken_generator_path)
-pyside_config(--pyside-path pyside_path)
-pyside_config(--pyside-include-path pyside_include_dir 1)
+set(shiboken_generator_path "" CACHE PATH "Path where shiboken6 executable can be found")
+set(pyside_path "" CACHE PATH "pyside share path, where typesystems dir can be found")
+get_target_property(pyside_include_dir PySide6::pyside6 INTERFACE_INCLUDE_DIRECTORIES)
pyside_config(--python-include-path python_include_dir)
-pyside_config(--shiboken-generator-include-path shiboken_include_dir 1)
-pyside_config(--shiboken-module-shared-libraries-cmake shiboken_shared_libraries 0)
+get_target_property(shiboken_include_dir Shiboken6::libshiboken INTERFACE_INCLUDE_DIRECTORIES)
+get_target_property(shiboken_shared_libraries Shiboken6::libshiboken IMPORTED_LOCATION_RELEASE)
pyside_config(--python-link-flags-cmake python_linking_data 0)
-pyside_config(--pyside-shared-libraries-cmake pyside_shared_libraries 0)
+get_target_property(pyside_shared_libraries PySide6::pyside6 IMPORTED_LOCATION_RELEASE)
set(shiboken_path "${shiboken_generator_path}/shiboken6${CMAKE_EXECUTABLE_SUFFIX}")
if(NOT EXISTS ${shiboken_path})
diff --git a/setup.py b/setup.py
index 802821b..f522818 100644
--- a/setup.py
+++ b/setup.py
@@ -88,7 +88,9 @@ setuptools.setup(
"-DBUILD_STATIC:BOOL=ON",
"-DADS_VERSION=4.3.0",
f"-DPython3_ROOT_DIR={Path(sys.prefix)}",
- f"-DPython_EXECUTABLE={Path(sys.executable)}"
+ f"-DPython_EXECUTABLE={Path(sys.executable)}",
+ "-Dshiboken_generator_path=@shiboken6@/bin",
+ "-Dpyside_path=@pyside6@/share/PySide6"
],
py_limited_api=True
),
+2
View File
@@ -13011,6 +13011,8 @@ self: super: with self; {
inherit (pkgs) cmake ninja;
});
pyside6-qtads = callPackage ../development/python-modules/pyside6-qtads { };
pysigma = callPackage ../development/python-modules/pysigma { };
pysigma-backend-elasticsearch = callPackage ../development/python-modules/pysigma-backend-elasticsearch { };