early-access version 2853
This commit is contained in:
148
externals/vcpkg/ports/qtinterfaceframework/49b44d4.diff
vendored
Executable file
148
externals/vcpkg/ports/qtinterfaceframework/49b44d4.diff
vendored
Executable file
@@ -0,0 +1,148 @@
|
||||
From 49b44d45c9eb5b5b98697f9ebb74204d45f0db38 Mon Sep 17 00:00:00 2001
|
||||
From: Dominik Holland <dominik.holland@qt.io>
|
||||
Date: Wed, 06 Apr 2022 15:43:23 +0200
|
||||
Subject: [PATCH] ifcodegen: Add a fallback mechanism for too recent python packages
|
||||
|
||||
After the virtualenv is created the generator is now verified to be
|
||||
working correctly. In case the generator doesn't work, an error
|
||||
message is shown, which suggests to reconfigure with
|
||||
|
||||
-DQT_USE_MINIMAL_QFACE_PACKAGES=TRUE
|
||||
|
||||
The new option will install the minimum required dependencies for
|
||||
qface.
|
||||
|
||||
Fixes: QTBUG-102348
|
||||
Pick-to: 6.2 6.3
|
||||
Change-Id: I59aca5848da8928e94c0d33a108735847d9260a2
|
||||
---
|
||||
|
||||
diff --git a/src/tools/ifcodegen/CMakeLists.txt b/src/tools/ifcodegen/CMakeLists.txt
|
||||
index 2d9e3a4..317d77f 100644
|
||||
--- a/src/tools/ifcodegen/CMakeLists.txt
|
||||
+++ b/src/tools/ifcodegen/CMakeLists.txt
|
||||
@@ -22,11 +22,13 @@
|
||||
if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
|
||||
set(VIRTUALENV_ACTIVATE ${VIRTUALENV_PATH}/Scripts/activate.bat)
|
||||
set(VIRTUALENV_ACTIVATE_COMMAND ${VIRTUALENV_ACTIVATE})
|
||||
+ set(VIRTUALENV_PYTHON ${VIRTUALENV_PATH}/Scripts/python.exe)
|
||||
set(IFCODEGEN_BIN ${VIRTUALENV_PATH}/Scripts/qface.exe)
|
||||
set(DEPLOY_VIRTUALENV ${CMAKE_CURRENT_SOURCE_DIR}/deploy-virtualenv.bat)
|
||||
else()
|
||||
set(VIRTUALENV_ACTIVATE ${VIRTUALENV_PATH}/bin/activate)
|
||||
set(VIRTUALENV_ACTIVATE_COMMAND . ${VIRTUALENV_ACTIVATE})
|
||||
+ set(VIRTUALENV_PYTHON ${VIRTUALENV_PATH}/bin/python)
|
||||
set(IFCODEGEN_BIN ${VIRTUALENV_PATH}/bin/qface)
|
||||
set(DEPLOY_VIRTUALENV ${CMAKE_CURRENT_SOURCE_DIR}/deploy-virtualenv.sh)
|
||||
endif()
|
||||
@@ -63,6 +65,15 @@
|
||||
# someone is working on the qface sources
|
||||
file(GLOB_RECURSE IFCODEGEN_SOURCE_FILES ${IFCODEGEN_SOURCE_DIR}/*.py)
|
||||
|
||||
+ # If the upstream python packages introduce a regression this option can be used to install
|
||||
+ # the minimum version for all required python package and produce a working setup
|
||||
+ # Those packages might be outdated and may contain security holes, but they are known to be
|
||||
+ # working.
|
||||
+ set(INSTALL_MINIMAL_QFACE_PACKAGES_COMMAND)
|
||||
+ if (QT_USE_MINIMAL_QFACE_PACKAGES)
|
||||
+ set(INSTALL_MINIMAL_QFACE_PACKAGES_COMMAND COMMAND pip3 install -r ${IFCODEGEN_SOURCE_DIR}/requirements_minimal.txt)
|
||||
+ endif()
|
||||
+
|
||||
# On the CI we use the special wheel folder when available to not download all packages again on each build
|
||||
set(PYTHON3_WHEEL_CACHE "$ENV{PYTHON3_WHEEL_CACHE}" CACHE PATH "Python3 wheel cache")
|
||||
if (EXISTS "${PYTHON3_WHEEL_CACHE}")
|
||||
@@ -74,6 +85,7 @@
|
||||
|
||||
add_custom_command(OUTPUT ${IFCODEGEN_BIN}
|
||||
COMMAND ${VIRTUALENV_ACTIVATE_COMMAND}
|
||||
+ ${INSTALL_MINIMAL_QFACE_PACKAGES_COMMAND}
|
||||
COMMAND ${PIP3_INSTALL_COMMAND}
|
||||
DEPENDS ${VIRTUALENV_ACTIVATE}
|
||||
${IFCODEGEN_SOURCE_DIR}/requirements.txt
|
||||
@@ -82,16 +94,23 @@
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/.stamp-deploy_virtualenv
|
||||
- ${CMAKE_CURRENT_BINARY_DIR}/.stamp-cmake-rerun
|
||||
COMMAND ${DEPLOY_VIRTUALENV} qtif_qface_virtualenv
|
||||
COMMAND ${CMAKE_COMMAND} -E touch .stamp-deploy_virtualenv
|
||||
- COMMAND ${CMAKE_COMMAND} -E touch .stamp-cmake-rerun
|
||||
DEPENDS ${IFCODEGEN_BIN}
|
||||
)
|
||||
|
||||
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/.stamp-generator-verified
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/.stamp-cmake-rerun
|
||||
+ COMMAND ${VIRTUALENV_PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/verify_generator.py
|
||||
+ COMMAND ${CMAKE_COMMAND} -E touch .stamp-generator-verified
|
||||
+ COMMAND ${CMAKE_COMMAND} -E touch .stamp-cmake-rerun
|
||||
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/.stamp-deploy_virtualenv
|
||||
+ COMMENT "Verifying generator"
|
||||
+ )
|
||||
+
|
||||
# main target which just relies on the stamp file to be uptodate
|
||||
add_custom_target(ifcodegen ALL
|
||||
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/.stamp-deploy_virtualenv
|
||||
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/.stamp-generator-verified
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/.stamp-cmake-rerun
|
||||
)
|
||||
# Create the rerun cmake stamp file here to be able to add cmake configure dependency
|
||||
@@ -109,6 +128,7 @@
|
||||
#####################################################################
|
||||
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/.stamp-generator-verified
|
||||
${CMAKE_CURRENT_BINARY_DIR}/.stamp-deploy_virtualenv
|
||||
${CMAKE_CURRENT_BINARY_DIR}/.stamp-cmake-rerun
|
||||
${VIRTUALENV_PATH}
|
||||
diff --git a/src/tools/ifcodegen/verify_generator.py b/src/tools/ifcodegen/verify_generator.py
|
||||
new file mode 100755
|
||||
index 0000000..c3f85d6
|
||||
--- /dev/null
|
||||
+++ b/src/tools/ifcodegen/verify_generator.py
|
||||
@@ -0,0 +1,46 @@
|
||||
+#!/usr/bin/env python3
|
||||
+#############################################################################
|
||||
+##
|
||||
+## Copyright (C) 2022 The Qt Company Ltd.
|
||||
+## Contact: https://www.qt.io/licensing/
|
||||
+##
|
||||
+## This file is part of the QtInterfaceFramework module of the Qt Toolkit.
|
||||
+##
|
||||
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
+## 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 General Public License Usage
|
||||
+## Alternatively, this file may be used under the terms of the GNU
|
||||
+## General Public License version 3 as published by the Free Software
|
||||
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
+## 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-3.0.html.
|
||||
+##
|
||||
+## $QT_END_LICENSE$
|
||||
+##
|
||||
+#############################################################################
|
||||
+
|
||||
+try:
|
||||
+ import generate
|
||||
+except Exception as e:
|
||||
+ raise SystemExit("""
|
||||
+ Verifying the generator failed!
|
||||
+
|
||||
+ This might be caused by a too recent python version or
|
||||
+ too recent python packages. You can try installing older
|
||||
+ python packages by running configure again with the the
|
||||
+ following option:
|
||||
+
|
||||
+ -DQT_USE_MINIMAL_QFACE_PACKAGES=TRUE
|
||||
+
|
||||
+ The python error was:
|
||||
+
|
||||
+ {}
|
||||
+ """.format(e))
|
Reference in New Issue
Block a user