Summary: | cmake-git does not compile with ninja as build command | ||
---|---|---|---|
Product: | [Developer tools] kdesrc-build | Reporter: | Andreas Hartmetz <ahartmetz> |
Component: | general | Assignee: | Michael Pyne <mpyne> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/sdk/kdesrc-build/-/commit/bca4e917547a7b1a720b18bd4598a4ac63d5eba4 | Version Fixed In: | 1.16 |
Sentry Crash Report: |
Description
Andreas Hartmetz
2014-03-01 19:18:52 UTC
The same problem occurs with karchive, kconfig, ... > The problem is probably that cmake-git is bootstrapped and the bootstrap build system doesn't support Ninja.
I would tend to agree with this (though I've had to disable Ninja builds here since support for them seems to have broken a bit with more recent CMakes).
However I would recommend moving the custom-build-command and cmake-options relating to Ninja to the KDE module-sets instead of making them global.
'custom-build-command' is very much a "trust me, I'm the user, I've got this" and having kdesrc-build try to guess when it might or might not be safe to actually allow the custom build command would only lead to someone else opening a bug that custom-build-command doesn't do a custom build. ;)
I actually had the same problem years ago with svn support, where I first added branch/tag options, which didn't always quite do the right thing.... so I added 'module-base-path', which was closer but didn't always do the right thing. Eventually I gave up and added 'override-url': "Trust me, I'm the user, download it from this exact link".
One thing I can do is to add a way to custom-build-command for getting back the "default" build system handling so that you can have a global ninja and a case-by-case exception from there. Would that help?
Git commit 9fb3fb04d170478c922c5d85bb996f8f4b7ed82c by Michael Pyne. Committed on 30/03/2014 at 03:39. Pushed by mpyne into branch 'master'. build-systems: Mask default options for non-default build systems. This is a first-step hack to have non-default build systems ignore global options which are related to the build system in use (e.g. compile or make flags, install/uninstall options, etc.). This should fix bug 331654 (now that I understand it better) and improve the situation for bug 332789 (which would be the long-term fix when implemented). Related: bug 332789 FIXED-IN:1.16 M +11 -8 doc/index.docbook M +31 -1 modules/ksb/BuildSystem.pm http://commits.kde.org/kdesrc-build/9fb3fb04d170478c922c5d85bb996f8f4b7ed82c Git commit bca4e917547a7b1a720b18bd4598a4ac63d5eba4 by Michael Pyne. Committed on 30/03/2014 at 03:39. Pushed by ashark into branch 'docbook_historied_per_file'. build-systems: Mask default options for non-default build systems. This is a first-step hack to have non-default build systems ignore global options which are related to the build system in use (e.g. compile or make flags, install/uninstall options, etc.). This should fix bug 331654 (now that I understand it better) and improve the situation for bug 332789 (which would be the long-term fix when implemented). Related: bug 332789 FIXED-IN:1.16 Original commit: 9fb3fb04 https://invent.kde.org/sdk/kdesrc-build/-/commit/9fb3fb04d170478c922c5d85bb996f8f4b7ed82c M +11 -8 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/bca4e917547a7b1a720b18bd4598a4ac63d5eba4 |