aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MSVC: Remember only dependencies with librariesChristian Kandeler2019-12-041-1/+2
| | | | | | | | | | | | | | | | | ... when collecting link-time dependencies. This is a hack for the case where an application depends on a static library, and both depend on a statically built Qt. A Qt plugin does not declare a library artifact when pulled in by a static library, because we don't want to link against plugins in that case. As a result, when the dependency collection runs for the application and finds a Qt plugin via traversing the static library, it won't see any libraries there. Before this patch, we'd skip such plugins when encountering them again as direct dependencies of the application, so they were missing on the linker command line. Fixes: QBS-1518 Change-Id: Ia0e5b39e4a2fb80b9fd1384610942ac627978571 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove pass-by-value from RulesApplicatorIvan Komissarov2019-11-252-6/+7
| | | | | | | | | References were assigned to a temporary object This amends 936eee744 Change-Id: I1d2b6c00cd75ddb4759017490fd63ab123be4825 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix building 32-bit x86 binaries with clang-clChristian Kandeler2019-11-201-0/+7
| | | | | | | | Fixes: QBS-1509 Change-Id: I8ff042bf2006fb989c05490b6a7a3f61aa896920 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Do not pass macosx_version_min to the linkerIvan Komissarov2019-11-191-1/+1
| | | | | | | | | Minimum OS version is controlled by -target flag now. For example, "-target x86_64-apple-macosx10.14" tells clang to set minimum macOS version to 10.14 Change-Id: Iaee002e80d6a02e3a2790757f640dc4a25af8e9b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add changelog for 1.15.0 releaseRichard Weickelt2019-11-181-0/+44
| | | | | | | Change-Id: Ic143a00f209d04cb7907fa34373b9c2e043d7760 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Set right dependencies for static qmake buildAlberto Mardegan2019-11-121-1/+4
| | | | | | | | | When building statically, it's important that plugins are built before the application which is going to use them. Change-Id: I0e32650b96a2e18c82a884501e7b478f7febc528 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* MingW: fix path of windres binaryAlberto Mardegan2019-11-081-1/+1
| | | | | | | | This was accidentally broken in 18a3b64ab07ade6bfc9bb068956beed2032d9b58. Change-Id: I87a106adda094500395049030f6ece652abc9dc9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix user dependency scannersChristian Kandeler2019-11-053-4/+15
| | | | | | | | | Since commit 9e55ddfa97, we mistakenly passed the output artifact to the scan script, rather than the input artifact. Fixes: QBS-1511 Change-Id: Ieb2a2b3bdf0366ef203e96d578a30a0ef8b1838a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* baremetal: Add USB HID gamepads example for MSP430f5529 chipDenis Shienkov2019-11-0220-1/+3149
| | | | | | | | | This example demonstrates how to create the USB HID device on MSP430f5529 chip (based on MSP430 architecture) using the different toolchains (IAR EW, GCC). Change-Id: Ic4d6a17d3e75e7ccb9b1f3eeaaef9abdf2da896b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add USB HID gamepads example for CY7C68013A chipDenis Shienkov2019-10-2919-0/+3286
| | | | | | | | | | | This example demonstrates how to create the USB HID device on CY7C68013A chip (based on 8051 architecture) using the different toolchains (SDCC, IAR EW, KEIL). Change-Id: I2678c680245c1b969466b2e91fe04850635cc09b Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix qbsSession autotestChristian Kandeler2019-10-231-2/+2
| | | | | | | It failed with mingw on Windows. Change-Id: Ia5cc3b4590ea184106cee6119b9670138ad5fb07 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Bump build graph versionChristian Kandeler2019-10-221-1/+1
| | | | | | | | This was forgotten in 923f98062b. Change-Id: I1b62c1dbf0c9ed1d61cac7fa2e061571080d9616 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add test for cpp.generateLinkerMapFile propertyDenis Shienkov2019-10-214-0/+74
| | | | | | | | | This test cover only the applications using the MSVC and GCC-like toolchains yet. Other toolchains and a product types can be added later if it will required. Change-Id: I37db96015774447e1e30b503d9853599be0177f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Allow to generate map file using MSVC toolchainDenis Shienkov2019-10-212-1/+12
| | | | | | | | | Right now it is possible to generate a linker map file using the cpp.generateLinkerMapFile property. Change-Id: Iffed6867e9829f5f2ca51b1932d6641963e66abe Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Implement cpp.generateLinkerMapFile for GCC-like toolchainsDenis Shienkov2019-10-213-3/+15
| | | | | | | | | Now it is possible to generate a linker map file from the GCC, MinGW and CLang toolchains. Change-Id: I69b07e907129daac0ff29bd62034d8807cd5fdf1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* Export the GLIB switch properlyRichard Weickelt2019-10-212-2/+2
| | | | | | | | | The GLIB event dispatcher was disabled in order to work around QTBUG-79020. But the environment variable was not exported properly and hence, the work-around had no effect. Change-Id: I9bad99168456ae734c895db0ed4f46885d6b4d48 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Introduce new cpp::generate{Assembler|Compiler}ListingFilesDenis Shienkov2019-10-178-39/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This properties enables or disables generation of a compiler or assembler listing files. Reason why we need in this property is in that some compilers (e.g. KEIL C51) generates a listing files by default, that spams a project sources directory. So, we need to have a possibility e.g. to disable it or to generate to an output directory. This patch implements this feature for KEIL, IAR, SDCC compilers with the following restrictions: * IAR (8051, AVR, STM8, MSP430, ARM) - full support. * KEIL (8051) - full support. * KEIL (ARM) - has only one restriction in that a compiler does not support specifying of an output listing file name. It is possible to specify only an output listing directory. So, a listing file names will be a bit different than for other compilers (e.g. if a source file name is 'foo.c', then the listing file name will be 'foo.lst', instead of 'foo.c.lst'). * SDCC (8051, STM8) - seems, has not possibility to disable an auto-generated listing files. But it generates an output listing files to a right output directory with the object files. Besides, a listing files has a correct names (e.g. for the 'foo.c' file, the listing file will be 'foo.c.lst'). Change-Id: Ic3516101e69eed156cf71606a7144efc72d40204 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.14 into masterChristian Kandeler2019-10-162-2/+6
|\ | | | | | | Change-Id: I7ee0af7942b15e889bd9dec35adbf43f9f17c839
| * Add change log for 1.14.1v1.14.11.14Christian Kandeler2019-10-161-0/+4
| | | | | | | | | | Change-Id: Ide01ad4e9abb3e0e1c1ffe3fe10bf14368cb32b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Qt support: Do not put all the QML plugin list content on one lineChristian Kandeler2019-10-141-1/+1
| | | | | | | | | | | | | | | | | | Add a newline after each PRL file entry. Otherwise, a line can get longer than 16K characters, which breaks the MSVC linker. Fixes: QBS-1465 Change-Id: Idb1e39aee8c3ae3ad6ea844723253e7d228bd7de Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Qt support: Fix reading plugin prl filesChristian Kandeler2019-10-141-1/+1
| | | | | | | | | | | | | | Amends 8c290c624d. Change-Id: I9b08b921a46ac56239dd7934f8c3aa9addf70d52 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Version bumpChristian Kandeler2019-10-081-1/+1
| | | | | | | | | | Change-Id: Ibfe460f99c2dae3ccf64169389dd7ddfb11be5ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix session autotest for slow machinesChristian Kandeler2019-10-141-1/+1
| | | | | | | | | | | | | | Let the user configure the time to wait for the next JSON packet. Change-Id: I2336cdbfebb64a8fdf44c74c1d4ae7abaac4dc4e Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | baremetal: Show full details of KEIL A51 errorsDenis Shienkov2019-10-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A problem is that a first lines of the following errors: 0000 24 ljmp usb_stub_isr ; (00) Setup data available. *** ________________________________________^ *** ERROR #A45 IN 24 (autovec_keil.a51, LINE 24): UNDEFINED SYMBOL 002C 46 ljmp usb_stub_isr ; (2C) EP1 out. *** _____________________________________^ *** ERROR #A45 IN 46 (autovec_keil.a51, LINE 46): UNDEFINED SYMBOL are ignored, becaue it does not match with the expected token. It does not expect that a line starts with a four hexadecimal letters. We can fix it using the regexp, like "^([0-9A-F]{4})" which is covered this use-case. Fixes: QBS-1503 Change-Id: I19c535ac1aa12bd3e8ffa33ad6c2abfa42d66dff Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Enable errors printing for KEIL A51 assemblerDenis Shienkov2019-10-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | An errors printing for A51 assembler are disabled by default: http://www.keil.com/support/man/docs/a51/a51_errorprint.htm so, we need to enable it explicitly. Change-Id: I22cb268aa7c884daf58b86424ddfbce81dbbe97b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve artifact creation code for IAR EW moduleDenis Shienkov2019-10-112-50/+45
| | | | | | | | | | | | | | ... to move this code to a separate helper functions. Change-Id: I56678be39df931105b04bec1340aa7ba09e523d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Use 'sdar' utility to create the library on SDCCDenis Shienkov2019-10-111-2/+2
| | | | | | | | | | | | | | | | | | The 'sdcclib' utility is deprecated since SDCC v2.9.0 (which was released in 2010 year). So, we need to use the 'sdar' utility instead. Change-Id: I6a9f7f4d4d93ad3a2f63b75827fce84a011945d2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Update windowsservercore/DockerfileJoerg Bornemann2019-10-115-75/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update qbs to 1.12.1 - Update Qt to 5.12.5 We're not using the installer anymore, because a) the unattended-install-hack doesn't work for newer Qt installers b) newer installers do not provide VS 2015 builds. c) it allows us to tailor the Qt build to our needs in the future. We're not building the documentation on Windows anymore due to the genius move to require libclang for qdoc. That means we need additional twiddling with the packages to add documentation that was built on an usable OS. Task-number: QBS-1438 Change-Id: I77a487562c2f5edd69b8b8a10ef3410ab599dc92 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Remove superfluous calls to Windows DefenderRichard Weickelt2019-10-111-12/+0
| | | | | | | | | | | | | | | | They seem to no longer work and it is unclear whether they were even needed. Change-Id: I784ecca1920be16ff6712c3b26340328c58ce75c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Don't interpret BL51 linker warnings as errorsDenis Shienkov2019-10-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BL51 linker (from Keil product for 8051 architecture) ends with the exit code '1' in case any linking warning occurred. It is not an error, because at errors the linker ends with the exit code '2'. So, we need just to increase the value of the linking command 'maxExitCode' property from 0 to 1, similar to the compiler command handling. Change-Id: I4917d08ca3407c8046879780e4c8696fdef7736a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Fix merging issues from 1.14 to masterDenis Shienkov2019-10-104-46/+9
| | | | | | | | | | Change-Id: Id859d95ddfb776ec534ba0e46d989bb2ba30770a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Bundle Qt libraries on all platformsRichard Weickelt2019-10-105-161/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows us to deploy a self-containing Qbs package on all host platforms that are supported by the official Qt binary packages. Although not all (Linux) distributions make use of it, this will be helpful to - provide at least some binary convenience packages for the most important distributions, - perform building and testing in different environments, for instance build Qbs in one stage and then run autotests for desktop, iOS, android in parallel on multiple machines, - avoid windeployqt which does not work when cross-building for Windows on a Linux hosts. Change-Id: I63de4ea2240b37d8bd465cbbf4ddff3d01eeac7e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix static buildChristian Kandeler2019-10-1030-41/+80
| | | | | | | | | | | | | | | | Make sure we link in the generator plugins. Fixes: QBS-1491 Change-Id: I8c48a73f972c4089cfc8c097a67e2945837e9ed4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge 1.14 into masterChristian Kandeler2019-10-087-126/+192
|\| | | | | | | Change-Id: Ief78bb9d82344e31135faca42a422c23951e87ec
| * Darwin: Adapt to Xcode 11Christian Kandeler2019-10-043-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - xcspec files can now refer to variables in variable names, as in the following line: CONTENTS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_$ (SHALLOW_BUNDLE)) - Some new environment variables have been introduced and need to be set when running our probes; e.g. "SWIFT_PLATFORM_TARGET_PREFIX". - The symbolLinkMode autotest made an invalid assumption about order of output. Change-Id: Ic845c2c4a8eafb4ece0f0bb04e6e492681a02979 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * baremetal: Add missed output artifacts for SDCC compilerDenis Shienkov2019-10-012-61/+92
| | | | | | | | | | | | | | | | | | | | Compiler produces a lot of additional ".adb", ".lst", ".asm", ".sym", ".rst", ".lk", ".mem" files. This files should be also processed in SDCC module (e.g. it allows to remove this files by 'clean' command). Change-Id: Ib07dbe63ab27e263d67025ce5cd40a967910d354 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * baremetal: Fix missed linker artifact for C51 compilerDenis Shienkov2019-09-302-55/+50
| | | | | | | | | | | | | | | | | | | | | | We need to add a file with extension '.m51' which is a map file, generated by BL51 linker for 8051 architecture. Also the artifacts creation code is refactored and improved a bit. Change-Id: I49b487acf87263dde818696d5a3478333839c30b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * baremetal: Handle missed 'driverLinkerFlags' property for SDCCDenis Shienkov2019-09-301-1/+3
| | | | | | | | | | Change-Id: Ibd58a4bdf6c05af79c0d847ccaacaec5381b35d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * baremetal: Fix assembler command for SDCC compilerv1.14.0Denis Shienkov2019-09-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to use the assembler command in the followiong format: Usage: [-Options] outfile file1 [file2 file3 ...] Besides, we have added an additional assembler option '-l' to explicitly generate of a listing file; without of this option the linking fails. Change-Id: I0240b354f44edac94e3e4305fe6b1a4c34ca4bf9 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Disable glib event dispatcher in bionic Docker imageRichard Weickelt2019-10-072-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Disable glib in the bionic Docker image, as the glib event dispatcher leads to deadlocks in TestBlackbox::concurrentExecutor quite often. The problem should hardly occur in practice. This is a work-around until QTBUG-79020 is fixed. Fixes: QBS-1499 Change-Id: I8cecc979b1c13b053c0ee0787cc4bc0a0de8b701 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Refactor the map file generation propertyDenis Shienkov2019-10-0114-37/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. It is makes sense to define this property once inside of CppModule, instead of duplicate it in each other module. 2. A new property name 'generateLinkerMapFile' will be better than a previous, so, we can rename this property. 3. The map file generation is not necessary to be always enabled, so, we can disable this property by default. Change-Id: I0439e8b3e0273593c8456d32b1c099ff09498fad Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | JSON API: Force binary mode for stdout on WindowsChristian Kandeler2019-09-301-0/+15
| | | | | | | | | | | | | | | | Otherwise, the line feed character will get expanded to \r\n. Change-Id: I90e83d80625c59978986541fb2d04f49e75afaf0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* | Merge 1.14 into masterChristian Kandeler2019-09-268-22/+94
|\| | | | | | | Change-Id: Ie432987ee2d3ccaa6e881b1b01f142185eddabd8
| * Darwin: More filtering in SDK directoryChristian Kandeler2019-09-261-0/+3
| | | | | | | | | | | | | | | | Do not try to detect an SDK from a driver kit directory. Fixes: QBS-1495 Change-Id: I05ef565d599e83dcc02d0d18e656fabfd0aad943 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * baremetal: Fix auto detection of SDCC toolchain on WindowsDenis Shienkov2019-09-232-18/+49
| | | | | | | | | | | | | | | | | | | | | | | | The SDCC toolchain package can be provided as 32-bit or as 64-bit installer. If the SDCC 64-bit package will be installed on the 32-bit Windows, then it will not be found in the system registry, because we use the QSettings::NativeFormat. So, we need to check the data for the 32-bit and 64-bit registry sequentially. Change-Id: I15981f39274308e3690cf072396cf1ae82b6743d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add how-to about ccacheKai Koehne2019-09-162-1/+32
| | | | | | | | | | | | | | Task-number: QBS-1325 Change-Id: Ice2e5f16b453b9bde8d2a90918eb593db81bff97 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Richard Weickelt <richard@weickelt.de>
| * Fix MSVC warningsOrgad Shaneh2019-09-132-2/+2
| | | | | | | | | | | | | | | | 'return': conversion from 'size_t' to 'int' Change-Id: I18e8fa03a9303855693da3027b722b104cee5d6d Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: hjk <hjk@qt.io>
| * Fix Qt module-provider for Qt5.13.1 and beyondRichard Weickelt2019-09-081-1/+1
| | | | | | | | | | | | Change-Id: I6eef8b28a741c417dc54a33577a2ad4b43def767 Fixes: QBS-1492 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Evaluate probes before Profile itemsRichard Weickelt2019-09-254-3/+29
| | | | | | | | | | | | | | | | | | | | Profile items can reference project properties, but accessing properties of project-level probes failed. This patch ensures that probes are executed before Profile items are evaluated. Fixes: QBS-1490 Change-Id: I5c215b91ded51ac895e433faa2e6fcfbc3d3e212 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Bump Qt version to 5.12.5 for automated buildsRichard Weickelt2019-09-232-8/+10
| | | | | | | | | | | | | | | | | | Also introduce accurate versioning for docker images. This makes it possible to use different build environments in different branches. Change-Id: I4feb83dbba886c4369d661ec746428b0c89b80b4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>