aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-07-29 10:43:49 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2021-07-31 08:02:15 +0000
commita1ad9c74ca0e2aa17c6c90ba7ab195196c591c20 (patch)
tree46789f8259f5ca4ebaa74b50bc238ca59553c901
parent3f3b4df74258bae8e5ce2bd9c9e6202be43f70e1 (diff)
qt6: fix build with Qt >= 6.1
syncqt.pl was moved to the libexec directory This change requires Qbs 1.19 when compiling with Qt >= 6.1 (but not with earlier versions) to work as Qt.core.libExecPath was only introduced in 1.19. Change-Id: Ifa998ca5ee536d63d625c0647eaab74120fdda82 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r--src/lib/scriptengine/CMakeLists.txt6
-rw-r--r--src/lib/scriptengine/scriptengine.pro6
-rw-r--r--src/lib/scriptengine/scriptengine.qbs8
3 files changed, 15 insertions, 5 deletions
diff --git a/src/lib/scriptengine/CMakeLists.txt b/src/lib/scriptengine/CMakeLists.txt
index 39ceeec58..a30670236 100644
--- a/src/lib/scriptengine/CMakeLists.txt
+++ b/src/lib/scriptengine/CMakeLists.txt
@@ -323,8 +323,8 @@ list_transform_prepend(PARSER_SOURCES "${QT_SCRIPT_PATH}/script/parser/")
find_package(Perl)
-get_target_property(_QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
-get_filename_component(_QT_BIN_DIRECTORY ${_QT_QMAKE_EXECUTABLE} DIRECTORY)
+get_target_property(_QT_MOC_EXECUTABLE Qt${QT_VERSION_MAJOR}::moc IMPORTED_LOCATION)
+get_filename_component(_QT_LIBEXEC_DIRECTORY ${_QT_MOC_EXECUTABLE} DIRECTORY)
file(GLOB API_HEADERS "${QT_SCRIPT_PATH}/script/api/*.h")
@@ -339,7 +339,7 @@ endif()
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/include/QtScript/qscriptengine.h"
- COMMAND ${PERL_EXECUTABLE} "${_QT_BIN_DIRECTORY}/syncqt.pl"
+ COMMAND ${PERL_EXECUTABLE} "${_QT_LIBEXEC_DIRECTORY}/syncqt.pl"
-minimal
-version "${QT_VERSION}"
-outdir ${CMAKE_CURRENT_BINARY_DIR}
diff --git a/src/lib/scriptengine/scriptengine.pro b/src/lib/scriptengine/scriptengine.pro
index fab0851fc..df138e624 100644
--- a/src/lib/scriptengine/scriptengine.pro
+++ b/src/lib/scriptengine/scriptengine.pro
@@ -53,7 +53,11 @@ CONFIG(release, debug|release): DEFINES += NDEBUG
DEFINES += JS_NO_EXPORT
!build_pass {
- qtPrepareTool(QMAKE_SYNCQT, syncqt, , system)
+ versionAtLeast(QT_VERSION, 6.1.0) {
+ qtPrepareLibExecTool(QMAKE_SYNCQT, syncqt, , system)
+ } else {
+ qtPrepareTool(QMAKE_SYNCQT, syncqt, , system)
+ }
QMAKE_SYNCQT += \
-minimal -version $$[QT_VERSION] \
-outdir $$system_quote($$system_path($$OUT_PWD)) \
diff --git a/src/lib/scriptengine/scriptengine.qbs b/src/lib/scriptengine/scriptengine.qbs
index 5a5767c50..8c4d15232 100644
--- a/src/lib/scriptengine/scriptengine.qbs
+++ b/src/lib/scriptengine/scriptengine.qbs
@@ -3,6 +3,7 @@ import qbs.File
import qbs.FileInfo
import qbs.Probes
import qbs.Process
+import qbs.Utilities
Project {
QbsLibrary {
@@ -418,7 +419,12 @@ Project {
fileTags: ["hpp"]
}
prepare: {
- var syncQtPath = FileInfo.joinPaths(product.Qt.core.binPath, "syncqt.pl");
+ var syncQtPath;
+ if (Utilities.versionCompare(product.Qt.core.version, "6.1") >= 0) {
+ syncQtPath = FileInfo.joinPaths(product.Qt.core.libExecPath, "syncqt.pl");
+ } else {
+ syncQtPath = FileInfo.joinPaths(product.Qt.core.binPath, "syncqt.pl");
+ }
if (!File.exists(syncQtPath)) {
// syncqt.pl is not in Qt's bin path. We might have a developer build.
// As we don't provide QT_HOST_BINS/src in our Qt modules we must