From c515ee178f4115fd305ec1fd1fd7059914b25eb2 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 25 Jan 2021 11:12:37 +0100 Subject: Move build tools to libexec instead of the bin dir [ChangeLog][Build System] Tools that are called by the build system and are unlikely to be called by the user are now installed to the libexec directory. This is a step towards easier co-installability of different Qt versions. Task-number: QTBUG-88791 Change-Id: Id19575b5ba27795f7715e4ea6a09391b26dd4942 Reviewed-by: Kai Koehne (cherry picked from commit 1f30bcf33618ca39c47dc1058529b55635e30aef) Reviewed-by: Qt Cherry-pick Bot --- mkspecs/features/moc.prf | 2 +- mkspecs/features/qlalr.prf | 2 +- mkspecs/features/qt_functions.prf | 21 +++++++++++++++++++-- mkspecs/features/qt_tracepoints.prf | 2 +- mkspecs/features/resources.prf | 2 +- mkspecs/features/uic.prf | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 07f29b8feb..c5504b21b8 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -1,6 +1,6 @@ #global defaults -qtPrepareTool(QMAKE_MOC, moc) +qtPrepareLibExecTool(QMAKE_MOC, moc) isEmpty(MOC_DIR):MOC_DIR = . isEmpty(QMAKE_H_MOD_MOC):QMAKE_H_MOD_MOC = moc_ isEmpty(QMAKE_EXT_CPP_MOC):QMAKE_EXT_CPP_MOC = .moc diff --git a/mkspecs/features/qlalr.prf b/mkspecs/features/qlalr.prf index 54d8b583c6..cb12818e39 100644 --- a/mkspecs/features/qlalr.prf +++ b/mkspecs/features/qlalr.prf @@ -1,4 +1,4 @@ -qtPrepareTool(QMAKE_QLALR, qlalr) +qtPrepareLibExecTool(QMAKE_QLALR, qlalr) isEmpty(QLALR_DIR): QLALR_DIR = . diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 7777e615bd..dd780ad556 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -83,11 +83,19 @@ defineTest(qtHaveModule) { return(false) } -# variable, default, [suffix for variable for system() use], [prepare primary variable for system() use] +# Arguments: +# variable, default, [suffix for variable for system() use], +# [prepare primary variable for system() use], +# [installation location; default: $$[QT_HOST_BINS]] defineTest(qtPrepareTool) { cmd = $$eval(QT_TOOL.$${2}.binary) isEmpty(cmd) { - cmd = $$[QT_HOST_BINS]/$$2 + isEmpty(5) { + instloc = $$[QT_HOST_BINS] + } else { + instloc = $$5 + } + cmd = $$instloc/$$2 exists($${cmd}.pl) { $${1}_EXE = $${cmd}.pl cmd = perl -w $$system_path($${cmd}.pl) @@ -123,6 +131,15 @@ defineTest(qtPrepareTool) { } } +# Prepare a tool that's not supposed to be called manually by users but by the build system. +# +# Forwards its arguments to qtPrepareTool but defaults the installation location to +# $$[QT_HOST_LIBEXECS] +defineTest(qtPrepareLibExecTool) { + isEmpty(instloc): instloc = "$$[QT_HOST_LIBEXECS]" + qtPrepareTool($$1, $$2, $$3, $$4, $$instloc) +} + # target variable, list of env var names, [non-empty: prepare for system(), not make] defineTest(qtAddToolEnv) { isEmpty(3): \ diff --git a/mkspecs/features/qt_tracepoints.prf b/mkspecs/features/qt_tracepoints.prf index 56d315e1cd..f115e9a115 100644 --- a/mkspecs/features/qt_tracepoints.prf +++ b/mkspecs/features/qt_tracepoints.prf @@ -8,7 +8,7 @@ # We mean it. # -qtPrepareTool(QMAKE_TRACEGEN, tracegen) +qtPrepareLibExecTool(QMAKE_TRACEGEN, tracegen) isEmpty(TRACEGEN_DIR): TRACEGEN_DIR = . diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index 151051163d..a9ef9a7155 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -1,4 +1,4 @@ -qtPrepareTool(QMAKE_RCC, rcc, _DEP) +qtPrepareLibExecTool(QMAKE_RCC, rcc, _DEP) isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf index a5df0c7e8d..fe9ad4b6c9 100644 --- a/mkspecs/features/uic.prf +++ b/mkspecs/features/uic.prf @@ -1,4 +1,4 @@ -qtPrepareTool(QMAKE_UIC, uic, _DEP) +qtPrepareLibExecTool(QMAKE_UIC, uic, _DEP) isEmpty(UI_DIR):UI_DIR = . isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_ -- cgit v1.2.3