Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Build Update

Hey gang, I promised an update on my work with build, so here we go.

I started taking a fresh look at build first after the experience I had integrating a previous employer's toolchain. I just found it was too much work to do the customizations that I needed to do, for example setting a common argument for both the compiler and linker. It was pretty painful. And I never did get scanner discovery to work consistently. And from the complaints in the past I wasn't alone.

But given that, I have noticed that Andrew G and James and others have done some great work to fix many of the quality issues. And I haven't heard many complaints recently, so I'm not sure these issues are still there.

So I've started taking a look at various build scenarios for the projects I work with in my hobby/discovery time. My hope is that these are representative of things CDT users are doing. The projects I'm looking at are mainly open source game engine type things that I'm trying to reuse on Android. And I am also getting the feeling I need to care more about Qt ;).

So for the Android projects, I'm really just using the power of gnu make to manage the projects for me. There's a simple makefile template that I use and just change the name of the shared library that's loaded into the Dalvik VM. And I use the $(wildcard) function to find the source files for me. Scanner discovery seems to pick up the Android headers so things seem to be working fine.

The third party libraries I'm looking at are mainly configure-based projects. And I am starting to see CMake a lot more, especially those projects that are trying to support Visual C++ too. Qt projects can be managed using qmake for managing build settings using a make like syntax.

Then it hit me. Configure, CMake, and qmake all generate Makefiles, just like CDT's managed build (when using the external builder that is). They are, in fact, managed build systems. I had been trying to fit them into CDT's managed build, when what I probably need to do is allow them to be integrated into the same place in the architecture.

So that's where I'm at. Since Jeff has already done a lot of work on the configure support, I'm going to take a look at qmake. (And, yes I know the Qt Eclipse plug-in does that already, but in an EPL unfriendly kind of way). I want to get a first hand sense of the requirements for such an integration so that it's simple and easy to use and so that it works. I'll compare notes with Jeff on configure and determine what changes are needed in CDT 8 to make it easier to support these things, if anything at all that is.

In the end, this is a much easier piece for me to bite off, and I think it adds the most value to the community. Our existing managed build seems to be working well enough, and I think it has it's place, especially for Visual Studio users migrating over to IDEs like Wascana. But I want to make it easier for Linux and embedded developers to who have different workflows that they're used to. And, of course, I want to make sure CDT is the best open source IDE against our rivals in Qt Creator, KDevelop, etc. :)

I'd love to hear what you think. Please let me know,
Doug.

Back to the top