[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Out-of-tree builds?
From: |
David Chisnall |
Subject: |
Re: Out-of-tree builds? |
Date: |
Tue, 20 Mar 2018 15:18:07 +0000 |
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.
David