aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/qtexampleicons
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/qtexampleicons')
-rw-r--r--sources/pyside6/qtexampleicons/CMakeLists.txt52
-rw-r--r--sources/pyside6/qtexampleicons/module.c41
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;
+}