Generate gperf output at build time
ClosedPublic

Authored by pino on Dec 31 2016, 12:41 AM.

Details

Summary

Look for gperf, and use it to generate the hash-based lookup for the
entities; this replaces the static generated file in the sources,
adding a build time only dependency on gperf.

This uses the newly added FindGperf.cmake in ECM, see [1].

[1] https://phabricator.kde.org/D3830

Test Plan

Builds fine as before, and the gperf output in the build directory
matches the removed generated source.

Diff Detail

Repository
R270 KCodecs
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
pino updated this revision to Diff 9532.Dec 31 2016, 12:41 AM
pino retitled this revision from to Generate gperf output at build time.
pino updated this object.
pino edited the test plan for this revision. (Show Details)
pino added a reviewer: Frameworks.
Restricted Application added a project: Frameworks. · View Herald TranscriptDec 31 2016, 12:41 AM
This revision was automatically updated to reflect the committed changes.
pino added a comment.May 16 2017, 6:06 PM

Did you intend to make GPerf a hard dependency of KCodecs?

Yes, that's the whole point of D3830 and this one...
Also, now even khtml has gperf has required build dependency.

Please remember that adding *any* build dependency *requires* notification to Sysadmin, which was not done in this case. Please see https://community.kde.org/Policies/Dependency_Changes_and_CI

This broke the FreeBSD and Windows builds of both of those on the new CI.
I've now made GPerf available on both of those, however please do ensure we are notified in *advance* of patches landing which add dependencies so we can make them available in advance and not have to react to breakages.

pino added a comment.May 16 2017, 6:35 PM

Please remember that adding *any* build dependency *requires* notification to Sysadmin, which was not done in this case. Please see https://community.kde.org/Policies/Dependency_Changes_and_CI

The Ci mentioned in this page was already covered.

This broke the FreeBSD and Windows builds of both of those on the new CI.

What is the new CI? Where is it mentioned in the page above?
While I can understand your point of view, surely I cannot think about systems which are not even mentioned in the official documentation linked to me.

It's located at https://build-sandbox.kde.org/
We're currently in a transitional period between the two systems - the new one has already been announced on various mailing lists including kde-core-devel.