[Qt-creator] SUBDIRS template with common libraries used in multiple projects

Ziller Eike Eike.Ziller at theqtcompany.com
Thu Mar 5 13:01:10 CET 2015


> 	TEMPLATE = subdirs
> 
> 	SUBDIRS = app1 myCommonLib
> 
> 	app1.file = ./app1.pro
> 	myCommonLib.file = ../myCommonLib/myCommonLib.pro
> 
> 	app1.depends = myCommonLib


myCommonLib.file = ../myCommonLib/myCommonLib.pro

I think that ../ might be a problem already for qmake.
I’m not sure what you mean with different shadowbuild directories. Qt Creator creates a single shadowbuild directory for each .pro file that you open as a toplevel project in Qt Creator.

src/app1/app1.pro
src/commonlib/commonlib.pro
and
src/app1_solution.pro with

TEMPLATE = subdirs
SUBDIRS = app1 commonlib
app1.depends = commonlib

Open src/app1_solution.pro in Qt Creator (not app1.pro nor commonlib.pro) & building results in a single shadowbuild directory where it builds commonlib in commonlib/ and app1 in app1/

> On Mar 5, 2015, at 12:01 PM, André Hartmann <andre.hartmann at iseg-hv.de> wrote:
> 
> Hi Markus,
> 
> I must admit I'm no expert when it comes to subdirs projects.
> 
>> well, disabling shadow-building is actually not an option as this
>> would spoil my SVN directory with temporary build files.
> 
> I understand.
> 
>> I don't have a clue why, because I thought that the *.pro.shared
>> settings should be superior to the *.pro.user settings.
> 
> There have been (multiple) discussions on the mailing list regarding the 
> sharing of build settings.
> 
> IMHO, the crux is to have exactly the same Kits on all developing 
> computers. This should be achivable by using sdktool.
> 
> But that would, unlike you want, place the build files within the source 
> folders.
> 
>> As you can see from the naming of my "solutions" - I am looking for
>> something like the well known Visual Studio Solutions (*.sln) in Qt
>> Creator.
> 
> If you get one step further, I'd like to know. I'm also interested in 
> such setups.
> 
> Best regards,
> André
> 
> Am 05.03.2015 um 09:26 schrieb Markus Franke:
>> Dear André,
>> 
>> Am 04.03.2015 um 15:34 schrieb André Hartmann:
>>> So the only way I see (if you can't change the project structure) is to
>>> disable shadow-building by hand.<
>>> 
>>> I'm not sure if it works with the shadow build option, but you could try
>>> to disable shadow build by setting up a pro.shared file. You just need
>>> to figure out the correct key from the pro.user file.
>>> 
>>> http://qt-project.org/doc/qtcreator-3.0/creator-sharing-project-settings.html
>>> 
>> 
>> well, disabling shadow-building is actually not an option as this would
>> spoil my SVN directory with temporary build files.
>> 
>> Thanks for the link to the setup of shared project settings. I did some
>> experiments with it, however after a new user does a clean check out of
>> the project together with the *.pro.shared file, the relevant settings
>> get marked "sticky" in the newly created *.pro.user file. I don't have a
>> clue why, because I thought that the *.pro.shared settings should be
>> superior to the *.pro.user settings.
>> 
>> So the only way I see to use the SUBDIRS template with my common library
>> would be to have the following filesystem layout:
>> 
>> /GenericCodeFolder/
>> ——app1 (using commonlib)
>>   ——app1.pro (TEMPLATE=app)
>> ——app2 (using commonlib)
>>   ——app2.pro (TEMPLATE=app)
>> ——app3 (using commonlib)
>>   ——app3.pro (TEMPLATE=app)
>> ——commonlib
>>   ——commonlib.pro (TEMPLATE=lib)
>> ——app1_solution.pro (TEMPLATE=SUBDIRS)
>> ——app2_solution.pro (TEMPLATE=SUBDIRS)
>> ——app3_solution.pro (TEMPLATE=SUBDIRS)
>> 
>> As you can see from the naming of my "solutions" - I am looking for
>> something like the well known Visual Studio Solutions (*.sln) in Qt
>> Creator.
>> 
>> Best regards,
>> Markus
>> 
>> Btw: I am using Qt Creator 3.3.1.
>> 
>>> 
>>> 
>>> Best regards,
>>> Andre
>>> 
>>> Am 04.03.2015 um 14:10 schrieb Markus Franke:
>>>> Hi André,
>>>> 
>>>> Am 04.03.2015 um 13:53 schrieb André Hartmann:
>>>>> Markus, as far as I can see you already use yyy.depends=xxx,
>>>>> but the problem is, that the library is build in a different folder due
>>>>> to shadow-building?
>>>> 
>>>> Yes you are right. Due to the fact that I am referencing the library
>>>> through relativ paths like "../../" in my SUBDIRS project, it won't get
>>>> built inside the shadow build folder. The build files will rather be
>>>> stored two levels above the shadow build folder because of the relative
>>>> paths. Everything compiles fine but I don't like the fact that my built
>>>> files will be stored "somewhere in the wild".
>>>> 
>>>> Best regards,
>>>> Markus
>>>> 
>>>>> 
>>>>> Best regards,
>>>>> Andre
>>>>> 
>>>>> Am 04.03.2015 um 12:46 schrieb Diego Iastrubni:
>>>>>> Maybe you need a specific build order? See this:
>>>>>> 
>>>>>> http://stackoverflow.com/questions/11079398/how-to-set-build-order-in-qt-subdir-project
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> And add this to your pro file
>>>>>> 
>>>>>> |CONFIG += ordered|
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Wed, Feb 25, 2015 at 2:59 PM, Markus Franke
>>>>>> <Markus.Franke at linguwerk.de <mailto:Markus.Franke at linguwerk.de>>
>>>>>> wrote:
>>>>>> 
>>>>>>    Dear all,
>>>>>> 
>>>>>>    I am struggeling with using the SUBDIRS template within my
>>>>>> project. I
>>>>>>    already opened up a thread on the Qt Project Forum
>>>>>> 
>>>>>>    https://qt-project.org/forums/viewthread/53340/
>>>>>> 
>>>>>>    My problem is described over there. I wanted to ask on this
>>>>>> list if
>>>>>>    anybody of you have some more suggestions regarding this issue.
>>>>>> 
>>>>>>    Thanks and with best regards,
>>>>>>    Markus Franke
>>>>>>    _______________________________________________
>>>>>>    Qt-creator mailing list
>>>>>>    Qt-creator at qt-project.org <mailto:Qt-creator at qt-project.org>
>>>>>>    http://lists.qt-project.org/mailman/listinfo/qt-creator
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Qt-creator mailing list
>>>>>> Qt-creator at qt-project.org
>>>>>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 
> -- 
> Best regards / Mit freundlichen Grüßen
> André Hartmann, Dipl.-Ing. (FH)
> Software Project Manager
> 
> iseg Spezialelektronik GmbH         |  phone: ++49 (0)351 26996-43
> Bautzner Landstr. 23                |  fax:   ++49 (0)351 26996-21
> D-01454 Radeberg / Rossendorf       |  web:   www.iseg-hv.com
> 
> Geschäftsführer / Managing director: Dr. F. Gleisberg, Dr. J. Pöthig
> Amtsgericht / Lower district court: Dresden HRB 16250
> Ust.-Id.-Nr. / VAT-ID: DE812508942
> 
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
> Informationen. Wenn Sie nicht der richtige Adressat sind oder
> diese E-Mail irrtümlich erhalten haben, informieren Sie bitte
> sofort den Absender und vernichten Sie diese Mail.
> Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser
> Mail ist nicht gestattet.
> 
> This e-mail may contain confidential and/or privileged information.
> If you are not the intended recipient (or have received this e-mail
> in error) please notify the sender immediately and delete this e-mail.
> Any unauthorized copying, disclosure or distribution of the material
> in this e-mail is strictly forbidden.
> _______________________________________________
> Qt-creator mailing list
> Qt-creator at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator

-- 
Eike Ziller, Senior Software Engineer - The Qt Company GmbH
 
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B




More information about the Qt-creator mailing list