forked from mirrors/nixpkgs
7a9400d338
- qtbase builds on darwin - Downstream qmake and cmake build configurations supported Darwin-specific changes: Prevent `qmake -project` from adding build support files in the temp directory to the project. Shrink the temp directory used for building with qmake. The issue here is that `lndir` recreates the entire directory structure of the module we are merging into the temporary build environment. On darwin, the framework directory structures mean that this shadow directory tree is 17MB even though the file contents are all symlinks into the store. To address this, we symlink the framework directories explicitly and use `lndir` for everything else.
126 lines
4.2 KiB
Nix
126 lines
4.2 KiB
Nix
/*
|
|
|
|
# Updates
|
|
|
|
Before a major version update, make a copy of this directory. (We like to
|
|
keep the old version around for a short time after major updates.) Add a
|
|
top-level attribute to `top-level/all-packages.nix`.
|
|
|
|
1. Update the URL in `maintainers/scripts/generate-qt.sh`.
|
|
2. From the top of the Nixpkgs tree, run
|
|
`./maintainers/scripts/generate-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
|
|
3. Check that the new packages build correctly.
|
|
4. Commit the changes and open a pull request.
|
|
|
|
*/
|
|
|
|
{ pkgs
|
|
|
|
# options
|
|
, developerBuild ? false
|
|
, decryptSslTraffic ? false
|
|
}:
|
|
|
|
let inherit (pkgs) makeSetupHook makeWrapper stdenv; in
|
|
|
|
with stdenv.lib;
|
|
|
|
let
|
|
|
|
mirror = "http://download.qt.io";
|
|
srcs = import ./srcs.nix { inherit (pkgs) fetchurl; inherit mirror; };
|
|
|
|
qtSubmodule = args:
|
|
let
|
|
inherit (args) name;
|
|
version = args.version or srcs."${name}".version;
|
|
src = args.src or srcs."${name}".src;
|
|
inherit (pkgs.stdenv) mkDerivation;
|
|
in mkDerivation (args // {
|
|
name = "${name}-${version}";
|
|
inherit src;
|
|
|
|
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
|
|
nativeBuildInputs =
|
|
(args.nativeBuildInputs or [])
|
|
++ [ pkgs.perl self.qmakeHook ];
|
|
|
|
NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true;
|
|
|
|
outputs = args.outputs or [ "out" "dev" ];
|
|
setOutputFlags = args.setOutputFlags or false;
|
|
|
|
setupHook = ../qtsubmodule-setup-hook.sh;
|
|
|
|
enableParallelBuilding = args.enableParallelBuilding or true;
|
|
|
|
meta = self.qtbase.meta // (args.meta or {});
|
|
});
|
|
|
|
addPackages = self: with self;
|
|
let
|
|
callPackage = self.newScope { inherit qtSubmodule srcs; };
|
|
in {
|
|
|
|
qtbase = callPackage ./qtbase {
|
|
mesa = pkgs.mesa_noglu;
|
|
harfbuzz = pkgs.harfbuzz-icu;
|
|
cups = if stdenv.isLinux then pkgs.cups else null;
|
|
bison = pkgs.bison2; # error: too few arguments to function 'int yylex(...
|
|
inherit developerBuild decryptSslTraffic;
|
|
};
|
|
|
|
/* qt3d = not packaged */
|
|
/* qtactiveqt = not packaged */
|
|
/* qtandroidextras = not packaged */
|
|
/* qtcanvas3d = not packaged */
|
|
qtconnectivity = callPackage ./qtconnectivity.nix {};
|
|
qtdeclarative = callPackage ./qtdeclarative {};
|
|
qtdoc = callPackage ./qtdoc.nix {};
|
|
qtenginio = callPackage ./qtenginio.nix {};
|
|
qtgraphicaleffects = callPackage ./qtgraphicaleffects.nix {};
|
|
qtimageformats = callPackage ./qtimageformats.nix {};
|
|
qtlocation = callPackage ./qtlocation.nix {};
|
|
/* qtmacextras = not packaged */
|
|
qtmultimedia = callPackage ./qtmultimedia.nix {
|
|
inherit (pkgs.gst_all_1) gstreamer gst-plugins-base;
|
|
};
|
|
qtquickcontrols = callPackage ./qtquickcontrols.nix {};
|
|
qtscript = callPackage ./qtscript {};
|
|
qtsensors = callPackage ./qtsensors.nix {};
|
|
qtserialport = callPackage ./qtserialport {};
|
|
qtsvg = callPackage ./qtsvg.nix {};
|
|
qttools = callPackage ./qttools {};
|
|
qttranslations = callPackage ./qttranslations.nix {};
|
|
qtwayland = callPackage ./qtwayland.nix {};
|
|
qtwebchannel = callPackage ./qtwebchannel.nix {};
|
|
qtwebengine = callPackage ./qtwebengine {};
|
|
qtwebkit = callPackage ./qtwebkit {};
|
|
qtwebsockets = callPackage ./qtwebsockets.nix {};
|
|
/* qtwinextras = not packaged */
|
|
qtx11extras = callPackage ./qtx11extras.nix {};
|
|
qtxmlpatterns = callPackage ./qtxmlpatterns.nix {};
|
|
|
|
env = callPackage ../qt-env.nix {};
|
|
full = env "qt-${qtbase.version}" [
|
|
qtconnectivity qtdeclarative qtdoc qtenginio qtgraphicaleffects
|
|
qtimageformats qtlocation qtmultimedia qtquickcontrols qtscript
|
|
qtsensors qtserialport qtsvg qttools qttranslations qtwayland
|
|
qtwebchannel qtwebengine qtwebsockets qtx11extras qtxmlpatterns
|
|
];
|
|
|
|
makeQtWrapper =
|
|
makeSetupHook
|
|
{ deps = [ makeWrapper ]; }
|
|
(if stdenv.isDarwin then ../make-qt-wrapper-darwin.sh else ../make-qt-wrapper.sh);
|
|
|
|
qmakeHook =
|
|
makeSetupHook
|
|
{ deps = [ self.qtbase.dev ]; }
|
|
(if stdenv.isDarwin then ../qmake-hook-darwin.sh else ../qmake-hook.sh);
|
|
};
|
|
|
|
self = makeScope pkgs.newScope addPackages;
|
|
|
|
in self
|