1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
From 932cb18540fc4634e02d048cf9ab9e519ce0811d Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Sat, 6 Apr 2013 13:15:07 +0200
Subject: [PATCH 12/13] Add -external-hostbindir option for native(sdk)
* when cross-compiling it's sometimes useful to use existing tools from machine
(or in OpenEmbedded built with separate native recipe) when building for target
* this way we can skip bootstraping tools we already have
* qt_functions: temporary remove isEmpty check
* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
* isEmpty works correctly only with qmake variables (e.g. $$FOO -
isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
Upstream-Status: Pending
is a lot better for upstreaming (and it was already sort of approved by
Oswald) but in 5.2.0 I've noticed that he added something similar for
android builds
Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Simon Busch <morphis@gravedo.de>
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
qmake/property.cpp | 1 +
src/corelib/global/qlibraryinfo.cpp | 3 ++-
src/corelib/global/qlibraryinfo.h | 1 +
tools/configure/configureapp.cpp | 8 ++++++++
4 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/qmake/property.cpp b/qmake/property.cpp
index 051e056..50da6ed 100644
--- a/qmake/property.cpp
+++ b/qmake/property.cpp
@@ -67,6 +67,7 @@ static const struct {
{ "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
{ "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
{ "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
{ "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
{ "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
};
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index c418c5e..c8c4188 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -348,7 +348,7 @@ QLibraryInfo::isDebugBuild()
*/
static const struct {
- char key[19], value[13];
+ char key[21], value[13];
} qtConfEntries[] = {
{ "Prefix", "." },
{ "Documentation", "doc" }, // should be ${Data}/doc
@@ -374,6 +374,7 @@ static const struct {
{ "HostBinaries", "bin" },
{ "HostLibraries", "lib" },
{ "HostData", "." },
+ { "ExternalHostBinaries", "" },
{ "TargetSpec", "" },
{ "HostSpec", "" },
#endif
diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
index 543c4b3..a02e03a 100644
--- a/src/corelib/global/qlibraryinfo.h
+++ b/src/corelib/global/qlibraryinfo.h
@@ -80,6 +80,7 @@ public:
HostBinariesPath,
HostLibrariesPath,
HostDataPath,
+ ExternalHostBinariesPath,
TargetSpecPath,
HostSpecPath,
LastHostPath = HostSpecPath,
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 6e9d4aa..0ca4daf 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1191,6 +1191,13 @@ void Configure::parseCmdLine()
dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
}
+ else if (configCmdLine.at(i) == "-external-hostbindir") {
+ ++i;
+ if (i == argCount)
+ break;
+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
+ }
+
else if (configCmdLine.at(i) == "-make-tool") {
++i;
if (i == argCount)
@@ -4004,6 +4011,7 @@ void Configure::generateQConfigCpp()
<< " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
<< " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
<< " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
+ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl
<< " \"qt_targspec=" << targSpec << "\"," << endl
<< " \"qt_hostspec=" << hostSpec << "\"," << endl
<< "#endif" << endl
--
2.3.1
|