mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
more meaningful example.
This commit is contained in:
parent
40c303614d
commit
6f16a53705
5 changed files with 54 additions and 7 deletions
|
@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.12)
|
||||||
cmake_policy(VERSION 3.12)
|
cmake_policy(VERSION 3.12)
|
||||||
|
|
||||||
find_package(ECM 5 REQUIRED CONFIG)
|
find_package(ECM 5 REQUIRED CONFIG)
|
||||||
find_package(Qt5 COMPONENTS Core REQUIRED)
|
find_package(Qt5 COMPONENTS Core Gui REQUIRED)
|
||||||
|
|
||||||
get_target_property(QtCore_location Qt5::Core LOCATION)
|
get_target_property(QtCore_location Qt5::Core LOCATION)
|
||||||
get_filename_component(QtCore_libdir ${QtCore_location} DIRECTORY)
|
get_filename_component(QtCore_libdir ${QtCore_location} DIRECTORY)
|
||||||
|
@ -18,7 +18,7 @@ set(bindings_library "Shiboken2QtExample")
|
||||||
set(wrapped_header ${CMAKE_SOURCE_DIR}/bindings.h)
|
set(wrapped_header ${CMAKE_SOURCE_DIR}/bindings.h)
|
||||||
set(typesystem_file ${CMAKE_SOURCE_DIR}/bindings.xml)
|
set(typesystem_file ${CMAKE_SOURCE_DIR}/bindings.xml)
|
||||||
set(generated_sources
|
set(generated_sources
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/qobjectwithenum_wrapper.cpp
|
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/kcarddeck_wrapper_wrapper.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/shiboken2qtexample_module_wrapper.cpp)
|
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/shiboken2qtexample_module_wrapper.cpp)
|
||||||
|
|
||||||
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
|
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
|
||||||
|
@ -72,12 +72,15 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
set(${sample_library}_sources qobjectwithenum.cpp)
|
set(${sample_library}_sources qobjectwithenum.cpp)
|
||||||
add_library(${sample_library} SHARED ${${sample_library}_sources})
|
add_library(${sample_library} SHARED ${${sample_library}_sources})
|
||||||
target_link_libraries(${sample_library} Qt5::Core)
|
target_link_libraries(${sample_library} Qt5::Core Qt5::Gui)
|
||||||
set_property(TARGET ${sample_library} PROPERTY PREFIX "")
|
set_property(TARGET ${sample_library} PROPERTY PREFIX "")
|
||||||
|
|
||||||
|
get_target_property(qtgui_lib_includes Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
list(JOIN qtgui_lib_includes ";-I" lib2_includes)
|
||||||
get_target_property(qtcore_lib_includes Qt5::Core INTERFACE_INCLUDE_DIRECTORIES)
|
get_target_property(qtcore_lib_includes Qt5::Core INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
list(JOIN qtcore_lib_includes ";-I" lib_includes)
|
list(JOIN qtcore_lib_includes ";-I" lib_includes)
|
||||||
set(lib_includes "-I${lib_includes}")
|
set(lib_includes "-I${lib_includes}" "-I${lib2_includes}")
|
||||||
|
|
||||||
|
|
||||||
target_compile_definitions(${sample_library} PRIVATE BINDINGS_BUILD)
|
target_compile_definitions(${sample_library} PRIVATE BINDINGS_BUILD)
|
||||||
|
|
||||||
|
@ -87,6 +90,9 @@ set(shiboken_options --generator-set=shiboken --enable-parent-ctor-heuristic
|
||||||
--avoid-protected-hack
|
--avoid-protected-hack
|
||||||
--enable-pyside-extensions
|
--enable-pyside-extensions
|
||||||
-T/usr/share/PySide2/typesystems/
|
-T/usr/share/PySide2/typesystems/
|
||||||
|
-I"${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame"
|
||||||
|
-I"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame"
|
||||||
|
-I"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/include"
|
||||||
${lib_includes}
|
${lib_includes}
|
||||||
-I${CMAKE_SOURCE_DIR}
|
-I${CMAKE_SOURCE_DIR}
|
||||||
-T${CMAKE_SOURCE_DIR}
|
-T${CMAKE_SOURCE_DIR}
|
||||||
|
@ -109,9 +115,13 @@ set(${bindings_library}_sources ${generated_sources})
|
||||||
add_library(${bindings_library} MODULE ${${bindings_library}_sources})
|
add_library(${bindings_library} MODULE ${${bindings_library}_sources})
|
||||||
|
|
||||||
target_include_directories(${bindings_library} PRIVATE ${python_include_dir})
|
target_include_directories(${bindings_library} PRIVATE ${python_include_dir})
|
||||||
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame")
|
||||||
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame")
|
||||||
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/include")
|
||||||
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/)
|
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/)
|
||||||
target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2")
|
target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2")
|
||||||
target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2/QtCore/")
|
target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2/QtCore/")
|
||||||
|
target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2/QtGui/")
|
||||||
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/QtCore)
|
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/QtCore)
|
||||||
target_include_directories(${bindings_library} PRIVATE ${shiboken_include_dir})
|
target_include_directories(${bindings_library} PRIVATE ${shiboken_include_dir})
|
||||||
target_include_directories(${bindings_library} PRIVATE ${CMAKE_SOURCE_DIR})
|
target_include_directories(${bindings_library} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a)))
|
#define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a)))
|
||||||
|
|
||||||
#include "qobjectwithenum.h"
|
#include "kcardgame.hpp"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<typesystem package="Shiboken2QtExample">
|
<typesystem package="Shiboken2QtExample">
|
||||||
<load-typesystem name="typesystem_core.xml" generate="no"/>
|
<load-typesystem name="typesystem_core.xml" generate="no"/>
|
||||||
<object-type name="QObjectWithEnum">
|
<object-type name="KCardDeck_wrapper">
|
||||||
<enum-type name="MyEnum" />
|
|
||||||
</object-type>
|
</object-type>
|
||||||
</typesystem>
|
</typesystem>
|
||||||
|
|
20
kcardgame/binding-example/kcardgame.cpp
Normal file
20
kcardgame/binding-example/kcardgame.cpp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* A file to test imorting C modules for handling arrays to Python */
|
||||||
|
|
||||||
|
#include "kcardgame.hpp"
|
||||||
|
#include <QPixmap>
|
||||||
|
#include "KCardDeck"
|
||||||
|
#include "KCardTheme"
|
||||||
|
class KCardDeck_wrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
KCardDeck * d;
|
||||||
|
KCardDeck_wrapper()
|
||||||
|
{
|
||||||
|
d = new KCardDeck( KCardTheme(), nullptr);
|
||||||
|
}
|
||||||
|
QPixmap *get_card_pixmap(int i)
|
||||||
|
{
|
||||||
|
auto ret = new QPixmap(d->cardPixmap(i, true));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
};
|
18
kcardgame/binding-example/kcardgame.hpp
Normal file
18
kcardgame/binding-example/kcardgame.hpp
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#pragma once
|
||||||
|
#include <QPixmap>
|
||||||
|
#include "KCardDeck"
|
||||||
|
#include "KCardTheme"
|
||||||
|
class KCardDeck_wrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
KCardDeck * d;
|
||||||
|
KCardDeck_wrapper()
|
||||||
|
{
|
||||||
|
d = new KCardDeck( KCardTheme(), nullptr);
|
||||||
|
}
|
||||||
|
QPixmap *get_card_pixmap(int i)
|
||||||
|
{
|
||||||
|
auto ret = new QPixmap(d->cardPixmap(i, true));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
};
|
Loading…
Add table
Reference in a new issue