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

[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.