Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Commit 91c9d8a

Browse files
committed
Add recipe and pyi
1 parent a585144 commit 91c9d8a

4 files changed

Lines changed: 397 additions & 8 deletions

File tree

CMakeLists.txt

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ set(generated_sources
4949
)
5050

5151
# ================================== Shiboken detection ======================================
52-
if(NOT python_interpreter)
53-
find_program(python_interpreter "python")
52+
if(NOT PYTHON_EXECUTABLE)
53+
find_program(PYTHON_EXECUTABLE "python")
5454
endif()
55-
message(STATUS "Using python interpreter: ${python_interpreter}")
55+
message(STATUS "Using python interpreter: ${PYTHON_EXECUTABLE}")
5656

5757
find_package(Shiboken2 2.0.0 REQUIRED)
5858
find_package(Shiboken2 COMPONENTS libshiboken REQUIRED)
@@ -137,15 +137,34 @@ target_link_libraries(${bindings_library} PRIVATE ${SHIBOKEN_LIBRARY})
137137
target_link_libraries(${bindings_library} PRIVATE ${ADS_LINK_LIBRARIES})
138138
target_link_libraries(${bindings_library} PRIVATE ${ADS_LIBRARY})
139139

140+
if (UNIX)
141+
target_link_libraries(qmn PUBLIC qtadvanceddocking PySide2::pyside2)
142+
endif()
143+
140144
# Adjust the name of generated module.
141145
set_property(TARGET ${bindings_library} PROPERTY PREFIX "")
142-
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
143-
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
144146
if(WIN32)
147+
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
148+
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
145149
set_property(TARGET ${bindings_library} PROPERTY SUFFIX "${PYTHON_CONFIG_SUFFIX}.pyd")
150+
else()
151+
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
152+
"${bindings_library}${PYTHON_CONFIG_SUFFIX}")
146153
endif()
147154

148155
# Make sure the linker doesn't complain about not finding Python symbols on macOS.
149156
if(APPLE)
150157
set_target_properties(${bindings_library} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
151-
endif(APPLE)
158+
endif(APPLE)
159+
160+
161+
# =============================== CMake target - pyi =============================
162+
set(generate_pyi_options QtAds --sys-path
163+
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/../..")
164+
165+
# Add target to generate pyi file, which depends on the module target.
166+
add_custom_target("${bindings_library}_pyi" ALL
167+
COMMAND ${CMAKE_COMMAND} -E env ${ld_prefix}
168+
"${PYTHON_EXECUTABLE}"
169+
"${CMAKE_CURRENT_SOURCE_DIR}/support/generate_pyi.py" ${generate_pyi_options})
170+
add_dependencies("${bindings_library}_pyi" ${bindings_library})

glue/cdockwidget.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ ads::CDockWidget::FactoryFunc callback = [callable](QWidget* widget) -> QWidget
1111
PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QWidget*](widget));
1212
PyObject *ret(PyObject_CallObject(callable, arglist));
1313
QWidget *w = static_cast<QWidget *>(Shiboken::Conversions::cppPointer(SbkPySide2_QtWidgetsTypes[SBK_QWIDGET_IDX], reinterpret_cast<SbkObject *>(ret)));
14-
return w;
1514
return w;
1615

1716
};
18-
ads::CDockWidget::FactoryFunc func = callback;
1917
%CPPSELF.%FUNCTION_NAME(callback);
2018
// @snippet cdockwidget-setwidgetfactory

recipe/meta.yaml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{% set version = "3.8.2" %}
2+
3+
package:
4+
name: pyside2ads
5+
version: {{ version }}
6+
7+
source:
8+
path: ../
9+
10+
build:
11+
number: 0
12+
script: python -m pip install . -vvv
13+
14+
requirements:
15+
build:
16+
- cmake>=3.13
17+
- {{ compiler('c') }}
18+
- {{ compiler('cxx') }}
19+
- clangdev
20+
21+
host:
22+
- python {{ python }}
23+
- qt
24+
- qtadvanceddocking
25+
- pyside2
26+
- mesalib # [unix]
27+
28+
run:
29+
- python
30+
- qtadvanceddocking
31+
- pyside2
32+
33+
test:
34+
imports:
35+
- PySide2Ads
36+
- PySide2Ads.QtAds
37+
38+
about:
39+
home: https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
40+
license: LGPL-2.1-only
41+
license_file: LICENSE
42+
summary: PySide2 binding for Qt-Advanced-Docking-System
43+
44+
extra:
45+
recipe-maintainers:
46+
- n-elie

0 commit comments

Comments
 (0)