[Inkscape-devel] Did commit 4a543072 break cmake?
Eduard Braun
2017-07-20 22:41:38 UTC
Hi Michael,

could you provide a full log (CMakeOutput.log / CMakeError.log)? From
the excerpt you posted I can't guess what's wrong...

As CI is working fine I suspect some kind of cmake incompatibility...

Dear Inkscape developers,
I just updated to latest master und get the impression that commit
4a543072 broke the main CMakeList.txt file.
add_custom_target Wrong syntax. Unknown type of argument.
and this commit changed this line.
Best regards,
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Inkscape-devel mailing list
Eduard Braun
2017-07-22 11:04:20 UTC
I figured it out - I think your change requires at least CMake 3.2, I
had 3.0.2 and the minimum requirement in the main CMake file is 2.8.2.
See my post on CMake versions.
Should be fixed in

The "specific syntax" you mentioned (next time please share so I don't
have to research it again ;-) ) seems to be the USES_TERMINAL option on
add_custom_target which should not be required in this case.

Dropping support for old cmake versions was not desired, I simply
overlooked that one.

@all: As CMake documentation does not mention when specific features
were introduced, does anybody know of a good document that summarized
and links syntax changes to cmake versions? The best way I could come up
with so far (short of browsing the source repository) is to switch
through the documentation versions, but that's obiously not very
convenient. (Or might there even be a compatibility checker available?)

Best regards,
Eduard Braun
2017-07-22 13:14:03 UTC
I didn't check what exactly the issue was - all I found it is that the
error happens in the line I mentioned in my initial post and that it
goes away with cmake 3.6.2.
Then I misinterpreted your earlier comment ("I figured it out -I think
your change requires at least CMake 3.2"). Sounded as if you had already
tracked down the specific issue. In that case you made a very good
prediction as it turned out this was exactly the version that would've
been required. ;-)
I would suggest to run CI tests with exactly the version of CMake which
is mentioned in the main CMake file as minimum required version. This
way such issues would show up during CI testing.
That sounds like a good idea!
Unfortunately we can't easily do that in all cases (e.g. MSYS2 uses
rolling release and therefore will always uses the most recent version
of cmake - which is also not bad as it makes us aware of new issues early).
But maybe GitLab CI on Linux allows for this? I have no experience with
it, though, but I guess Mc or tedg can comment!
Also having CI use different distribution versions (as we had on
Launchpad) would help to avoid issues like the ones you mentioned in the
other thread. I think bryce wanted to look into setting up the ppa again
It is a good question what version this should be. I can confirm that up
to very recently it did work with 3.0.2. Not sure if it really works
with 2.8.2 as mentioned in the main CMake file.
Until recently it was 2.8.0 and I changed it to 2.8.2 because I added
something new (can't remember what). Now I think it should even be
2.8.11 because of the use of "string(TIMESTAMP ...)" - but there could
obviously already be code that needs a newer version...


Continue reading on narkive: