[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]
[XaraXtreme-dev] New resources build system - Mac compatible
- From: Alex Bligh <alex@xxxxxxxxxxx>
- Date: Thu, 25 May 2006 20:57:31 +0100
- Subject: [XaraXtreme-dev] New resources build system - Mac compatible
I have checked in a new resources build system. On my other machine it
worked straight away. You may have to do a "make clean".
Resources (and svnversion.h) are now built by buildresources.pl.
This seems to be rather faster than it was before.
It does two reasonably separate things:
* Make a new svnversion.h (unless it wouldn't have changed). You have
to pass the -v flag to it which is what is in $VERSION (i.e. -v 0.6
for now). Without this, it will leave svnversion.h alone.
* Build the resources. If any resource file or the directory in which
they reside (to spot deletions) is newer than the file it builds
(now resources.h for various complicated reasons), it proceeds,
else it exits. It then checksums all the files, and if the checksum
is not changed, exits (this is useful as we need the checksum anyway,
and this eliminates an extra rebuild occasionally). It then does
the normal resource building stuff.
Advantages of the new system:
* The old system had race conditions with parallel make which would
mean occasionally LX would be built with a blank string table.
* The old system did not work properly with out-of-tree builds.
This is because it build resources.cpp *in* tree, which is
wrong. You can't seem to easily have out-of-tree cpp files
but out-of-tree h files work fine, hence we build resources.h
which is included by a static resources.cpp.
* It should work on the Mac! Set XCode to run buildresources.pl before
building your XCode project. Completely untested, but it should
work. If you are building out-of-tree on the Mac (i.e. if your
output files do not live in the same directory as your input
files), check out the "-o" and "-t" options. "-o" should
point to your output directory (where wxOil output files
live - defaults to "./wxOil") and -t should point to the
top level of the source code - i.e. input files (so
defaults to "."). Phil tested a precursor shell script to this.
That shell script (buildresources.sh) is now deprecated.
* It always rebuilds svnversion.h unless the ONLY thing that
would change is the build time. Else every make would generate
a new build.
* Hopefully it will fix Phil's Mac build problem.