-
-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cmake: only set output paths with multiple outputs
This brings cmake inline with the behaviour used for configure scripts, defined in multiple-outputs.sh. It's important because that setup hook will only set shareDocName if multiple outputs are in use (and setOutputFlags hasn't been disabled). So previously, CMAKE_INSTALL_DOCDIR would be set to $out/share/doc for single-output derivations, instead of $out/share/doc/$shareDocName, which would result in collisions. Since this hook now uses the setOutputFlags variable, I had to remove the empty assignment of it added in a714284. Fixes: #82304
- Loading branch information
Showing
1 changed file
with
17 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This broke
qt5.qtwebkit
. I wonder if other packages might also suffer. EDIT: perhaps not this exact commit, but this PR #91277 is probably the trigger anyway.The build succeeds, but some references from
*.pc
and cmake got bad (compared to nixpkgs master):and
Qt5WebKit.pc
:be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, looks like
qtModule
setssetOutputFlags
tofalse
by default:nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
Line 24 in ffbbdf2
which we now respect. I guess we will need to revert this commit, or change it to use a separate
setCmakeOutputFlags
variable. I think the former makes more sense since CMake ignores unknown variables.be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I confused it the other way. So
setOutputFlags = true;
inpkgs/development/libraries/qt-5/modules/qtwebkit.nix
would fix this one, but right now I can't estimate all other effects. I also wouldn't expect qmake and cmake being combined frequently.be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this will be problem with every package using
qtModule
(basically everything in https://github.com/NixOS/nixpkgs/tree/ffbbdf247a14808307ef558d71afca4ac364c795/pkgs/development/libraries/qt-5), since it also enables multiple outputs:nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
Line 23 in ffbbdf2
I doubt anything uses both CMake and qmake simultaneously (if they did, they would not use our setup hooks either way).
We would either need to manually add
setOutputFlags = true;
to every qt module built usingcmake
. Actually, it looks like qtwebkit is the only one.be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
qt5.qtwebkit
has both in build inputs.be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is just inherited from
qtModule
I think.be1b225
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in dee7377, will be reverted in #92298.