[poppler] RFC: cmake buildsystem

Brad Hards bradh at frogmouth.net
Sat Dec 29 15:32:15 PST 2007


On Saturday 29 December 2007 10:24:17 pm Pino Toscano wrote:
> Alle mercoledì 19 dicembre 2007, Pino Toscano ha scritto:
> > Feedback? Thoughts?
>
> Hey, not everyone together with comments...
Yeah, yeah. I've finally gotten enough time to check it out.

It works for me on Fedora 7.

Observations:
1. Clean builds appear a bit faster with cmake, but "null" builds (make on a 
tree that requires no compilation) are a fraction slower - perhaps 0.5 
seconds or so. Nothing significant either way.

2. There is a problem with the "make test" target for Qt4:
Test project /home/bradh/devel/poppler-group/poppler-build/qt4
  1/ 14 Testing test-poppler-qt4              ***Failed
  2/ 14 Testing test-password-qt4             ***Failed
  3/ 14 Testing poppler-fonts                 ***Failed
  4/ 14 Testing poppler_attachments           ***Failed
  5/ 14 Testing stress-poppler-qt4               Passed
  6/ 14 Testing check_attachments                Passed
  7/ 14 Testing check_dateConversion             Passed
  8/ 14 Testing check_fonts                      Passed
  9/ 14 Testing check_metadata                   Passed
 10/ 14 Testing check_pagelayout                 Passed
 11/ 14 Testing check_pagemode                   Passed
 12/ 14 Testing check_password                   Passed
 13/ 14 Testing check_permissions                Passed
 14/ 14 Testing check_search                     Passed
Those first 5 aren't unit tests. They are just demo / test apps, and shouldn't 
be included in the "make test" target.

3. I'd like a "make test" target at the top level (analogous to the "make 
check" we currently have). I'd also like to turn on the tests by default.

4. The main benefit I see is proper dependency tracking. Consider if you are 
building a test (say in poppler/qt4/tests/), to check a change you've made in 
poppler/poppler/Gfx.cc. With automake, if you say "make", just the test 
file(s) will get rebuilt. With cmake, it will rebuild libpoppler before 
rebuilding the tests.

5. It is easier to see the warnings in amongst the coloured output.

6.  It looks like we aren't doing gtk-doc stuff yet. Is this 
planned/important?

7. We should test with MSVC++. I'll try to get to that later today.

Overall, it is looking pretty good. Considering how it can co-exist with the 
autofoo stuff, I'd like to see it imported. Possibly we run parallel systems 
for 4-6 weeks, and then drop the autofoo stuff if people are happy.


More information about the poppler mailing list