Re: [QBS] Preserve directory structure during installation
On 08/07/2014 12:57 PM, Richard Weickelt wrote: > how can I install a specific file type from a given folder while preserving > the folder hierarchy? There currently is no good solution for the general case. We hope to solve this for qbs 1.5, where an overhaul of the approach to installation is planned anyway. Christian ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] How to resolve dependencies on generated header files
On 07-Aug-14 15:14, Richard Weickelt wrote: > Eureka! Thank You for explaining. I think, my problem is located in the > definition of 'dependency' which seems to have a rather temporal meaning. > Let me repeat in my own words what You have said: If foo.cpp includes foo.h, > QBS detects a *dependency* between them through its built-in cpp-scanner. > Dependency means: if foo.h is generated by a rule, QBS ensures, that foo.h > is generated *before* foo.cpp is compiled. It does *not* add the output > folder of foo.h to the includePath of foo.cpp. The latter is what I have > expected and where the confusion comes from. > > Is this correct? That's correct. :) BR, Joerg ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] How to resolve dependencies on generated header files
>> What 'automatically' means then in the above paragraph? Does it mean >> anything beyound "generated header files can be tagged and therefore serve >> as dependencies for other rules"? > > If there's a foo.cpp that includes foo.h and foo.h is generated by such a > dyamic rule then a dependency from foo.cpp to foo.h is added. If the rule > decides in a later build that foo.h is not generated anymore, then foo.h > (and the dependency) is removed. > That's basically what I tried to compress into the word "automatically". > No magic, maybe even not worth mentioning, but an important automatism. Eureka! Thank You for explaining. I think, my problem is located in the definition of 'dependency' which seems to have a rather temporal meaning. Let me repeat in my own words what You have said: If foo.cpp includes foo.h, QBS detects a *dependency* between them through its built-in cpp-scanner. Dependency means: if foo.h is generated by a rule, QBS ensures, that foo.h is generated *before* foo.cpp is compiled. It does *not* add the output folder of foo.h to the includePath of foo.cpp. The latter is what I have expected and where the confusion comes from. Is this correct? Richard -- Richard Weickelt Jagowstraße 15 10555 Berlin Germany Tel:(+49) (0) 30 96 60 30 90 Fax:(+49) (0) 355 5 478 477 9 Mobil: (+49) (0) 151 23347215 ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] How to resolve dependencies on generated header files
On 07-Aug-14 12:55, Richard Weickelt wrote: > What 'automatically' means then in the above paragraph? Does it mean > anything beyound "generated header files can be tagged and therefore serve > as dependencies for other rules"? If there's a foo.cpp that includes foo.h and foo.h is generated by such a dyamic rule then a dependency from foo.cpp to foo.h is added. If the rule decides in a later build that foo.h is not generated anymore, then foo.h (and the dependency) is removed. That's basically what I tried to compress into the word "automatically". No magic, maybe even not worth mentioning, but an important automatism. BR, Joerg ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
[QBS] Preserve directory structure during installation
Hi, how can I install a specific file type from a given folder while preserving the folder hierarchy? Example: source-dir | +-- subdir1 | +--file1.h | +--file1.cpp | +-- file2.h +-- file2.cpp should install to: install-root | +-- include | +-- subdir1 | +--file1.h | +-- file2.h The following snippet Group { prefix: "**/" files : "*.h" qbs.install : true qbs.installDir : "include" } would just gather all .h files and copy them to 'include'. Creating a group for every folder would be possible, but is cumbersome when it comes to large folder hierarchies. Is there any generic solution for that? Richard ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] How to resolve dependencies on generated header files
Hi, >>> Qbs now supports rules with a flexible number of outputs. For example, >>> you may write an IDL file containing the descriptions of several C++ >>> interfaces. An interface compiler generates a number of header files. The >>> generated header files are automatically taken into account as potential >>> dependencies. >> >> I stumbled over the word *automatically*. I know how to write custom >> transformation rules in modules to generate header files, but I do not >> understand how the generated header files would magically appear in >> cpp.includePaths. > > They don't appear magically in cpp.includePaths, and I have no clue how > you've concluded this from the above paragraph. That was my intention of "taking header files automatically into account as potential dependencies". >> From what I understand, I would have to define an extra product for >> generated header files which anoher product can then depend on [1] or I >> could use a fixed output folder, where all generated files are written to. >> This output folder is then explicitly added to cpp.includePath. The latter >> is done for ui files in [2] as well. > > That's true. What exactly is your question? What 'automatically' means then in the above paragraph? Does it mean anything beyound "generated header files can be tagged and therefore serve as dependencies for other rules"? Richard signature.asc Description: OpenPGP digital signature ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] How to resolve dependencies on generated header files
On 07-Aug-14 11:45, Richard Weickelt wrote: >> Qbs now supports rules with a flexible number of outputs. For example, >> you may write an IDL file containing the descriptions of several C++ >> interfaces. An interface compiler generates a number of header files. The >> generated header files are automatically taken into account as potential >> dependencies. > > I stumbled over the word *automatically*. I know how to write custom > transformation rules in modules to generate header files, but I do not > understand how the generated header files would magically appear in > cpp.includePaths. They don't appear magically in cpp.includePaths, and I have no clue how you've concluded this from the above paragraph. > From what I understand, I would have to define an extra product for > generated header files which anoher product can then depend on [1] or I > could use a fixed output folder, where all generated files are written to. > This output folder is then explicitly added to cpp.includePath. The latter > is done for ui files in [2] as well. That's true. What exactly is your question? BR, Joerg ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
[QBS] How to resolve dependencies on generated header files
Hi, my question related to QBS release post at http://blog.qt.digia.com/blog/2014/05/05/qbs-1-2-0-released/ > Qbs now supports rules with a flexible number of outputs. For example, > you may write an IDL file containing the descriptions of several C++ > interfaces. An interface compiler generates a number of header files. The > generated header files are automatically taken into account as potential > dependencies. I stumbled over the word *automatically*. I know how to write custom transformation rules in modules to generate header files, but I do not understand how the generated header files would magically appear in cpp.includePaths. >From what I understand, I would have to define an extra product for generated header files which anoher product can then depend on [1] or I could use a fixed output folder, where all generated files are written to. This output folder is then explicitly added to cpp.includePath. The latter is done for ui files in [2] as well. [1] http://lists.qt-project.org/pipermail/qbs/2013-December/000591.html [2] https://qt.gitorious.org/qt-labs/qbs/source/src/lib/qtprofilesetup/templates/gui.qbs Richard ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs