diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-07-29 10:43:49 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-07-31 08:02:15 +0000 |
commit | a1ad9c74ca0e2aa17c6c90ba7ab195196c591c20 (patch) | |
tree | 46789f8259f5ca4ebaa74b50bc238ca59553c901 /src | |
parent | 3f3b4df74258bae8e5ce2bd9c9e6202be43f70e1 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/scriptengine/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/lib/scriptengine/scriptengine.pro | 6 | ||||
-rw-r--r-- | src/lib/scriptengine/scriptengine.qbs | 8 |
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 |