diff options
author | Christian Tismer <tismer@stackless.com> | 2017-05-01 11:27:58 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2017-05-09 08:34:27 +0000 |
commit | 98b6c69ee91a78d0eb7f20130272a612770fbbbe (patch) | |
tree | a2b29e40f4857d1f0da6cb657bf97b04aa621255 | |
parent | 81f92097fd8475bf8fb15cc8c249c4e71715e706 (diff) |
Remove fixup_headers after fixing shiboken for C++11
The hack for VS 2015 is replaced by a shiboken patch.
This must be immediately applied after shiboken was fixed.
Reason: The build would work, but Windows will not load
because of missing symbols!
Task-number: PYSIDE-504
Change-Id: I3ce8989632748b8967228a9993b11c599a858b91
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rw-r--r-- | PySide2/CMakeLists.txt | 8 | ||||
-rw-r--r-- | PySide2/QtGui/CMakeLists.txt | 5 | ||||
-rw-r--r-- | PySide2/QtGui/fixup_headers.py | 78 | ||||
-rw-r--r-- | PySide2/QtHelp/CMakeLists.txt | 5 | ||||
-rw-r--r-- | PySide2/QtHelp/fixup_headers.py | 74 |
6 files changed, 8 insertions, 171 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index af8b5fab..4e9a8919 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,7 +299,14 @@ if (NOT SITE_PACKAGE) endif() endif() -set(GENERATOR_EXTRA_FLAGS --generator-set=shiboken --enable-parent-ctor-heuristic --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero) +set(GENERATOR_EXTRA_FLAGS --generator-set=shiboken + --enable-parent-ctor-heuristic + --enable-pyside-extensions + --enable-return-value-heuristic + --use-isnull-as-nb_nonzero) +# 2017-04-24 The protected hack can unfortunately not be disabled, because +# Clang does produce linker errors when we disable the hack. +# But the ugly workaround in Python is replaced by a shiboken change. if(WIN32 OR DEFINED AVOID_PROTECTED_HACK) message(STATUS "PySide2 will be generated avoiding the protected hack!") set(GENERATOR_EXTRA_FLAGS ${GENERATOR_EXTRA_FLAGS} --avoid-protected-hack) diff --git a/PySide2/CMakeLists.txt b/PySide2/CMakeLists.txt index ec4b44cc..0fe42ce6 100644 --- a/PySide2/CMakeLists.txt +++ b/PySide2/CMakeLists.txt @@ -116,14 +116,6 @@ macro(skip_missing_classes sources) f.writelines(lines) removals = sorted(list(removals)) print('Removals:', removals) - fix_header_fname = '${CMAKE_CURRENT_SOURCE_DIR}/fixup_headers.py' - if sys.platform == 'win32' and os.path.exists(fix_header_fname): - global target_dir - target_dir = '${${PROJECT_NAME}_GEN_DIR}' - - with open(fix_header_fname) as f: - code = compile(f.read(), 'nebbich', 'exec') - exec(code, globals(), locals()) ") endmacro() diff --git a/PySide2/QtGui/CMakeLists.txt b/PySide2/QtGui/CMakeLists.txt index 68c6bc79..a6a8c104 100644 --- a/PySide2/QtGui/CMakeLists.txt +++ b/PySide2/QtGui/CMakeLists.txt @@ -193,11 +193,6 @@ set(QtGui_libraries pyside2 ${Qt5Gui_LIBRARIES}) set(QtGui_deps QtCore) -if(WIN32) - # has a fix for VS2015 - skip_missing_classes(QtGui_SRC) -endif() - create_pyside_module(QtGui QtGui_include_dirs QtGui_libraries diff --git a/PySide2/QtGui/fixup_headers.py b/PySide2/QtGui/fixup_headers.py deleted file mode 100644 index cf9d1f19..00000000 --- a/PySide2/QtGui/fixup_headers.py +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of PySide2. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -from __future__ import print_function - -""" -This script adds a constructor to wrappers where the constructor -of the base class is not reachable (private). - -It is run via the equivalent of an execfile command. -This patch became necessary when VS2015 became the standard compiler. -""" - -import os - -def patch(fname, snippet, path=target_dir): - fpath = os.path.join(path, fname) - with open(fpath, 'r') as f: - lines = f.readlines() - for idx, line in enumerate(lines): - if line.rstrip() == "public:": - break - else: - raise SyntaxError("no public section found") - lines[idx+1:idx+1] = snippet - with open(fpath, 'w') as f: - f.writelines(lines) - print("+++ patched file:", fpath) - -snippets = { - "qclipboard_wrapper.h" : """\ - QClipboardWrapper(QObject *parent); - ~QClipboardWrapper(); -""", - "qsessionmanager_wrapper.h" : """\ - QSessionManagerWrapper(QGuiApplication *app, QString &id, QString &key); - ~QSessionManagerWrapper(); -""", -} - -for snippet, addition in snippets.items(): - patch(snippet, addition) diff --git a/PySide2/QtHelp/CMakeLists.txt b/PySide2/QtHelp/CMakeLists.txt index 2c7c2fdd..ba8b419f 100644 --- a/PySide2/QtHelp/CMakeLists.txt +++ b/PySide2/QtHelp/CMakeLists.txt @@ -42,11 +42,6 @@ set(QtHelp_libraries pyside2 set(QtHelp_deps QtWidgets) -if(WIN32) - # has a fix for VS2015 - skip_missing_classes(QtHelp_SRC) -endif() - create_pyside_module(QtHelp QtHelp_include_dirs QtHelp_libraries diff --git a/PySide2/QtHelp/fixup_headers.py b/PySide2/QtHelp/fixup_headers.py deleted file mode 100644 index d25b04b2..00000000 --- a/PySide2/QtHelp/fixup_headers.py +++ /dev/null @@ -1,74 +0,0 @@ -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of PySide2. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -from __future__ import print_function - -""" -This script adds a constructor to wrappers where the constructor -of the base class is not reachable (private). - -It is run via the equivalent of an execfile command. -This patch became necessary when VS2015 became the standard compiler. -""" - -import os - -def patch(fname, snippet, path=target_dir): - fpath = os.path.join(path, fname) - with open(fpath, 'r') as f: - lines = f.readlines() - for idx, line in enumerate(lines): - if line.rstrip() == "public:": - break - else: - raise SyntaxError("no public section found") - lines[idx+1:idx+1] = snippet - with open(fpath, 'w') as f: - f.writelines(lines) - print("+++ patched file:", fpath) - -snippets = { - "qhelpindexmodel_wrapper.h" : """\ - QHelpIndexModelWrapper(QHelpEnginePrivate *helpEngine); - ~QHelpIndexModelWrapper(); -""", -} - -for snippet, addition in snippets.items(): - patch(snippet, addition) |