[QBS] How to run module rules by ordered in "single-threaded" mode?

Christian Kandeler christian.kandeler at digia.com
Thu May 22 17:41:03 CEST 2014


On 05/22/2014 05:16 PM, Denis Shienkov wrote:
> Hi all..
>
> I in process of creating a custom module to support of an Keil C51 compiler.
>
> Currently I have an very big problem: the C51.exe compiler is frequently
> crashed when it is invoked from the Rule of module. A crash happens if
> number of source files (*.c) more than one.
>
> The interesting moment that if to run compilation manually from command
> file (e.g. *.bat file) that a crash isn't present. Of course, I do it
> with the same command line options which is passed to compiler from my
> qbs module. I.e. command options is identically..
>
> A main difference in that a compiler C51.exe is called by ordered in
> case of the BAT file. I.e. at the same time only one copy of C51.exe
> process can be active to compile of one source file. But in case of
> invoke from Qbs, are launched more than one process of C51.exe at the
> same time (multithreaded ??).
>
> So seems, it is brings to crashes of the C51.exe compiler, but I am not
> sure.
>
> Thus, my question such: whether it is possible to configure the Qbs
> module with some parameters to force it to work in an ordered
> "single-threaded" mode? E.g. when the following Rule (operation) can't
> be launched, while the previous Rule (operation) is not complete?

This sounds very strange. Why would the compiler care whether other 
instances of it are running (on different source files)? Anyway, you can 
force single-threaded mode by passing the "-j" option with a parameter 
of 1. In Creator, adjust the "Parallel Jobs" setting in the build step 
details.


Christian



More information about the Qbs mailing list