[Piglit] libepoxy conversion v2

Jose Fonseca jfonseca at vmware.com
Fri Mar 7 12:02:44 PST 2014



----- Original Message -----
> Ken Phillis Jr <kphillisjr at gmail.com> writes:
> 
> > On Mon, Feb 24, 2014 at 1:41 PM, Eric Anholt <eric at anholt.net> wrote:
> >> I'd really like to get this in soon -- Fabian just spent what was
> >> probably quite a bit of time building a new piglit-private dispatch
> >> builder due to the .spec files no longer being updated, and I'd
> >> rather we not waste anyone else's time.  I still haven't heard
> >> anything from anyone using Windows, which is the only real risk I see
> >> with this series.
> >>
> >
> > Since I tend to use windows a bit I will go ahead and review the
> > overall patch ( including libepoxy ).
> >
> > 1) Requiring unix-specific features to compile on windows will drive
> > away developers. ( I am talking about the pkgconfig requirement ).
> > It's not exactly a good idea to require this on windows.
> > 2) libepoxy itself uses autogen and autoconf... This is an absolute
> > nightmare for windows developers. I would like to suggest adding cmake
> > build options to libepoxy ( Mainly to help improve the build process
> > on systems that lack libepoxy and also make it easier to integrate
> > within piglit itself )
> 
> Yeah, and cmake is a nightmare for linux developers.  (So is automake,
> but cmake is worse).  Based on my experience in open source software so
> far, I'm not expecting contributions from windows developers -- I'd be
> happily surprised to get some, but I'm not waiting.  So "this will drive
> away windows developers" ends up having basically no weight, compared to
> me being able to get work done.

That maybe fine for libepoxy, but this essentially means one of two things: 1) libepoxy is not suitable as a dependency to a cross-platform project like piglit , or 2) windows developers are not welcome on piglit.  I can't think of it in any other way.


BTW, using cmake+ninja  addresses many of issues experience while using cmake+make.  E.g.:


$ cd piglit
$ cmake -H. -Bbuild/make
$ time make -C build/make -j4
[...]

real	2m7.752s
user	6m38.472s
sys	0m47.720s
$ time make -C build/make -j4
[...]

real	0m7.082s
user	0m10.604s
sys	0m4.024s

$ time make -C build/make -j4 clean
[...]

real	0m3.926s
user	0m6.284s
sys	0m2.296s
$ cmake -H. -Bbuild/ninja -G Ninja
$ time ninja -C build/ninja
[...]

real	1m38.826s
user	5m32.744s
sys	0m30.812s
$ time ninja -C build/ninja
ninja: Entering directory `build/ninja'
ninja: no work to do.

real	0m0.058s
user	0m0.044s
sys	0m0.012s
$ $ time ninja -C build/ninja clean
ninja: Entering directory `build/ninja'
[1/1] Cleaning all built files...
Cleaning... 3432 files.

real	0m0.116s
user	0m0.068s
sys	0m0.040s


In short:

  task                cmake+make  cmake+ninkja
  build from scratch  2m  8s      1m 39s
  no-op build             7s          0s
  clean                   4s          0s


Jose


More information about the Piglit mailing list