[debhelper-devel] Bug#895044: Bug#895044: debhelper: add support for Ninja with CMake
Kyle Edwards
kyle.edwards at kitware.com
Mon Apr 9 15:08:22 UTC 2018
On 04/07/2018 01:30 AM, Niels Thykier wrote:
> Thanks. :)
>
> I am glad it worked. :)
My VTK package is currently building with cmake+ninja in sid, and
leaving cmake+makefile in the dust. I love it. Thank you so much!
> Mmm, the reason why make does not fail is that we have a crude (but
> functional) way to tell if a makefile target exists. But we do not have
> that for ninja and honestly, I have no idea how we would make it either.
>
> If you have an idea, I would be happy to look at implementing it.
>
There are a couple options I can think of:
1. $ ninja -n test - this does a dry run. If the "test" target exists
then it succeeds (regardless of whether or not the real target would
have succeeded), otherwise it fails. Simple and elegant.
2. You could also manually parse build.ninja and its included files.
Admittedly not as simple, but Ninja is intended to be machine-readable
and fast, so it might not be as bad as parsing a Makefile.
2a. Alternatively, start by simply grepping build.ninja for "^build[
\t]+test:" or something similar. It might not include every corner case,
but it would be a good start (more than we have right now), and I don't
think it would yield any false positives. CMake takes a similar approach
in trying to find #defines in header files - see
https://gitlab.kitware.com/cmake/cmake/blob/master/Modules/FindBoost.cmake#L1291
for an example.
Kyle
More information about the debhelper-devel
mailing list