[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