[Bf-committers] Fast Linux/CMake/QtCreator Setup Tutorial

Campbell Barton ideasman42 at gmail.com
Thu May 13 19:12:34 CEST 2010


On Thu, May 13, 2010 at 6:45 PM, Jaevixa McNomera <jjv.mnr at gmail.com> wrote:
> Ideasman42,
>
> Have you a method of compiling + running from within QtCreator, after a svn
> up (from in QtC), that correctly constructs everything?
>
> I can build properly the "first time", but unless I manually >rm
> -rf ~/blender-svn/build-cmake/bin/* , blender still shows itself as the
> "old" verison on the splash :)
>
> If I just open a term and run ~/blender-svn/build-cmake>ccmake ../blender
> then do a quick 'c' + 'g', then a make -j5, then i can go into QtC and
> everything will again build fine.
>
> I'm accustomed to QtC and really like using it for blender, but I'm still a
> little lost on how to make it update everything correctly. :( It's not a
> huge distraction if I do have to keep that term open and do it real quick
> between runs, but just curious if your streamlined workflow has a solution
> that I'm missing???
>
> Thanks,
> Jae
>
> On Mon, May 10, 2010 at 12:50 AM, Campbell Barton <ideasman42 at gmail.com>wrote:
>
>>  On Mon, May 10, 2010 at 6:09 AM, Leif Andersen
>> <leif.a.andersen at gmail.com> wrote:
>> > /me smacks himself:  Blender can be updated from subversion within
>> QtCreator
>> > Tools -> Subversion -> Update Project "Blender"
>> >
>> > Thanks. :)
>> >
>> > ~Leif Andersen
>> >
>> > ----------
>> > That was easy:
>> > http://www.appbrain.com/app/net.leifandersen.mobile.android.easybutton
>> >
>> >
>> > On Sun, May 9, 2010 at 21:43, Xavier Thomas <
>> xavier.thomas.1980 at gmail.com>wrote:
>> >
>> >> It is integrated in QT creator as it comes
>> >>
>> >> 2010/5/10 Leif Andersen <leif.a.andersen at gmail.com>:
>> >> > That was very useful, thank you.  I would like to know though, did you
>> >> get
>> >> > some sort of plugin to integrate SVN into QTCreator, it do you use
>> some
>> >> > other GUI client like rapidsvn, or do you just use the command line
>> >> inputs
>> >> > for svn?
>> >> >
>> >> > Thank you
>> >> >
>> >> > ~Leif Andersen
>> >> >
>> >> > ----------
>> >> > That was easy:
>> >> >
>> http://www.appbrain.com/app/net.leifandersen.mobile.android.easybutton
>> >> >
>> >> >
>> >> > On Sun, May 9, 2010 at 18:50, Xavier Thomas <
>> >> xavier.thomas.1980 at gmail.com>wrote:
>> >> >
>> >> >> I also use this exact same config and was thinking of doing a video
>> >> >> tutorial on how to set it up because of the high frequency these
>> >> >> questions comes up in IRC. (But waiting for a sound card that
>> actually
>> >> >> works to record my sweet voice)
>> >> >>
>> >> >> In the meantime maybe adding some additional info here is good idea:
>> >> >> - You need at least version 1.3 to have code navigation/refactoring
>> tool
>> >> >> - The search box to quickly find a function or a open a file in the
>> >> >> lower left corner is really nice to avoid going through all the
>> source
>> >> >> code directories to find a file.
>> >> >> -You still can build with scons on the command line if you want to
>> but
>> >> >> it is slower.
>> >> >>
>> >> >> On a other hand KDevelop 4 works similarly (open the CMakelist.txt as
>> >> >> a project, choose a build dir and your done).
>> >> >>
>> >> >> For those who want a competitive analisys:
>> >> >>
>> >> >> QTCreator:
>> >> >> Pros
>> >> >> - Lightweight and fast
>> >> >> - CleanUI
>> >> >> - Using Cmake is easy
>> >> >> - Subversion tools for most tasks
>> >> >> - Good integrated debugger
>> >> >> Cons
>> >> >> - Code navigation/refactoring tools works only in opened files and
>> not
>> >> >> the whole scope, (#ifdef also mess things up)
>> >> >> - Inspecting values in the debugger is time consuming
>> >> >>
>> >> >> Kdevelop
>> >> >> Pros
>> >> >> - Using Cmake is easy
>> >> >> - Subversion tools for most tasks
>> >> >> - Great integrated debugger which permit inspecting values with just
>> a
>> >> >> mouse over
>> >> >> - Code navigation and refactoring tools almost perfect
>> >> >> Cons
>> >> >> - Slower but still light fast compared to eclipse/netbeans
>> >> >> - Bloated UI
>> >> >>
>> >> >> And for Debian users, both QTCreator and KDevelop are in the
>> >> repositories.
>> >> >>
>> >> >>
>> >> >> 2010/5/9 Campbell Barton <ideasman42 at gmail.com>:
>> >> >> > Heres a page I wrote today about my IDE configuration on Linux,
>> which
>> >> >> > is similar to nexYon's and joe's
>> >> >> > I was thinking this might help GSOC students who use Linux, but
>> others
>> >> >> > may be interested too.
>> >> >> >
>> >> >> > This setup is nice because you can point QtCreator at an existing
>> >> >> > CMake build directory to get the IDE up and running quickly.
>> >> >> > It also doesn't rely on using QtCreator, you can keep building from
>> >> >> > the command line too.
>> >> >> >
>> >> >> > This document also goes into some details about getting faster
>> build
>> >> >> > times (~2 seconds, ~3 seconds with a change to a single C file)
>> >> >> >
>> >> >> >
>> http://wiki.blender.org/index.php/User:Ideasman42/CMakeQTCreatorLinux
>> >> >> >
>> >> >> > for visual people, heres a screenshot :)
>> >> >> > http://wiki.blender.org/uploads/a/a1/Qtc_blender_25.png
>> >> >> >
>> >> >> > --
>> >> >> > - Campbell
>>
>> Thanks xavier for the info on kdevelop, I used the 3.x version for
>> some months, found it quite good except managed to crash its debugger
>> integration fairly frequently.
>>
>> I didnt get to test the recent kdevelop 4.x release yet so glad to
>> know its on par with QtCreator.
>>
>> For refactoring I use my own python script which can go over all files
>> and do things like search/replace, change order of args. I find this
>> better because I like to be able to refactor different languages and
>> being written in python makes it flexible.
>>
>> Note that I also tried eclipse, netbeans, codeblocks (a little) and
>> code-lite
>> in general I found these apps OK but not great at dealing with a
>> project as big as Blender.
>> In the case of netbeans and eclipse - they are not focused on C/C++,
>> they can be made to work OK with some configuring but suffer from
>> java-slowness.
>>
>> --
>>  - Campbell
Hi Jae,
I never had to delete the blender binary for cmake to create a new one.
...so not sure if this is related to having to re-generate cmake files or not.

The other problem you bring up is when files are added/removed from SVN.
ccmake, 'c' + 'g
# should be able to be replaced with...
~/blender-svn/build-cmake>cmake .

But you should not need to run this after every update, only when
files are added/removed.
It can get annoying if you forget to run this but I normally only have
to run very few times - around ~1-3 times a week.

Theres a note in the doc about re-running cmake from the IDE, a bit of
a workaround.
http://wiki.blender.org/index.php/User:Ideasman42/CMakeQTCreatorLinux#Additional_Info

AFAIK we can avoid re-running cmake on updates if the CMakeLists.txt
file contains each file rather then globbing for extensions normally
"*.c"
Could be good to move to this but means a bit more build system
maintenance (as with ms-project files)

-- 
- Campbell


More information about the Bf-committers mailing list