Building a library and executable with 300 C++ files.

Andreas Pakulat apaku at
Mon Nov 29 18:28:27 UTC 2010

On 29.11.10 19:00:13, Syron wrote:
> 2010/11/29 Michael Hart < at>:
> > Being a very senior and experienced C++ developer for the most part all I
> > ever cared about was the C++ language and the various APIs I used in getting
> > an application to market. So what may seem appalling to you, I can only make
> > the assumption I was using automake as my build tool.
> I think it's strange that you're a senior developer and have never
> dealt with any build system - understanding how build systems work is
> an important thing, that's what I learned as soon as I wrote my first
> project with more than one file. And I am also worried about the fact
> that you have 300 C++ files in _one_ directory, that seems like a big
> mess.
> If you spend some time learning a build system (qMake, CMake,
> whatever), you will soon learn how powerful they are.

Well, if you're always only targetting Windows you can easily get around
without knowing any buildsystem if you stick to VS for building your
app. Though at some point for larger or legacy projects you will get to
dive into the various options that VS offers for customization. At least
I think you can. But then again, VS uses a much more constrained
buildsystem and is not as capable as CMake (leaving aside the
missing cross-platform support).

Or you have someone in the team that cares about the buildsystem-stuff
and all the C++ developers ever have to care about is adding the files
at the right place. Thats how it works with KDevelop for example, there
are one or two persons with in-depth cmake knowledge that handle all the
harder stuff. The rest of the team mostly just add the files in the
right cmake-files.

That being said, IMHO it KDevelop should be able to handle
adding/deleting files via its existing cmake-change-wizard. All thats
really needed is a hook when files are being added to the project. I
actually thought this was already done for 4.1, but maybe it gets in for


You don't become a failure until you're satisfied with being one.

More information about the KDevelop-devel mailing list