diff options
| author | Jonathan Liu <net147@gmail.com> | 2013-09-04 13:33:02 +0000 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2013-09-10 22:42:42 +0200 |
| commit | 998dedb11dbfd4b8b052b970b5ec52ab0fe6ee78 (patch) | |
| tree | e14414cabaabc055aee395a93c4e91b63bb06418 /meta-oe/recipes-qt/qt-creator | |
| parent | 53c9a1f55e169e0c7e2d6a3fed51308c316774fb (diff) | |
| download | meta-openembedded-998dedb11dbfd4b8b052b970b5ec52ab0fe6ee78.tar.gz | |
qt-creator: update to 2.8.1
This also adds patches to fix compilation for ARM.
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-qt/qt-creator')
| -rw-r--r-- | meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch | 384 | ||||
| -rw-r--r-- | meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch | 93 | ||||
| -rw-r--r-- | meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb (renamed from meta-oe/recipes-qt/qt-creator/qt-creator_2.8.0.bb) | 8 |
3 files changed, 482 insertions, 3 deletions
diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch b/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch new file mode 100644 index 0000000000..363bee3e79 --- /dev/null +++ b/meta-oe/recipes-qt/qt-creator/qt-creator/fix.missing.cpuid.h.patch | |||
| @@ -0,0 +1,384 @@ | |||
| 1 | From 8be071bbca6a9b8e06a7466d848a2b4b6dbcbc1f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Christian Kandeler <christian.kandeler@digia.com> | ||
| 3 | Date: Fri, 19 Jul 2013 13:40:30 +0200 | ||
| 4 | Subject: [PATCH] WIP: Remove x86 assembler code from botan sources. | ||
| 5 | |||
| 6 | Taken from | ||
| 7 | https://bugreports.qt-project.org/browse/QTCREATORBUG-8107 | ||
| 8 | |||
| 9 | Upstream-Status: Submitted | ||
| 10 | |||
| 11 | Change-Id: I3780aa4551f563c5f43833ec822e3c1add7012f2 | ||
| 12 | --- | ||
| 13 | src/libs/3rdparty/botan/botan.cpp | 297 +++----------------------------------- | ||
| 14 | src/libs/3rdparty/botan/botan.h | 4 +- | ||
| 15 | 2 files changed, 18 insertions(+), 283 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp | ||
| 18 | index 917c385..c515750 100644 | ||
| 19 | --- a/src/libs/3rdparty/botan/botan.cpp | ||
| 20 | +++ b/src/libs/3rdparty/botan/botan.cpp | ||
| 21 | @@ -1098,35 +1098,31 @@ class Montgomery_Exponentiator : public Modular_Exponentiator | ||
| 22 | |||
| 23 | } | ||
| 24 | |||
| 25 | - | ||
| 26 | -#if (BOTAN_MP_WORD_BITS != 32) | ||
| 27 | - #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32 | ||
| 28 | +#if (BOTAN_MP_WORD_BITS == 8) | ||
| 29 | +typedef Botan::u16bit dword; | ||
| 30 | +#elif (BOTAN_MP_WORD_BITS == 16) | ||
| 31 | +typedef Botan::u32bit dword; | ||
| 32 | +#elif (BOTAN_MP_WORD_BITS == 32) | ||
| 33 | +typedef Botan::u64bit dword; | ||
| 34 | +#elif (BOTAN_MP_WORD_BITS == 64) | ||
| 35 | +#error BOTAN_MP_WORD_BITS can be 64 only with assembly support | ||
| 36 | +#else | ||
| 37 | +#error BOTAN_MP_WORD_BITS must be 8, 16, 32, or 64 | ||
| 38 | #endif | ||
| 39 | |||
| 40 | -#ifdef Q_OS_UNIX | ||
| 41 | + | ||
| 42 | namespace Botan { | ||
| 43 | |||
| 44 | extern "C" { | ||
| 45 | |||
| 46 | /* | ||
| 47 | -* Helper Macros for x86 Assembly | ||
| 48 | -*/ | ||
| 49 | -#define ASM(x) x "\n\t" | ||
| 50 | - | ||
| 51 | -/* | ||
| 52 | * Word Multiply | ||
| 53 | */ | ||
| 54 | inline word word_madd2(word a, word b, word* c) | ||
| 55 | { | ||
| 56 | - asm( | ||
| 57 | - ASM("mull %[b]") | ||
| 58 | - ASM("addl %[c],%[a]") | ||
| 59 | - ASM("adcl $0,%[carry]") | ||
| 60 | - | ||
| 61 | - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*c) | ||
| 62 | - : "0"(a), "1"(b), [c]"g"(*c) : "cc"); | ||
| 63 | - | ||
| 64 | - return a; | ||
| 65 | + dword z = (dword)a * b + *c; | ||
| 66 | + *c = (word)(z >> BOTAN_MP_WORD_BITS); | ||
| 67 | + return (word)z; | ||
| 68 | } | ||
| 69 | |||
| 70 | /* | ||
| 71 | @@ -1134,25 +1130,12 @@ inline word word_madd2(word a, word b, word* c) | ||
| 72 | */ | ||
| 73 | inline word word_madd3(word a, word b, word c, word* d) | ||
| 74 | { | ||
| 75 | - asm( | ||
| 76 | - ASM("mull %[b]") | ||
| 77 | - | ||
| 78 | - ASM("addl %[c],%[a]") | ||
| 79 | - ASM("adcl $0,%[carry]") | ||
| 80 | - | ||
| 81 | - ASM("addl %[d],%[a]") | ||
| 82 | - ASM("adcl $0,%[carry]") | ||
| 83 | - | ||
| 84 | - : [a]"=a"(a), [b]"=rm"(b), [carry]"=&d"(*d) | ||
| 85 | - : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc"); | ||
| 86 | - | ||
| 87 | - return a; | ||
| 88 | + dword z = (dword)a * b + c + *d; | ||
| 89 | + *d = (word)(z >> BOTAN_MP_WORD_BITS); | ||
| 90 | + return (word)z; | ||
| 91 | } | ||
| 92 | - | ||
| 93 | } | ||
| 94 | - | ||
| 95 | } | ||
| 96 | -#endif | ||
| 97 | |||
| 98 | |||
| 99 | |||
| 100 | @@ -1704,30 +1687,6 @@ void unlock_mem(void* addr, size_t length); | ||
| 101 | |||
| 102 | namespace Botan { | ||
| 103 | |||
| 104 | -extern "C" { | ||
| 105 | - | ||
| 106 | -/* | ||
| 107 | -* Word Multiply/Add | ||
| 108 | -*/ | ||
| 109 | -inline word word_madd2(word a, word b, word* c) | ||
| 110 | - { | ||
| 111 | - dword z = (dword)a * b + *c; | ||
| 112 | - *c = (word)(z >> BOTAN_MP_WORD_BITS); | ||
| 113 | - return (word)z; | ||
| 114 | - } | ||
| 115 | - | ||
| 116 | -/* | ||
| 117 | -* Word Multiply/Add | ||
| 118 | -*/ | ||
| 119 | -inline word word_madd3(word a, word b, word c, word* d) | ||
| 120 | - { | ||
| 121 | - dword z = (dword)a * b + c + *d; | ||
| 122 | - *d = (word)(z >> BOTAN_MP_WORD_BITS); | ||
| 123 | - return (word)z; | ||
| 124 | - } | ||
| 125 | - | ||
| 126 | -} | ||
| 127 | - | ||
| 128 | /** | ||
| 129 | * Win32 CAPI Entropy Source | ||
| 130 | */ | ||
| 131 | @@ -2315,225 +2274,6 @@ namespace Botan { | ||
| 132 | |||
| 133 | extern "C" { | ||
| 134 | |||
| 135 | -#ifdef Q_OS_UNIX | ||
| 136 | -/* | ||
| 137 | -* Helper Macros for x86 Assembly | ||
| 138 | -*/ | ||
| 139 | -#ifndef ASM | ||
| 140 | - #define ASM(x) x "\n\t" | ||
| 141 | -#endif | ||
| 142 | - | ||
| 143 | -#define ADDSUB2_OP(OPERATION, INDEX) \ | ||
| 144 | - ASM("movl 4*" #INDEX "(%[y]), %[carry]") \ | ||
| 145 | - ASM(OPERATION " %[carry], 4*" #INDEX "(%[x])") \ | ||
| 146 | - | ||
| 147 | -#define ADDSUB3_OP(OPERATION, INDEX) \ | ||
| 148 | - ASM("movl 4*" #INDEX "(%[x]), %[carry]") \ | ||
| 149 | - ASM(OPERATION " 4*" #INDEX "(%[y]), %[carry]") \ | ||
| 150 | - ASM("movl %[carry], 4*" #INDEX "(%[z])") \ | ||
| 151 | - | ||
| 152 | -#define LINMUL_OP(WRITE_TO, INDEX) \ | ||
| 153 | - ASM("movl 4*" #INDEX "(%[x]),%%eax") \ | ||
| 154 | - ASM("mull %[y]") \ | ||
| 155 | - ASM("addl %[carry],%%eax") \ | ||
| 156 | - ASM("adcl $0,%%edx") \ | ||
| 157 | - ASM("movl %%edx,%[carry]") \ | ||
| 158 | - ASM("movl %%eax, 4*" #INDEX "(%[" WRITE_TO "])") | ||
| 159 | - | ||
| 160 | -#define MULADD_OP(IGNORED, INDEX) \ | ||
| 161 | - ASM("movl 4*" #INDEX "(%[x]),%%eax") \ | ||
| 162 | - ASM("mull %[y]") \ | ||
| 163 | - ASM("addl %[carry],%%eax") \ | ||
| 164 | - ASM("adcl $0,%%edx") \ | ||
| 165 | - ASM("addl 4*" #INDEX "(%[z]),%%eax") \ | ||
| 166 | - ASM("adcl $0,%%edx") \ | ||
| 167 | - ASM("movl %%edx,%[carry]") \ | ||
| 168 | - ASM("movl %%eax, 4*" #INDEX " (%[z])") | ||
| 169 | - | ||
| 170 | -#define DO_8_TIMES(MACRO, ARG) \ | ||
| 171 | - MACRO(ARG, 0) \ | ||
| 172 | - MACRO(ARG, 1) \ | ||
| 173 | - MACRO(ARG, 2) \ | ||
| 174 | - MACRO(ARG, 3) \ | ||
| 175 | - MACRO(ARG, 4) \ | ||
| 176 | - MACRO(ARG, 5) \ | ||
| 177 | - MACRO(ARG, 6) \ | ||
| 178 | - MACRO(ARG, 7) | ||
| 179 | - | ||
| 180 | -#define ADD_OR_SUBTRACT(CORE_CODE) \ | ||
| 181 | - ASM("rorl %[carry]") \ | ||
| 182 | - CORE_CODE \ | ||
| 183 | - ASM("sbbl %[carry],%[carry]") \ | ||
| 184 | - ASM("negl %[carry]") | ||
| 185 | - | ||
| 186 | -/* | ||
| 187 | -* Word Addition | ||
| 188 | -*/ | ||
| 189 | -inline word word_add(word x, word y, word* carry) | ||
| 190 | - { | ||
| 191 | - asm( | ||
| 192 | - ADD_OR_SUBTRACT(ASM("adcl %[y],%[x]")) | ||
| 193 | - : [x]"=r"(x), [carry]"=r"(*carry) | ||
| 194 | - : "0"(x), [y]"rm"(y), "1"(*carry) | ||
| 195 | - : "cc"); | ||
| 196 | - return x; | ||
| 197 | - } | ||
| 198 | - | ||
| 199 | -/* | ||
| 200 | -* Eight Word Block Addition, Two Argument | ||
| 201 | -*/ | ||
| 202 | -inline word word8_add2(word x[8], const word y[8], word carry) | ||
| 203 | - { | ||
| 204 | - asm( | ||
| 205 | - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "adcl")) | ||
| 206 | - : [carry]"=r"(carry) | ||
| 207 | - : [x]"r"(x), [y]"r"(y), "0"(carry) | ||
| 208 | - : "cc", "memory"); | ||
| 209 | - return carry; | ||
| 210 | - } | ||
| 211 | - | ||
| 212 | -/* | ||
| 213 | -* Eight Word Block Addition, Three Argument | ||
| 214 | -*/ | ||
| 215 | -inline word word8_add3(word z[8], const word x[8], const word y[8], word carry) | ||
| 216 | - { | ||
| 217 | - asm( | ||
| 218 | - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "adcl")) | ||
| 219 | - : [carry]"=r"(carry) | ||
| 220 | - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) | ||
| 221 | - : "cc", "memory"); | ||
| 222 | - return carry; | ||
| 223 | - } | ||
| 224 | - | ||
| 225 | -/* | ||
| 226 | -* Word Subtraction | ||
| 227 | -*/ | ||
| 228 | -inline word word_sub(word x, word y, word* carry) | ||
| 229 | - { | ||
| 230 | - asm( | ||
| 231 | - ADD_OR_SUBTRACT(ASM("sbbl %[y],%[x]")) | ||
| 232 | - : [x]"=r"(x), [carry]"=r"(*carry) | ||
| 233 | - : "0"(x), [y]"rm"(y), "1"(*carry) | ||
| 234 | - : "cc"); | ||
| 235 | - return x; | ||
| 236 | - } | ||
| 237 | - | ||
| 238 | -/* | ||
| 239 | -* Eight Word Block Subtraction, Two Argument | ||
| 240 | -*/ | ||
| 241 | -inline word word8_sub2(word x[8], const word y[8], word carry) | ||
| 242 | - { | ||
| 243 | - asm( | ||
| 244 | - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB2_OP, "sbbl")) | ||
| 245 | - : [carry]"=r"(carry) | ||
| 246 | - : [x]"r"(x), [y]"r"(y), "0"(carry) | ||
| 247 | - : "cc", "memory"); | ||
| 248 | - return carry; | ||
| 249 | - } | ||
| 250 | - | ||
| 251 | -/* | ||
| 252 | -* Eight Word Block Subtraction, Two Argument | ||
| 253 | -*/ | ||
| 254 | -inline word word8_sub2_rev(word x[8], const word y[8], word carry) | ||
| 255 | - { | ||
| 256 | - asm( | ||
| 257 | - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) | ||
| 258 | - : [carry]"=r"(carry) | ||
| 259 | - : [x]"r"(y), [y]"r"(x), [z]"r"(x), "0"(carry) | ||
| 260 | - : "cc", "memory"); | ||
| 261 | - return carry; | ||
| 262 | - } | ||
| 263 | - | ||
| 264 | -/* | ||
| 265 | -* Eight Word Block Subtraction, Three Argument | ||
| 266 | -*/ | ||
| 267 | -inline word word8_sub3(word z[8], const word x[8], const word y[8], word carry) | ||
| 268 | - { | ||
| 269 | - asm( | ||
| 270 | - ADD_OR_SUBTRACT(DO_8_TIMES(ADDSUB3_OP, "sbbl")) | ||
| 271 | - : [carry]"=r"(carry) | ||
| 272 | - : [x]"r"(x), [y]"r"(y), [z]"r"(z), "0"(carry) | ||
| 273 | - : "cc", "memory"); | ||
| 274 | - return carry; | ||
| 275 | - } | ||
| 276 | - | ||
| 277 | -/* | ||
| 278 | -* Eight Word Block Linear Multiplication | ||
| 279 | -*/ | ||
| 280 | -inline word word8_linmul2(word x[8], word y, word carry) | ||
| 281 | - { | ||
| 282 | - asm( | ||
| 283 | - DO_8_TIMES(LINMUL_OP, "x") | ||
| 284 | - : [carry]"=r"(carry) | ||
| 285 | - : [x]"r"(x), [y]"rm"(y), "0"(carry) | ||
| 286 | - : "cc", "%eax", "%edx"); | ||
| 287 | - return carry; | ||
| 288 | - } | ||
| 289 | - | ||
| 290 | -/* | ||
| 291 | -* Eight Word Block Linear Multiplication | ||
| 292 | -*/ | ||
| 293 | -inline word word8_linmul3(word z[8], const word x[8], word y, word carry) | ||
| 294 | - { | ||
| 295 | - asm( | ||
| 296 | - DO_8_TIMES(LINMUL_OP, "z") | ||
| 297 | - : [carry]"=r"(carry) | ||
| 298 | - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) | ||
| 299 | - : "cc", "%eax", "%edx"); | ||
| 300 | - return carry; | ||
| 301 | - } | ||
| 302 | - | ||
| 303 | -/* | ||
| 304 | -* Eight Word Block Multiply/Add | ||
| 305 | -*/ | ||
| 306 | -inline word word8_madd3(word z[8], const word x[8], word y, word carry) | ||
| 307 | - { | ||
| 308 | - asm( | ||
| 309 | - DO_8_TIMES(MULADD_OP, "") | ||
| 310 | - : [carry]"=r"(carry) | ||
| 311 | - : [z]"r"(z), [x]"r"(x), [y]"rm"(y), "0"(carry) | ||
| 312 | - : "cc", "%eax", "%edx"); | ||
| 313 | - return carry; | ||
| 314 | - } | ||
| 315 | - | ||
| 316 | -/* | ||
| 317 | -* Multiply-Add Accumulator | ||
| 318 | -*/ | ||
| 319 | -inline void word3_muladd(word* w2, word* w1, word* w0, word x, word y) | ||
| 320 | - { | ||
| 321 | - asm( | ||
| 322 | - ASM("mull %[y]") | ||
| 323 | - | ||
| 324 | - ASM("addl %[x],%[w0]") | ||
| 325 | - ASM("adcl %[y],%[w1]") | ||
| 326 | - ASM("adcl $0,%[w2]") | ||
| 327 | - | ||
| 328 | - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) | ||
| 329 | - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) | ||
| 330 | - : "cc"); | ||
| 331 | - } | ||
| 332 | - | ||
| 333 | -/* | ||
| 334 | -* Multiply-Add Accumulator | ||
| 335 | -*/ | ||
| 336 | -inline void word3_muladd_2(word* w2, word* w1, word* w0, word x, word y) | ||
| 337 | - { | ||
| 338 | - asm( | ||
| 339 | - ASM("mull %[y]") | ||
| 340 | - | ||
| 341 | - ASM("addl %[x],%[w0]") | ||
| 342 | - ASM("adcl %[y],%[w1]") | ||
| 343 | - ASM("adcl $0,%[w2]") | ||
| 344 | - | ||
| 345 | - ASM("addl %[x],%[w0]") | ||
| 346 | - ASM("adcl %[y],%[w1]") | ||
| 347 | - ASM("adcl $0,%[w2]") | ||
| 348 | - | ||
| 349 | - : [w0]"=r"(*w0), [w1]"=r"(*w1), [w2]"=r"(*w2) | ||
| 350 | - : [x]"a"(x), [y]"d"(y), "0"(*w0), "1"(*w1), "2"(*w2) | ||
| 351 | - : "cc"); | ||
| 352 | - } | ||
| 353 | -#else | ||
| 354 | /* | ||
| 355 | * Word Addition | ||
| 356 | */ | ||
| 357 | @@ -2718,9 +2458,6 @@ inline void word3_muladd_2(word* w2, word* w1, word* w0, word a, word b) | ||
| 358 | *w1 = word_add(*w1, b, &carry); | ||
| 359 | *w2 = word_add(*w2, top, &carry); | ||
| 360 | } | ||
| 361 | - | ||
| 362 | -#endif | ||
| 363 | - | ||
| 364 | } | ||
| 365 | |||
| 366 | } | ||
| 367 | diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h | ||
| 368 | index 6a9cbe0..3a66a14 100644 | ||
| 369 | --- a/src/libs/3rdparty/botan/botan.h | ||
| 370 | +++ b/src/libs/3rdparty/botan/botan.h | ||
| 371 | @@ -80,9 +80,7 @@ | ||
| 372 | #define BOTAN_GCC_VERSION 0 | ||
| 373 | #endif | ||
| 374 | |||
| 375 | -#define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN | ||
| 376 | -#define BOTAN_TARGET_CPU_IS_X86_FAMILY | ||
| 377 | -#define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1 | ||
| 378 | +#define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 0 | ||
| 379 | |||
| 380 | #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \ | ||
| 381 | defined(BOTAN_TARGET_CPU_IS_BIG_ENDIAN) | ||
| 382 | -- | ||
| 383 | 1.8.3.2 | ||
| 384 | |||
diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch b/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch new file mode 100644 index 0000000000..dea09aef4e --- /dev/null +++ b/meta-oe/recipes-qt/qt-creator/qt-creator/qbs_transformer_product.patch | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | From c1c7cb2a5e6220a74f374a301e648479029f8a0e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Joerg Bornemann <joerg.bornemann@digia.com> | ||
| 3 | Date: Mon, 12 Aug 2013 09:27:47 +0200 | ||
| 4 | Subject: [PATCH] introduce Transformer::product() | ||
| 5 | |||
| 6 | Simplifies the calling code. | ||
| 7 | Remove pointless nullpointer check from jscommandexecutor. | ||
| 8 | |||
| 9 | Upstream-Status: Backport | ||
| 10 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
| 11 | |||
| 12 | Change-Id: I867181d2b750f32f04376ce860f5dee6555d3e33 | ||
| 13 | Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> | ||
| 14 | --- | ||
| 15 | src/lib/buildgraph/jscommandexecutor.cpp | 5 +---- | ||
| 16 | src/lib/buildgraph/processcommandexecutor.cpp | 6 ++---- | ||
| 17 | src/lib/buildgraph/transformer.cpp | 7 +++++++ | ||
| 18 | src/lib/buildgraph/transformer.h | 1 + | ||
| 19 | 4 files changed, 11 insertions(+), 8 deletions(-) | ||
| 20 | |||
| 21 | diff --git a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp | ||
| 22 | index b7f5b1d..24ffb7e 100644 | ||
| 23 | --- a/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp | ||
| 24 | +++ b/src/shared/qbs/src/lib/buildgraph/jscommandexecutor.cpp | ||
| 25 | @@ -79,10 +79,7 @@ public slots: | ||
| 26 | m_result.errorMessage.clear(); | ||
| 27 | ScriptEngine * const scriptEngine = provideScriptEngine(); | ||
| 28 | QScriptValue scope = scriptEngine->newObject(); | ||
| 29 | - Artifact *someOutputArtifact = *transformer->outputs.begin(); | ||
| 30 | - if (!someOutputArtifact->product.isNull()) | ||
| 31 | - setupScriptEngineForProduct(scriptEngine, someOutputArtifact->product, | ||
| 32 | - transformer->rule, scope); | ||
| 33 | + setupScriptEngineForProduct(scriptEngine, transformer->product(), transformer->rule, scope); | ||
| 34 | transformer->setupInputs(scriptEngine, scope); | ||
| 35 | transformer->setupOutputs(scriptEngine, scope); | ||
| 36 | |||
| 37 | diff --git a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp | ||
| 38 | index 78f77c3..d123fe8 100644 | ||
| 39 | --- a/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp | ||
| 40 | +++ b/src/shared/qbs/src/lib/buildgraph/processcommandexecutor.cpp | ||
| 41 | @@ -276,8 +276,7 @@ void ProcessCommandExecutor::removeResponseFile() | ||
| 42 | |||
| 43 | QString ProcessCommandExecutor::findProcessCommandInPath() | ||
| 44 | { | ||
| 45 | - Artifact * const outputNode = *transformer()->outputs.begin(); | ||
| 46 | - const ResolvedProductPtr product = outputNode->product; | ||
| 47 | + const ResolvedProductPtr product = transformer()->product(); | ||
| 48 | const ProcessCommand * const cmd = processCommand(); | ||
| 49 | QString fullProgramPath = product->executablePathCache.value(cmd->program()); | ||
| 50 | if (!fullProgramPath.isEmpty()) | ||
| 51 | @@ -309,8 +308,7 @@ QString ProcessCommandExecutor::findProcessCommandInPath() | ||
| 52 | |||
| 53 | QString ProcessCommandExecutor::findProcessCommandBySuffix() | ||
| 54 | { | ||
| 55 | - Artifact * const outputNode = *transformer()->outputs.begin(); | ||
| 56 | - const ResolvedProductPtr product = outputNode->product; | ||
| 57 | + const ResolvedProductPtr product = transformer()->product(); | ||
| 58 | const ProcessCommand * const cmd = processCommand(); | ||
| 59 | QString fullProgramPath = product->executablePathCache.value(cmd->program()); | ||
| 60 | if (!fullProgramPath.isEmpty()) | ||
| 61 | diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.cpp b/src/shared/qbs/src/lib/buildgraph/transformer.cpp | ||
| 62 | index ce6baa7..363e08d 100644 | ||
| 63 | --- a/src/shared/qbs/src/lib/buildgraph/transformer.cpp | ||
| 64 | +++ b/src/shared/qbs/src/lib/buildgraph/transformer.cpp | ||
| 65 | @@ -85,6 +85,13 @@ QScriptValue Transformer::translateInOutputs(QScriptEngine *scriptEngine, const | ||
| 66 | return jsTagFiles; | ||
| 67 | } | ||
| 68 | |||
| 69 | +ResolvedProductPtr Transformer::product() const | ||
| 70 | +{ | ||
| 71 | + if (outputs.isEmpty()) | ||
| 72 | + return ResolvedProductPtr(); | ||
| 73 | + return (*outputs.begin())->product; | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | void Transformer::setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue) | ||
| 77 | { | ||
| 78 | const QString &defaultModuleName = rule->module->name; | ||
| 79 | diff --git a/src/shared/qbs/src/lib/buildgraph/transformer.h b/src/shared/qbs/src/lib/buildgraph/transformer.h | ||
| 80 | index c9c88b6..d26c391 100644 | ||
| 81 | --- a/src/shared/qbs/src/lib/buildgraph/transformer.h | ||
| 82 | +++ b/src/shared/qbs/src/lib/buildgraph/transformer.h | ||
| 83 | @@ -65,6 +65,7 @@ public: | ||
| 84 | const ArtifactList &artifacts, | ||
| 85 | const QString &defaultModuleName); | ||
| 86 | |||
| 87 | + ResolvedProductPtr product() const; | ||
| 88 | void setupInputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue); | ||
| 89 | void setupOutputs(QScriptEngine *scriptEngine, QScriptValue targetScriptValue); | ||
| 90 | void createCommands(const PrepareScriptConstPtr &script, | ||
| 91 | -- | ||
| 92 | 1.8.4 | ||
| 93 | |||
diff --git a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.0.bb b/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb index a95ad5a049..3a29c3b245 100644 --- a/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.0.bb +++ b/meta-oe/recipes-qt/qt-creator/qt-creator_2.8.1.bb | |||
| @@ -6,9 +6,11 @@ LIC_FILES_CHKSUM = "file://LGPL_EXCEPTION.TXT;md5=eb6c371255e1262c55ae9b652a90b5 | |||
| 6 | file://LICENSE.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" | 6 | file://LICENSE.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" |
| 7 | SECTION = "qt/app" | 7 | SECTION = "qt/app" |
| 8 | 8 | ||
| 9 | SRC_URI = "http://download.qt-project.org/official_releases/qtcreator/2.8/${PV}/${BP}-src.tar.gz" | 9 | SRC_URI = "http://download.qt-project.org/official_releases/qtcreator/2.8/${PV}/${BP}-src.tar.gz \ |
| 10 | SRC_URI[md5sum] = "5aacdad4491b7dda9758a81384d8da79" | 10 | file://fix.missing.cpuid.h.patch \ |
| 11 | SRC_URI[sha256sum] = "7ac5d9a36c2f561f74d77378d4eae95a78c7752b323e1df924d6e895e99f45d2" | 11 | file://qbs_transformer_product.patch" |
| 12 | SRC_URI[md5sum] = "79ef6c6ece0c00035ef744c9d6e3bd3b" | ||
| 13 | SRC_URI[sha256sum] = "d5ae007a297a4288d0e95fd605edbfb8aee80f6788c7a6cfb9cb297f50c364b9" | ||
| 12 | 14 | ||
| 13 | S = "${WORKDIR}/${BP}-src" | 15 | S = "${WORKDIR}/${BP}-src" |
| 14 | 16 | ||
