[Qt-creator] build settings for cross platform? multiple svn checkouts on each development computer

Eike Ziller eike.ziller at nokia.com
Mon Apr 26 14:12:18 CEST 2010


On Apr 26, 2010, at 1:14 PM, ext Danny Price wrote:

> 
> On Mon, Apr 26, 2010 at 11:13 AM, Tobias Hunger <tobias.hunger at nokia.com> wrote:
>> Hi Danny!
>> 
>> Sorry, I really do not see anything to fix in creator for the following
>> reasons:
>> 
>>  * No variable is ignored. DESTDIR is relative to the build directory,
>> so it is set and used correctly (but points to a location where the
>> stuff it is looking for is not found).
>> 
>>  * No build pathes are changed. Everything is put exactly where specified.
>> 
>>  * Creator does not interfere with anything set in the .pro-file.
>> 
>> 
>> Your example project layout is basically three separate projects, tied
>> together using relative pathes so that the libraries are found. That
>> does indeed break in the presence of shadow building (or even more minor
>> changes like the user checking out these three projects into separate
>> directories, renaming some directory, etc.). I do not know your project
>> requirements and there is probably a good reason for doing things the
>> way you did, but I would really suggest making the build system more robust.
>> 
> Ah so you can explain how I should modify the sample projects to do just that? I assume that relative paths from the shadow build directories are also a bad idea?
>  
>> The preferred way is of course (as you already suggested) to bundle the
>> libraries and the application using them together into one SUBDIRS
>> project. That way you do get dependency tracking and the libraries will
>> get automatically rebuild when they are changed. This further should
>> ease packaging of the complete thing.
>> 
> Now this I find interesting as it seems to contradict Nokia's previous advice on the subject - that is to use sessions... 

We (as in "a bunch of Qt Creator developers") have been promoting the use of subdirs pro files a lot as well on this mailing list. Because both sessions and special setups in Qt Creator's project settings are special Qt Creator setups. So relying on these is no use in mixed environments.

> I've had very mixed results with SUBDIRS in creator. I have to be setup manually, require the use of undocumented qmake features and don't always link together properly when dependants change. And until recently, you had to rebuild the until tree for a single dependant change to be picked up.
> 
> But even if I use a subdir, won't I have the same issues? SUBDIRS allow me to specify the build order but not link dependencies for which I need PRE_TARGETDEPS. So I have to specify a path. What path do I specify?

Since you would open the SUBDIRS project in Qt Creator, you end up with a single project in Qt Creator,
and therefore with a single shadow build directory for your whole, multi-part project. So you can use relative paths for mapping between the sub-projects.
Like when opening qtcreator.pro.
The thing that is not clear to me (haven't tried), though, is how qmake actually maps the paths to a shadow build directory if you use SUBDIRS that refer to sub projects via ../ (ie. if your sub projects are not in a sub-path of the SUBDIRS project).

> 
>> If you are reusing the same libraries together with several applications
>> you can of course have several top-level SUBDIRS project files (one for
>> each application, referencing the application itself and all libraries
>> used by it).
>> 
> Thanks I might try that.
>  
> 

Br, Eike

-- 
Eike Ziller
Software Engineer
Nokia, Qt Development Frameworks

Nokia gate5 GmbH
Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
Umsatzsteueridentifikationsnummer: DE 812 845 193
Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori







More information about the Qt-creator-old mailing list