gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Out-of-tree builds?


From: Ivan Vučica
Subject: Re: Out-of-tree builds?
Date: Tue, 20 Mar 2018 15:34:04 +0000


On Tue 20 Mar 2018 at 15:18 David Chisnall <address@hidden> wrote:
On 20 Mar 2018, at 15:03, Richard Frith-Macdonald <address@hidden> wrote:
>
>
>
>> On 20 Mar 2018, at 13:04, David Chisnall <address@hidden> wrote:
>>
>> Hello the list,
>>
>> I need to build GNUstep in a couple of different configurations, for testing.  For most projects, I would do this by using out-of-tree builds, but this doesn’t appear to work for GNUstep.  Is there a mechanism for doing this that I can’t find, or is it just a limitation of the build system?
>
> I'm fairly sure it's not supported;
> I remember seeing an ancient patch to add this on savannah, but I hadn't noticed it when new.  It might be easy to apply, but I suspect it's too old to be helpful.
> Even if I had seen it I'm not sure I'd have jumped in to apply it myself, since I've never been on a system with so little disk space that I needed/wanted to build that way.

It has nothing to do with disk space, it has to do with my sanity.  With libobjc2 (and LLVM, Clang, and most other projects I use), I have a single checkout of the code and build directories for release and debug versions (and some more exotic ones for cross-compilation or testing newer compilers).  If I find a bug in my release build, I can build exactly the same sources in a debug config by changing to the correct directory and typing ‘ninja’.  If I think I have fixed the bug, I can change to the release directory, rebuild there, and see if it’s gone away in the original place.

Because they are in separate directories, there is no chance of pollution between them and I get incremental rebuilds of all configurations when I change any source.  This is invaluable with cross-compiling, if I want to test a change on x86, ARM and MIPS, or even just 32- and 64-bit x86 versions.

And, as an aside, I can often stick the build directories in faster but less reliable storage (I don’t care if I lose my build directories if the power goes out, I do care if I lose my source directories.  I want my source directories to be spread across disks in a RAID configuration with redundancy, but I’m happy for my build directories to have no redundancy and fewer syncs, so infrequently-written files stay in RAM).

Oh, and for the CMake ones I also typically have a build directory that uses XCode so that I can use the static analyser and refactoring tools from there, rather than via the command line.

Overlayfs or one of its equivalents?

--
Sent from Gmail Mobile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]