aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedrich W. H. Kossebau <kossebau@kde.org>2022-02-16 17:16:37 +0100
committerFriedrich W. H. Kossebau <kossebau@kde.org>2022-02-25 23:52:26 +0000
commit4a1710762b0a53d6a35e6d0cb630b9037a853c63 (patch)
treed6791446e76652f403ea3b13bc334df2ab244387
parentf446af2aa592997f6bc4aa3b5559cf477f9259f8 (diff)
downloadkconfig-4a1710762b0a53d6a35e6d0cb630b9037a853c63.tar.gz
kconfig-4a1710762b0a53d6a35e6d0cb630b9037a853c63.tar.bz2
Remove broken Python bindings generation
pyqt broke sip4 compatibility in 5.15.6, and there is no more maintainer of the KF Python bindings to fix things. Future support might need different code, so no advantage in keeping the old code around.
-rw-r--r--autotests/pythontest.py28
-rw-r--r--cmake/rules_PyKF5.py287
-rw-r--r--src/core/CMakeLists.txt23
-rw-r--r--src/gui/CMakeLists.txt23
4 files changed, 0 insertions, 361 deletions
diff --git a/autotests/pythontest.py b/autotests/pythontest.py
deleted file mode 100644
index 2a51ed44..00000000
--- a/autotests/pythontest.py
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env python
-#-*- coding: utf-8 -*-
-
-from __future__ import print_function
-
-import sys
-
-sys.path.append(sys.argv[1])
-
-from PyQt5 import QtCore
-from PyQt5 import QtGui
-from PyQt5 import QtWidgets
-
-from PyKF5 import KConfigCore
-from PyKF5 import KConfigGui
-
-def main():
- app = QtWidgets.QApplication(sys.argv)
-
- kcg = KConfigCore.KConfigGroup();
-
- assert(not kcg.isValid())
-
- sc = KConfigGui.KStandardShortcut.open()
- assert(sc == [QtGui.QKeySequence("CTRL+O")])
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/cmake/rules_PyKF5.py b/cmake/rules_PyKF5.py
deleted file mode 100644
index 1238aea8..00000000
--- a/cmake/rules_PyKF5.py
+++ /dev/null
@@ -1,287 +0,0 @@
-#
-# SPDX-FileCopyrightText: 2016 Shaheed Haque <srhaque@theiet.org>
-# SPDX-FileCopyrightText: 2016 Stephen Kelly <steveire@gmail.com>
-#
-# SPDX-License-Identifier: BSD-3-Clause
-
-
-import os, sys
-
-import rules_engine
-sys.path.append(os.path.dirname(os.path.dirname(rules_engine.__file__)))
-import Qt5Ruleset
-
-from copy import deepcopy
-
-from clang.cindex import AccessSpecifier, CursorKind
-
-def set_skeleton_item_base(container, sip, matcher):
- if not sip["base_specifiers"] or sip["base_specifiers"][-1].endswith(">"):
- sip["base_specifiers"] = ["KConfigSkeletonItem"]
-
-def set_skeleton_item_base_gui(container, sip, matcher):
- sip["base_specifiers"] = ["KConfigSkeletonItem"]
-
-def mark_and_discard_QSharedData(container, sip, matcher):
- rules_engine.container_mark_abstract(container, sip, matcher)
- rules_engine.discard_QSharedData_base(container, sip, matcher)
-
-def discard_base(container, sip, matcher):
- sip["base_specifiers"] = []
-
-def local_container_rules():
- return [
- [".*", "KConfigBase", ".*", ".*", ".*", rules_engine.container_mark_abstract],
-
- [".*KCoreConfigSkeleton.*", ".*ItemString", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemUrl", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemProperty", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemBool", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemInt", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemLongLong", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemUInt", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemULongLong", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemDouble", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemRect", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemPoint", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemSize", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemDateTime", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemStringList", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemUrlList", ".*", ".*", ".*", set_skeleton_item_base],
- [".*KCoreConfigSkeleton.*", ".*ItemIntList", ".*", ".*", ".*", set_skeleton_item_base],
-
- ["KConfigSkeleton", "ItemColor", ".*", ".*", ".*", set_skeleton_item_base_gui],
- ["KConfigSkeleton", "ItemFont", ".*", ".*", ".*", set_skeleton_item_base_gui],
-
- [".*", "KSharedConfig", ".*", ".*", ".*", rules_engine.discard_QSharedData_base],
-
- [".*", "KConfigCompilerSignallingItem", ".*", ".*", ".*", rules_engine.container_discard],
-
- [".*", "KEntryMap", ".*", ".*", ".*", discard_base],
- ]
-
-def local_function_rules():
- return [
- ["KConfigBase", "group", ".*", ".*", ".*const char.*", rules_engine.function_discard],
- ["KConfigBase", "group", ".*", ".*", ".*QByteArray.*", rules_engine.function_discard],
- ["KConfigBase", "group", ".*", "const KConfigGroup", ".*", rules_engine.function_discard],
-
- ["KConfigBase", "groupImpl", ".*", "const KConfigGroup", ".*", rules_engine.function_discard],
- ["KConfig", "groupImpl", ".*", "const KConfigGroup", ".*", rules_engine.function_discard],
-
- ["KSharedConfig", "openConfig", ".*", ".*", ".*", rules_engine.function_discard],
- ["KSharedConfig", "openStateConfig", ".*", ".*", ".*", rules_engine.function_discard],
-
- ["KConfigGroup", "KConfigGroup", ".*", ".*", ".*KConfigBase.*", rules_engine.function_discard],
- ["KConfigGroup", "config", ".*", "const KConfig.*", ".*", rules_engine.function_discard],
- ["KConfigGroup", "moveValuesTo", ".*", ".*", ".*", rules_engine.function_discard],
-
- ["KConfigWatcher", "config", ".*", "KSharedConfig::Ptr", ".*", rules_engine.function_discard],
-
- ["KDesktopFile", ".*", ".*", "const KConfigGroup", ".*", rules_engine.function_discard],
-
- ["KConfigGroup", ".*", ".*", "KConfigGroup", ".*", rules_engine.function_discard],
-
- ["KCoreConfigSkeleton", "config", ".*", "const KConfig.*", ".*", rules_engine.function_discard],
- ["KCoreConfigSkeleton", "sharedConfig", ".*", ".*", ".*", rules_engine.function_discard],
-
- ["KEntryMap", "getEntryOption", ".*", ".*", ".*", rules_engine.function_discard],
- ["KEntryMap", "setEntryOption", ".*", ".*", ".*", rules_engine.function_discard],
- ["KEntryMap", "findEntry", ".*", ".*", ".*", rules_engine.function_discard],
- ["KEntryMap", "findExactEntry", ".*", ".*", ".*", rules_engine.function_discard],
- ]
-
-def local_typedef_rules():
- return [
- ["KConfigSkeletonItem", "DictIterator", rules_engine.typedef_discard],
- [".*", "KEntryMapIterator", rules_engine.typedef_discard],
- [".*", "KEntryMapConstIterator", rules_engine.typedef_discard],
- ]
-
-
-def _kcoreconfigskeleton_item_xxx(function, sip, entry):
- sip["code"] = """
- %MethodCode
- sipCpp = new sipKCoreConfigSkeleton_Item{} (*a0, *a1, a2, a3);
- %End
- """.replace("{}", entry["ctx"])
- sip["parameters"][2] = sip["parameters"][2].replace("&", "")
-
-
-def _kcoreconfigskeleton_item_enum(function, sip, entry):
- sip["code"] = """
- %MethodCode
- sipCpp = new sipKCoreConfigSkeleton_ItemEnum (*a0, *a1, a2, *a3, a4);
- %End
- """.replace("{}", entry["ctx"])
- sip["parameters"][2] = sip["parameters"][2].replace("&", "")
-
-
-def _kcoreconfigskeleton_add_item_xxx(function, sip, entry):
- sip["code"] = """
- %MethodCode
- sipRes = new PyItem{} (sipCpp->currentGroup(), a3->isNull() ? *a0 : *a3, a1, a2);
- sipCpp->addItem(sipRes, *a0);
- %End
- """.format(entry["ctx"])
-
-def _kcoreconfigskeleton_item_add_py_subclass(filename, sip, entry):
- result = """
-%ModuleHeaderCode
-#include <kcoreconfigskeleton.h>
-"""
- for ctx in ({"Type": "Bool", "cpptype": "bool", "defaultValue": 1},
- {"Type": "Int", "cpptype": "qint32", "defaultValue": 1},
- {"Type": "UInt", "cpptype": "quint32", "defaultValue": 1},
- {"Type": "LongLong", "cpptype": "qint64", "defaultValue": 1},
- {"Type": "ULongLong", "cpptype": "quint64", "defaultValue": 1},
- {"Type": "Double", "cpptype": "double", "defaultValue": 1},
- ):
- result += """
-class PyItem{Type} : public KCoreConfigSkeleton::Item{Type}
-{{
-public:
- PyItem{Type} (const QString &group, const QString &key, {cpptype}& val, {cpptype} defaultValue = {defaultValue}) :
- KCoreConfigSkeleton::Item{Type} (group, key, this->value, defaultValue),
- value(val)
- {{
- }}
-
-private:
- {cpptype} value;
-}};
-""".format(**ctx)
-
- result += """
-class PyItemEnum : public KCoreConfigSkeleton::ItemEnum
-{
-public:
- PyItemEnum (const QString& group, const QString& key, int& val, const QList<KCoreConfigSkeleton::ItemEnum::Choice>& choices, int defaultValue = 0) :
- KCoreConfigSkeleton::ItemEnum(group, key, this->value, choices, defaultValue),
- value(val)
- {
- };
-
-private:
- int value;
-};
-%End\n
-"""
-
- sip["code"] = result
-
-
-class RuleSet(Qt5Ruleset.RuleSet):
- def __init__(self):
- Qt5Ruleset.RuleSet.__init__(self)
- self._fn_db = rules_engine.FunctionRuleDb(lambda: local_function_rules() + Qt5Ruleset.function_rules())
- self._container_db = rules_engine.ContainerRuleDb(lambda: local_container_rules() + Qt5Ruleset.container_rules())
- self._typedef_db = rules_engine.TypedefRuleDb(lambda: local_typedef_rules() + Qt5Ruleset.typedef_rules())
- self._methodcode = rules_engine.MethodCodeDb({
- "KCoreConfigSkeleton::ItemBool":
- {
- "ItemBool":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "Bool",
- },
- },
- "KCoreConfigSkeleton::ItemInt":
- {
- "ItemInt":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "Int",
- },
- },
- "KCoreConfigSkeleton::ItemLongLong":
- {
- "ItemLongLong":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "LongLong",
- },
- },
- "KCoreConfigSkeleton::ItemEnum":
- {
- "ItemEnum":
- {
- "code": _kcoreconfigskeleton_item_enum,
- "ctx": "Enum",
- },
- },
- "KCoreConfigSkeleton::ItemUInt":
- {
- "ItemUInt":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "UInt",
- },
- },
- "KCoreConfigSkeleton::ItemULongLong":
- {
- "ItemULongLong":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "ULongLong",
- },
- },
- "KCoreConfigSkeleton::ItemDouble":
- {
- "ItemDouble":
- {
- "code": _kcoreconfigskeleton_item_xxx,
- "ctx": "Double",
- },
- },
- "KCoreConfigSkeleton":
- {
- "addItemBool":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "Bool",
- },
- "addItemInt":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "Int",
- },
- "addItemUInt":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "UInt",
- },
- "addItemLongLong":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "LongLong",
- },
- "addItemInt64":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "LongLong",
- },
- "addItemULongLong":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "ULongLong",
- },
- "addItemUInt64":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "ULongLong",
- },
- "addItemDouble":
- {
- "code": _kcoreconfigskeleton_add_item_xxx,
- "ctx": "Double",
- },
- },
- })
-
- self._modulecode = rules_engine.ModuleCodeDb({
- "kcoreconfigskeleton.h":
- {
- "code": _kcoreconfigskeleton_item_add_py_subclass,
- },
- })
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 7bed316b..ec1e4995 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -72,29 +72,6 @@ ecm_generate_headers(KConfigCore_HEADERS
REQUIRED_HEADERS KConfigCore_HEADERS
)
-find_package(PythonModuleGeneration)
-
-if (PythonModuleGeneration_FOUND)
- ecm_generate_python_binding(
- TARGET KF5::ConfigCore
- PYTHONNAMESPACE PyKF5
- MODULENAME KConfigCore
- RULES_FILE "${CMAKE_SOURCE_DIR}/cmake/rules_PyKF5.py"
- SIP_DEPENDS
- QtCore/QtCoremod.sip
- HEADERS
- kconfig.h
- kconfigbase.h
- kconfiggroup.h
- kdesktopfile.h
- ksharedconfig.h
- kcoreconfigskeleton.h
- kemailsettings.h
- conversioncheck.h
- kconfigwatcher.h
- )
-endif()
-
install(TARGETS KF5ConfigCore EXPORT KF5ConfigTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index e717c1c1..b9e82a38 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -54,29 +54,6 @@ ecm_generate_headers(KConfigGui_HEADERS
REQUIRED_HEADERS KConfigGui_HEADERS
)
-find_package(PythonModuleGeneration)
-
-if (PythonModuleGeneration_FOUND)
- ecm_generate_python_binding(
- TARGET KF5::ConfigGui
- PYTHONNAMESPACE PyKF5
- MODULENAME KConfigGui
- RULES_FILE "${CMAKE_SOURCE_DIR}/cmake/rules_PyKF5.py"
- SIP_INCLUDES
- "${CMAKE_BINARY_DIR}/src/core/sip"
- SIP_DEPENDS
- QtGui/QtGuimod.sip
- PyKF5/KConfigCore/KConfigCoremod.sip
- HEADERS
- kconfiggui.h
- kconfigloader.h
- kconfigskeleton.h
- kstandardshortcut.h
- kstandardshortcutwatcher.h
- kwindowconfig.h
- )
-endif()
-
install(TARGETS KF5ConfigGui EXPORT KF5ConfigTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES