[QBS] Populate includes path to other products

Andrey Anpilogov anpilog at gmail.com
Wed Jan 7 08:34:59 CET 2015


Thanks for advise, Dmitry.

I've tried and id doesn't work.
Same problem...
I simplified test case. So now it's just qbs/examples/app-and-lib with one
extra header file.

----------------------------------
anpilog at Andriis-MacBook-Pro.local:~/git/cmake/test
➜ qbs profile:gcc
Restoring build graph from disk
Building for configuration gcc-debug
compiling main.cpp
ERROR: /usr/bin/g++ -m64 -g -Wall -Wextra -pipe -fvisibility=default -fPIC
-c /Users/anpilog/git/cmake/test/app/main.cpp -o
/Users/anpilog/git/cmake/test/gcc-debug/app-and-lib-app.gcc/.obj/main.cpp.o
/Users/anpilog/git/cmake/test/app/main.cpp:2:10: fatal error: 'lib.h' file
not found
#include "lib.h"
         ^
1 error generated.
ERROR: Process failed with exit code 1.
The following products could not be built for configuration gcc-debug:
app-and-lib-app
----------------------------------

Include folders from lib/lib.qbs are not passed to app/app.qbs.

Besides I would expect some configurable way what headers to share from
product...

It's still confusing me a lot.


2015-01-07 15:19 GMT+08:00 Dmitry Volosnykh <dmitry.volosnykh at gmail.com>:

> Andrey, I would suggest you to extract your "project" to a separate .qbs
> file. So that your top-level qbs looks like below:
>
> import qbs
>
> Project {
>     references: [
>         "app/app.qbs",
>         "lib/lib.qbs"
>     ]
> }
>
> Then in the app.qbs do:
>
> Depends { name: "lib" }
>
> Such setup works for me.
>
> PS. Don't know if mixing references with direct Product declarations is
> good to go... Documentation says nothing about it.
>
> On Wed, Jan 7, 2015 at 9:59 AM, Andrey Anpilogov <anpilog at gmail.com>
> wrote:
>
>> Hi,
>>
>> I'm investigating qbs as possible replacement to Makefiles in my project.
>> And it looks good except one thing: how to add include path from product
>> to product?
>>
>> Let's take an example:
>>
>> project.qbs
>> ---------------------------------------------
>> import qbs 1.0
>>
>> Project {
>>   references: [
>>       "lib/build.qbs"
>>   ]
>>
>>   Product {
>>     name: "project"
>>     type: "application"
>>     files: "main.cpp"
>>     Depends { name: "lib" }
>>     Depends { name: "cpp" }
>>   }
>> }
>> ---------------------------------------------
>>
>> lib/build.qbs
>> ---------------------------------------------
>> import qbs 1.0
>>
>> Product {
>>    name: "lib"
>>    type: "staticlibrary"
>>
>>    files: ["file1.cpp", "file2.cpp"]
>>    cpp.includePaths: ["api", "ppi", "xdi"]
>>    cpp.defines:          ["xxx", "zzz"]
>>    cpp.cxxFlags:       ["xxx", "zzz"]
>>    cpp.cFlags:           ["xxx", "zzz"]
>>    cpp.commonCompilerFlags: ["-Os", "-gdwarf-2", "-Wall"]
>>    cpp.linkerScripts: "xxx"
>>    Depends { name: "cpp" }
>> }
>> ---------------------------------------------
>>
>> It's quite similar to qbs/examples/app-and-lib example.
>> The problem is that project/main.cpp can't include headers from 'lib'
>> folder due to qbs doesn't add any include path from product:lib.
>> I've looked over docs and cpp profile and could not find anything better
>> then manually add includes into application product:
>>
>> ---------------------------------------------
>> import qbs 1.0
>> Project {
>>   references: [ "lib/build.qbs" ]
>>
>>   Product {
>>     name: "project"
>>     type: "application"
>>     //...
>>     cpp.includePaths: "lib"
>>   }
>> }
>> ---------------------------------------------
>>
>> And it looks quite strange to me. If I add reference and make product
>> depended from other product I would expect I can pass not only static
>> libraries to dependant product but also headers path...
>>
>> Or there is some other approach?
>>
>> Regards.
>>
>> _______________________________________________
>> QBS mailing list
>> QBS at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/qbs
>>
>>
>


-- 
-- 
WBR,
  Andrii Anpilogov
  Phone: +86 186-1660-3720
  Skype: anpilogov.andrey
  mailto:anpilog at gmail.com, andrii.anpilogov at mesheven.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20150107/d86ad4ae/attachment.html>


More information about the Qbs mailing list