python3Packages.pyside6-qtads: init at 4.3.1.1 (#370105)

This commit is contained in:
Fabian Affolter
2025-03-22 21:35:02 +01:00
committed by GitHub
4 changed files with 175 additions and 0 deletions
@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
cmake,
fetchFromGitHub,
gitpython,
ninja,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "cmake-build-extension";
version = "0.6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "diegoferigo";
repo = "cmake-build-extension";
tag = "v${version}";
hash = "sha256-taAwxa7Sv+xc8xJRnNM6V7WPcL+TWZOkngwuqjAslzc=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
cmake
ninja
gitpython
];
dontUseCmakeConfigure = true;
pythonImportsCheck = [ "cmake_build_extension" ];
doPythonRuntimeDepsCheck = false;
meta = {
description = "Setuptools extension to build and package CMake projects";
homepage = "https://github.com/diegoferigo/cmake-build-extension";
changelog = "https://github.com/diegoferigo/cmake-build-extension/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ scoder12 ];
};
}
@@ -0,0 +1,80 @@
{
lib,
buildPythonPackage,
cmake-build-extension,
fetchFromGitHub,
pythonRelaxDepsHook,
pyside6,
qt6,
setuptools,
setuptools-scm,
shiboken6,
}:
buildPythonPackage rec {
pname = "pyside6-qtads";
version = "4.3.1.4";
pyproject = true;
src = fetchFromGitHub {
owner = "mborgerson";
repo = "pyside6_qtads";
tag = "v${version}";
hash = "sha256-02YUeD9PfcaYkvz9JX5FucsbG9Idk7OH24U+RXXEmvo=";
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
];
build-system = [
cmake-build-extension
setuptools
setuptools-scm
];
dependencies = [
pyside6
shiboken6
];
nativeBuildInputs = [ pythonRelaxDepsHook ];
# 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";
changelog = "https://github.com/mborgerson/pyside6_qtads/releases/tag/";
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
),
+4
View File
@@ -2522,6 +2522,8 @@ self: super: with self; {
cmake = callPackage ../development/python-modules/cmake { inherit (pkgs) cmake; };
cmake-build-extension = callPackage ../development/python-modules/cmake-build-extension { };
cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
cmd2 = callPackage ../development/python-modules/cmd2 { };
@@ -13009,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 { };