On 09/25/2014 03:16 PM, Thomas Epting wrote: > > > Now with the new target structure introduced in Qbs 1.3 one can easily > > > exceed this limit. In this version, the target structure is composed of > > > these these parts (at least for MSVC): > > > > > > > D:\<targetpath>\<profile>-release\<productname>.<profile>\.obj\<srcpath>\<filename>.cpp.obj > > Let me follow up on this. First, please note that I like the new target > structure very much. It's simple, clean and comprehensible. However it's > a shame that Windows still has this 260 character limitation. > > Maybe the second occurence of <profile> can be avoided. It seems to be > redundant to me, and leaving it out helps a bit with the 260 char > problem.
Not really possible, because products can have a different profile than the overall project. But we could shorten the name. In qbs master, we currently append a hash to a "clean" product name. I suppose this name could be shortened to some fixed length without the danger of introducing clashes. > Another idea would be to find a suitable way to shorten <srcpath>. Yes. What a module really means when it says "put the output file at <build dir> + <relative path of input file" is "I don't want the output file path to clash with another one that has the same file name, but whose input file lives in a different directory". The question is how to achieve that without putting a burden on module implementors. Maybe qbs core could provide a JavaScript function called e.g. uniqueOutputFilePath() that takes an input file path and an output file name (the latter must be under the module's control, because it might be a target artifact) and returns the complete output file path. The implementation could simply hash the input file path and supply the result as a directory component. Christian _______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs