| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... with custom extension for SDCC compiler.
The SDCC compiler always generates the listing files in the
format of 'module.c.lst', and there is no way to disable a
generation, or to specify a different name for the listing
file. In addition, we cannot change or delete the generated
listing file until the linking is complete (this is such a
feature of the SDCC compiler).
So, to turn off the listing file generation, or to specify
a custom listing file extension, we need to do the following
extra steps:
1. If the custom cpp.compilerListingSuffix property is set,
then we need to make a copy of the generated listing file
after the compilation completes. And then to delete the all
listing files with the '*.lst' extension after the linking
completes.
2. If the cpp.generateCompilerListingFiles property is disabled,
then we need to remove the all generated listing files with
the '*.lst' extension after the linking completes.
Change-Id: Ia235f7e2ebf88695e4648fb894624c7420968079
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ARMCC compiler has no options for specifying the name of
the output listing file; it only has an options for specifying
an output directory.
In addition, the generated listing files are in truncated format,
e.g. instead of the 'module.{c|cpp}.lst' file will be generated
the 'module.lst' file.
This behavior complicates the writing of unit tests, and also
complicates the implementation if the user wants to change the
cpp.compilerListingSuffix property.
A workaround is to post-process the compiler listing files after
they are generated. In this case, we only need to rename the
generated compiler listing file to the desired one.
Change-Id: I89c81896711b90b146a94c35d2ec75e296824752
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We do not need multiple test data instances (*.qbs) for each property,
because we can pass the required properties from the C++ code directly.
Also now we can know about the compiler listing file suffix directly,
through the cpp.compilerListingSuffix property.
Change-Id: I644277458e3ae460cbfb6bba4a24583d9e6ba3e1
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now we can use the cpp.linkerMapSuffix property
to find out the currently used linker map suffix.
Also we can set a custom cpp.linkerMapSuffix value to
make sure that this applies to the module.
In addition, the generation of a custom linker map file
for SDCC toolchain has been fixed.
Change-Id: I8798cd6bea0ab6b5ea9728400827b8c98b11ba7b
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|
|
|
|
|
|
|
| |
We don't need in multiple test data instances (*.qbs) for each property,
because we can pass the required properties from the C++ code directly.
Change-Id: I3bc05db5f6c0d2533f9799cbadb830c0c687e1e5
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
| |
This test is an adaptation of a similar existing test. A main
difference it that this test intended only for a `bare-metal`
toolchains where there may be no support for a C ++ compiler.
Change-Id: I4ea023743a4940c96dd9abc96ffda8cd06385b0b
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IAR compiler has an undocumented command line option `--IDE3`,
which allows you to print a list of compiler include paths as:
`$$TOOL_BEGIN $$VERSION "3" $$INC_BEGIN $$FILEPATH "<path\\to\\directory>" $$TOOL_END`
Besides, the same approach is used in the IAR extension for
the VSCode IDE.
So we can use this approach to implement it the Qbs module as well.
In addition, this commit contains an autotest to check the
`cpp.compilerIncludePaths` property.
Change-Id: I434dd630913e5afd6cba5b4e31e1021ee0c5fe31
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
KEIL ARM compiler generates a listing files with 'short' names.
For example, for the source 'main.c' file it will produce the
listing 'main.lst' file, instead of the 'main.c.lst' file.
Thus, we have to account for this behavior in our tests.
Change-Id: I69ef693cbdd0aacf838eaf382e13e09d7fadbfb1
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
We need to use the /Fa compiler option as described here:
* https://docs.microsoft.com/en-us/cpp/build/reference/fa-fa-listing-file?view=vs-2019
Change-Id: I81470bfbf84563a49bd5336e7204a07d5b2c910e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. We need to use the {NO}PRINT linker options:
* https://www.keil.com/support/man/docs/bl51/bl51_noprint.htm
2. The KEIL C251 should generate the linker MAP file with the *.map
extension.
Change-Id: Ibc1f362c7010a1c2812c21382b617e246c81e100
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test checks the cpp.generateLinkerMapFile property,
which enables or disables generation for the linker map
file.
Take into account, that currently not all toolchains completely
supports or implements this feature, and this test skips such
toolchains.
Change-Id: I5ba90116ab0481bb65ff866cf02f8a1963cf00a9
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test checks the cpp.generateCompilerListingFiles property,
which enables or disables generation for the compiler listing
files.
Take into account, that currently not all toolchains completely
supports or implements this feature, and this test skips such
toolchains.
Change-Id: I533e6b2e5b4af5668cf24f851334b9530bc3a901
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
| |
This test checks the cpp.defines property.
Change-Id: If5ba39ef48c91147b883b2fe0dcab894b54e3cdb
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test checks the cpp.libraryPaths and the cpp.staticLibraries
properties.
This test excluded for the KEIL C51/C251/C166 toolchains,
because this toolchains has not the options to specify the
library search paths:
* https://www.keil.com/support/docs/1298.htm
Change-Id: I17b5dc64ae3baacb32621b359863ba42c908d416
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This 'none' value should be used for a bare-metal toolchains
in the qbs.targetPlatform and the qbs.targetOS properties.
Now this value is set in the profiles during automatic detection
of such toolchains as IAR, KEIL and SDCC.
Take into account, that it is impossible to do the same and for
the GCC toolchain, because there are not exists a proper way to
know that a current GCC is for a 'bare-metal'. So, the users
should change the qbs.targetPlatform manually.
Change-Id: I178fd526bbb5ae44f18e35ff12970ed0718c476d
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
... because this toolchain does not support the pre-include
headers.
Change-Id: I3b34a39da01500540cbaca62244104c8262875fc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
| |
This commit adds an auto-test which compiles an application
using one asm-source main module to check that an assembler
does work correctly.
Change-Id: I38d512f62bab2e96781405632822f81c13673064
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Right now it is possible to use the cpp.prefixHeaders property
for the KEIL ARM MDK and the IAR EW toolchains.
Take into account that the IAR EW toolchain support only one
preinclude file.
Change-Id: I9e367825575409fa446f3b012a0e1e8d156643ef
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a blackbox auto-test which provides a project
with a multiple static library products 'a-e' and an one application
product. An application depends on the 'e' library, but this library
also depends on other libraries 'a-d'.
Tested for MCS51 architecture with IAR, KEIL, and SDCC toolchains.
Change-Id: Ib79f4f7bed4ac0bf6f06d39705bb19bd4284f22d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a blackbox auto-test which compiles
an application using two include paths foo and bar.
Tested for MCS51 architecture with IAR, KEIL, and SDCC
toolchains.
Change-Id: I0eb480ee700ee1d44df69bbcfe9d7d87681212d6
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a blackbox auto-test which compiles
an application using two include paths foo and bar.
Tested for MCS51 architecture with IAR, KEIL, and SDCC
toolchains.
Change-Id: If68be8f120a0ef760f6ca5b3674dfd49f2cf8a7f
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a blackbox auto-test which compiles
an application using two include paths foo and bar.
Tested for MCS51 architecture with IAR, KEIL, and SDCC
toolchains.
Change-Id: I4d6114ac2d0b4d8afaf976d5752da8e08d6c73a7
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
This commit adds a blackbox auto-test which compiles
two applications:
* first - is an application from the one object file
* second - is an application from the two object files
Tested for MCS51 architecture with IAR, KEIL, and SDCC
toolchains.
Change-Id: Ib33430a6d87d3cdda48861e688b233e182d96b51
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|