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

Commit

Permalink
Add recipe and pyi
Browse files Browse the repository at this point in the history
  • Loading branch information
n-elie committed May 10, 2022
1 parent a585144 commit 91c9d8a
Show file tree
Hide file tree
Showing 4 changed files with 397 additions and 8 deletions.
31 changes: 25 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ set(generated_sources
)

# ================================== Shiboken detection ======================================
if(NOT python_interpreter)
find_program(python_interpreter "python")
if(NOT PYTHON_EXECUTABLE)
find_program(PYTHON_EXECUTABLE "python")
endif()
message(STATUS "Using python interpreter: ${python_interpreter}")
message(STATUS "Using python interpreter: ${PYTHON_EXECUTABLE}")

find_package(Shiboken2 2.0.0 REQUIRED)
find_package(Shiboken2 COMPONENTS libshiboken REQUIRED)
Expand Down Expand Up @@ -137,15 +137,34 @@ target_link_libraries(${bindings_library} PRIVATE ${SHIBOKEN_LIBRARY})
target_link_libraries(${bindings_library} PRIVATE ${ADS_LINK_LIBRARIES})
target_link_libraries(${bindings_library} PRIVATE ${ADS_LIBRARY})

if (UNIX)
target_link_libraries(qmn PUBLIC qtadvanceddocking PySide2::pyside2)
endif()

# Adjust the name of generated module.
set_property(TARGET ${bindings_library} PROPERTY PREFIX "")
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
if(WIN32)
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
set_property(TARGET ${bindings_library} PROPERTY SUFFIX "${PYTHON_CONFIG_SUFFIX}.pyd")
else()
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
"${bindings_library}${PYTHON_CONFIG_SUFFIX}")
endif()

# Make sure the linker doesn't complain about not finding Python symbols on macOS.
if(APPLE)
set_target_properties(${bindings_library} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
endif(APPLE)
endif(APPLE)


# =============================== CMake target - pyi =============================
set(generate_pyi_options QtAds --sys-path
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/../..")

# Add target to generate pyi file, which depends on the module target.
add_custom_target("${bindings_library}_pyi" ALL
COMMAND ${CMAKE_COMMAND} -E env ${ld_prefix}
"${PYTHON_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/support/generate_pyi.py" ${generate_pyi_options})
add_dependencies("${bindings_library}_pyi" ${bindings_library})
2 changes: 0 additions & 2 deletions glue/cdockwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ ads::CDockWidget::FactoryFunc callback = [callable](QWidget* widget) -> QWidget
PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QWidget*](widget));
PyObject *ret(PyObject_CallObject(callable, arglist));
QWidget *w = static_cast<QWidget *>(Shiboken::Conversions::cppPointer(SbkPySide2_QtWidgetsTypes[SBK_QWIDGET_IDX], reinterpret_cast<SbkObject *>(ret)));
return w;
return w;

};
ads::CDockWidget::FactoryFunc func = callback;
%CPPSELF.%FUNCTION_NAME(callback);
// @snippet cdockwidget-setwidgetfactory
46 changes: 46 additions & 0 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{% set version = "3.8.2" %}

package:
name: pyside2ads
version: {{ version }}

source:
path: ../

build:
number: 0
script: python -m pip install . -vvv

requirements:
build:
- cmake>=3.13
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- clangdev

host:
- python {{ python }}
- qt
- qtadvanceddocking
- pyside2
- mesalib # [unix]

run:
- python
- qtadvanceddocking
- pyside2

test:
imports:
- PySide2Ads
- PySide2Ads.QtAds

about:
home: https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
license: LGPL-2.1-only
license_file: LICENSE
summary: PySide2 binding for Qt-Advanced-Docking-System

extra:
recipe-maintainers:
- n-elie
Loading

0 comments on commit 91c9d8a

Please sign in to comment.