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 <kai.koehne@qt.io> (cherry picked from commit 1f30bcf33618ca39c47dc1058529b55635e30aef) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
c0d32623e9
commit
c515ee178f
@ -504,7 +504,7 @@ function(qt_internal_create_tracepoints name tracepoints_file)
|
||||
if(NOT "${QT_HOST_PATH}" STREQUAL "")
|
||||
qt_path_join(tracegen
|
||||
"${QT_HOST_PATH}"
|
||||
"${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_BINDIR}"
|
||||
"${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_LIBEXECDIR}"
|
||||
"tracegen")
|
||||
else()
|
||||
set(tracegen "${QT_CMAKE_EXPORT_NAMESPACE}::tracegen")
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,4 @@
|
||||
qtPrepareTool(QMAKE_QLALR, qlalr)
|
||||
qtPrepareLibExecTool(QMAKE_QLALR, qlalr)
|
||||
|
||||
isEmpty(QLALR_DIR): QLALR_DIR = .
|
||||
|
||||
|
@ -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): \
|
||||
|
@ -8,7 +8,7 @@
|
||||
# We mean it.
|
||||
#
|
||||
|
||||
qtPrepareTool(QMAKE_TRACEGEN, tracegen)
|
||||
qtPrepareLibExecTool(QMAKE_TRACEGEN, tracegen)
|
||||
|
||||
isEmpty(TRACEGEN_DIR): TRACEGEN_DIR = .
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
qtPrepareTool(QMAKE_RCC, rcc, _DEP)
|
||||
qtPrepareLibExecTool(QMAKE_RCC, rcc, _DEP)
|
||||
|
||||
isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc
|
||||
|
||||
|
@ -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_
|
||||
|
@ -191,7 +191,7 @@ function(qt6_android_generate_deployment_settings target)
|
||||
" \"qml-importscanner-binary\" : \"${qml_importscanner_binary_path_native}\",\n")
|
||||
|
||||
# Override rcc binary path
|
||||
set(rcc_binary_path "${QT_HOST_PATH}/${QT6_HOST_INFO_BINDIR}/rcc")
|
||||
set(rcc_binary_path "${QT_HOST_PATH}/${QT6_HOST_INFO_LIBEXECDIR}/rcc")
|
||||
if (WIN32)
|
||||
string(APPEND rcc_binary_path ".exe")
|
||||
endif()
|
||||
|
@ -889,7 +889,7 @@ if (QT_FEATURE_vulkan)
|
||||
if(NOT "${QT_HOST_PATH}" STREQUAL "")
|
||||
qt_path_join(qvkgen
|
||||
"${QT_HOST_PATH}"
|
||||
"${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_BINDIR}"
|
||||
"${QT${PROJECT_VERSION_MAJOR}_HOST_INFO_LIBEXECDIR}"
|
||||
"qvkgen")
|
||||
else()
|
||||
set(qvkgen "${QT_CMAKE_EXPORT_NAMESPACE}::qvkgen")
|
||||
|
@ -5,6 +5,7 @@
|
||||
qt_get_tool_target_name(target_name cmake_automoc_parser)
|
||||
qt_internal_add_tool(${target_name}
|
||||
BOOTSTRAP
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Core # special case
|
||||
SOURCES
|
||||
main.cpp
|
||||
|
@ -8,6 +8,7 @@ qt_get_tool_target_name(target_name moc)
|
||||
qt_internal_add_tool(${target_name}
|
||||
BOOTSTRAP
|
||||
TARGET_DESCRIPTION "Qt Meta Object Compiler"
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Core # special case
|
||||
SOURCES
|
||||
cbordevice.h
|
||||
|
@ -7,6 +7,7 @@
|
||||
qt_get_tool_target_name(target_name qlalr)
|
||||
qt_internal_add_tool(${target_name}
|
||||
TARGET_DESCRIPTION "Qt Look Ahead LR Parser Generator"
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Core # special case
|
||||
SOURCES
|
||||
compress.cpp compress.h
|
||||
|
@ -7,6 +7,7 @@
|
||||
qt_get_tool_target_name(target_name qvkgen)
|
||||
qt_internal_add_tool(${target_name}
|
||||
TARGET_DESCRIPTION "Qt Vulkan Header Generator"
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Gui # special case
|
||||
SOURCES
|
||||
qvkgen.cpp
|
||||
|
@ -8,6 +8,7 @@ qt_get_tool_target_name(target_name rcc)
|
||||
qt_internal_add_tool(${target_name}
|
||||
BOOTSTRAP
|
||||
TARGET_DESCRIPTION "Qt Resource Compiler"
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Core # special case
|
||||
SOURCES
|
||||
main.cpp
|
||||
|
@ -7,6 +7,7 @@
|
||||
qt_get_tool_target_name(target_name tracegen)
|
||||
qt_internal_add_tool(${target_name}
|
||||
BOOTSTRAP
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Core # special case
|
||||
SOURCES
|
||||
etw.cpp etw.h
|
||||
|
@ -7,6 +7,7 @@
|
||||
qt_get_tool_target_name(target_name uic)
|
||||
qt_internal_add_tool(${target_name}
|
||||
TARGET_DESCRIPTION "Qt User Interface Compiler"
|
||||
INSTALL_DIR "${INSTALL_LIBEXECDIR}"
|
||||
TOOLS_TARGET Widgets # special case
|
||||
SOURCES
|
||||
cpp/cppwritedeclaration.cpp cpp/cppwritedeclaration.h
|
||||
|
@ -775,7 +775,8 @@ void tst_Moc::initTestCase()
|
||||
{
|
||||
QString binpath = QLibraryInfo::path(QLibraryInfo::BinariesPath);
|
||||
QString qmake = QString("%1/qmake").arg(binpath);
|
||||
m_moc = QString("%1/moc").arg(binpath);
|
||||
QString libexecPath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath);
|
||||
m_moc = QString("%1/moc").arg(libexecPath);
|
||||
|
||||
const QString testHeader = QFINDTESTDATA("backslash-newlines.h");
|
||||
QVERIFY(!testHeader.isEmpty());
|
||||
|
@ -9,7 +9,7 @@ INCLUDEPATH += "include folder"
|
||||
RCCINPUT = "rc folder/test.qrc"
|
||||
RCCOUTPUT = "cpp folder/test.cpp"
|
||||
|
||||
qtPrepareTool(QMAKE_RCC, rcc)
|
||||
qtPrepareLibExecTool(QMAKE_RCC, rcc)
|
||||
|
||||
rcc_test.commands = $$QMAKE_RCC -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
|
||||
rcc_test.output = $$RCCOUTPUT
|
||||
|
@ -667,7 +667,7 @@ void tst_qmake::qinstall()
|
||||
|
||||
// install an executable file
|
||||
{
|
||||
const QString mocFilePath = QLibraryInfo::path(QLibraryInfo::BinariesPath)
|
||||
const QString mocFilePath = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)
|
||||
+ "/moc"
|
||||
#ifdef Q_OS_WIN
|
||||
+ ".exe"
|
||||
|
@ -104,7 +104,7 @@ private:
|
||||
|
||||
void tst_rcc::initTestCase()
|
||||
{
|
||||
m_rcc = QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/rcc");
|
||||
m_rcc = QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath) + QLatin1String("/rcc");
|
||||
|
||||
m_dataPath = QFINDTESTDATA("data");
|
||||
QVERIFY(!m_dataPath.isEmpty());
|
||||
|
@ -105,7 +105,7 @@ static const char versionRegexp[] =
|
||||
R"([*#][*#] Created by: Qt User Interface Compiler version \d{1,2}\.\d{1,2}\.\d{1,2})";
|
||||
|
||||
tst_uic::tst_uic()
|
||||
: m_command(QLibraryInfo::path(QLibraryInfo::BinariesPath) + QLatin1String("/uic"))
|
||||
: m_command(QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath) + QLatin1String("/uic"))
|
||||
, m_versionRegexp(QLatin1String(versionRegexp))
|
||||
{
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user