diff options
Diffstat (limited to 'sources/pyside6/qtexampleicons')
-rw-r--r-- | sources/pyside6/qtexampleicons/CMakeLists.txt | 52 | ||||
-rw-r--r-- | sources/pyside6/qtexampleicons/module.c | 41 |
2 files changed, 93 insertions, 0 deletions
diff --git a/sources/pyside6/qtexampleicons/CMakeLists.txt b/sources/pyside6/qtexampleicons/CMakeLists.txt new file mode 100644 index 000000000..1562f7b27 --- /dev/null +++ b/sources/pyside6/qtexampleicons/CMakeLists.txt @@ -0,0 +1,52 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.18) +cmake_policy(VERSION 3.18) + +project(QtExampleIcons) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTORCC ON) + +set(CMAKE_AUTOMOC ON) + +find_package(Qt6 COMPONENTS ExampleIconsPrivate) + +add_library(QtExampleIcons MODULE module.c) + +# See libshiboken/CMakeLists.txt +if(PYTHON_LIMITED_API) + target_compile_definitions(QtExampleIcons PRIVATE "-DPy_LIMITED_API=0x03050000") +endif() + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + if(PYTHON_WITH_DEBUG) + target_compile_definitions(QtExampleIcons PRIVATE "-DPy_DEBUG") + endif() + if (PYTHON_WITH_COUNT_ALLOCS) + target_compile_definitions(QtExampleIcons PRIVATE "-DCOUNT_ALLOCS") + endif() +elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + target_compile_definitions(QtExampleIcons PRIVATE "-DNDEBUG") +endif() + +target_include_directories(QtExampleIcons PRIVATE ${SHIBOKEN_PYTHON_INCLUDE_DIRS}) + +get_property(SHIBOKEN_PYTHON_LIBRARIES GLOBAL PROPERTY shiboken_python_libraries) + +target_link_libraries(QtExampleIcons PRIVATE + Qt::ExampleIconsPrivate + ${SHIBOKEN_PYTHON_LIBRARIES}) + +set_target_properties(QtExampleIcons PROPERTIES + PREFIX "" + OUTPUT_NAME "QtExampleIcons${SHIBOKEN_PYTHON_EXTENSION_SUFFIX}" + LIBRARY_OUTPUT_DIRECTORY "${pyside6_BINARY_DIR}") + +if(WIN32) + set_property(TARGET QtExampleIcons PROPERTY SUFFIX ".pyd") +endif() + +install(TARGETS QtExampleIcons LIBRARY DESTINATION "${PYTHON_SITE_PACKAGES}/PySide6") diff --git a/sources/pyside6/qtexampleicons/module.c b/sources/pyside6/qtexampleicons/module.c new file mode 100644 index 000000000..814204f1a --- /dev/null +++ b/sources/pyside6/qtexampleicons/module.c @@ -0,0 +1,41 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include <Python.h> + +#if defined _WIN32 +# define MODULE_EXPORT __declspec(dllexport) +#else +# define MODULE_EXPORT __attribute__ ((visibility("default"))) +#endif + +static PyMethodDef QtExampleIconsMethods[] = { + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef moduleDef = { + /* m_base */ PyModuleDef_HEAD_INIT, + /* m_name */ "QtExampleIcons", + /* m_doc */ NULL, + /* m_size */ -1, + /* m_methods */ QtExampleIconsMethods, + /* m_reload */ NULL, + /* m_traverse */ NULL, + /* m_clear */ NULL, + /* m_free */ NULL +}; + +MODULE_EXPORT PyObject *PyInit_QtExampleIcons(void) +{ + return PyModule_Create(&moduleDef); +} + +int main(int argc, char *argv[]) +{ +#ifndef PYPY_VERSION + Py_SetProgramName(L"module-test"); + Py_Initialize(); +#endif + PyInit_QtExampleIcons(); + return 0; +} |