aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* | baremetal: Change order for input parameters of addOptionsGroup() methodDenis Shienkov2019-09-2329-373/+372
| | | | | | | | | | | | | | | | | | ... and to make the 'version' as latest parameter with default value, that simplifies usage of that method a bit. Change-Id: Iad1e5097ee1d46d86d745c50090e2cd0e7343de9 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Introduce the session commandChristian Kandeler2019-09-1856-36/+3477
| | | | | | | | | | | | | | | | | | | | Offers a JSON-based API for interaction with other tools via stdin/ stdout. This allows for proper qbs support in IDEs that do not use Qt or even C++. Change-Id: Ib051a40b7ebe1c6e0c3147cca9bd96e7daec1fde Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Allow build of at least the html docs when cross-compilingRichard Weickelt2019-09-021-1/+3
| | | | | | | | | | | | | | | | Qch requires qhelpgenerator which is not bootstrapped, but qdoc works to some extent. Change-Id: I08ce043281c45a29829a2ec25d8ad3e38e90d4e2 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Update Xcode version to 10.3Richard Weickelt2019-09-021-7/+2
| | | | | | | | | | Change-Id: I97e475dbe493dbdd06491648ed1ebc767e7ff621 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Allow overlapping uid/gid in containerRichard Weickelt2019-09-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it possible to start the container on a Linux host where the uid/gid of the current user is similar to an existing uid/gid in the container that is not the "devel" user. For instance, if the host gid is 100, then groupmod in the entrypoint script refuses to change the "devel" user to gid 100 because that gid is already taken by the "apt" group in the container. Change-Id: Ifc4980b118b9b94bf744aa1108225d3c727eb644 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Merge 1.14 into masterChristian Kandeler2019-08-301-1/+2
|\| | | | | | | Change-Id: Iad75f8b2beb8d26c1c2369cce15e4fb1af1106e5
| * Autotests: Work around compression bug in 5.13.0Christian Kandeler2019-08-301-1/+2
| | | | | | | | | | | | | | Our QtScxml test ran into QTBUG-76521. Change-Id: Id667846acd165d5b79dd6acc9cb8c790f6e228a2 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | baremetal: Long live the IAR EW project generator for MSP430Denis Shienkov2019-08-2820-2/+2115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now it is possible to generate a native projects for the IAR Embedded Workbench IDE, e.g. using the following command: qbs generate -g iarew7 -d <path/to/build/directory> -f <path/to/qbs/project> profile:<your/qbs/profile> We need in a valid IAR EW QBS profile, from which the generator take a desired target architecture and other stuff. The IAR EW generator has a semi-intelligent logic, it parses a source QBS project and converts a compiler flags and other stuff to an appropriate configurations of the native IAR EW project. Currently it is supported only one 'iarew7' generator which allow to generate a projects for the IAR EW for MSP430 for all versions of 7 series. Tested with the IAR EW for MSP430 v7.12.4, using as the QBS bare-metal examples, and as other projects. Change-Id: Ic0bbc82e6ebb3b04bced639797976e432809171f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge "Merge 1.14 into master"The Qt Project2019-08-288-1/+53
|\ \
| * | Merge 1.14 into masterChristian Kandeler2019-08-268-1/+53
| |\| | | | | | | | | | Change-Id: Ic9ee11d628ba278271517aae0af020aec28ecbf7
| | * Process Command: Do not needlessly interpret output as textChristian Kandeler2019-08-268-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... when redirecting process output. Only do that if there is an output filter function. Otherwise, we break redirection of binary data. Fixes: QBS-1488 Change-Id: Ic5a1d2653fa8fc9c4f0eb5d31b7315d7aba3e030 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | | Add Ubuntu 18.04 Docker imageRichard Weickelt2019-08-274-12/+308
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contains: - Qbs 1.13.1 (from QtCreator 4.9.2) - Qt 5.12.4 for Linux (prebuilt) - Qt 5.12.4 for Windows (compiled from source) - gcc 7.4 - mingw-w64 (7.3) This image can build Qbs and all its components for Linux and Windows targets. It might supersede Debian stretch which is not officially supported by Qt 5.12. The only limitation is that it can neither build Chocolatey packages nor run windeployqt. Change-Id: Icee1f002483f68839d39c8c152a9c5d886dabcfb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix wrong capitalization of Windows-specific header fileRichard Weickelt2019-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This header file is lower-case, even on Windows. But it would remain undetected because NTFS is not case-sensitive by default. Correct capitalization is required when cross-compiling with MinGW on Linux. Change-Id: I584ae7c9dcf81597a2b9b6481e95fc65ec6e125a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Clean up version treatment in cpp moduleRichard Weickelt2019-08-232-21/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The handling of version numbers in the cpp module was overly complicated and too restrictive. Version numbers that are valid according to SemVer (for instance 1.2.3-beta+47) were not accepted although being valid. This patch allows the usage of any version number as long as it starts with x[.y[.z]]. It also simplifies version number handling in the cpp module. Task-number: QBS-1486 Change-Id: I2790f8a80bd78bf549f5d46c0748f88c788addec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Switch to Qt installer script in Docker containerRichard Weickelt2019-08-234-142/+41
| | | | | | | | | | | | | | | | | | | | | | Use the official packages instead of compiling Qt ourselves. This simplifies the Docker image a lot. For accessing the script folder, the Docker context needs to change to the root directory. Thus, we need a .dockerignore file to keep the size of the context low. Change-Id: I58ec8f364feba955518f1eaf5bff234332ae8dec Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | baremetal: Add support for GCC to msp430f5529 exampleDenis Shienkov2019-08-234-0/+21
| | | | | | | | | | | | Change-Id: I0cb4e24f42945b88ef2ff283d4809d47cf95e81d Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>