mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-30 02:42:59 +00:00
Merge pull request #227900 from amjoseph-nixpkgs/pr/qtbase/fixcross
qt5.qtbase: fix cross
This commit is contained in:
commit
a6187bbbcb
@ -207,7 +207,8 @@ let
|
||||
import ../qtModule.nix
|
||||
{
|
||||
inherit perl;
|
||||
inherit lib;
|
||||
inherit lib stdenv;
|
||||
inherit buildPackages;
|
||||
# Use a variant of mkDerivation that does not include wrapQtApplications
|
||||
# to avoid cyclic dependencies between Qt modules.
|
||||
mkDerivation =
|
||||
|
@ -1,4 +1,5 @@
|
||||
if [[ -n "${__nix_qtbase-}" ]]; then
|
||||
if [ -z "${dontWorryAboutQtMismatch-}" ]; then
|
||||
# Throw an error if a different version of Qt was already set up.
|
||||
if [[ "$__nix_qtbase" != "@dev@" ]]; then
|
||||
echo >&2 "Error: detected mismatched Qt dependencies:"
|
||||
@ -6,6 +7,7 @@ if [[ -n "${__nix_qtbase-}" ]]; then
|
||||
echo >&2 " $__nix_qtbase"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else # Only set up Qt once.
|
||||
__nix_qtbase="@dev@"
|
||||
|
||||
|
@ -28,10 +28,15 @@
|
||||
, developerBuild ? false
|
||||
, decryptSslTraffic ? false
|
||||
, testers
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
let
|
||||
debugSymbols = debug || developerBuild;
|
||||
qtPlatformCross = plat: with plat;
|
||||
if isLinux
|
||||
then "linux-generic-g++"
|
||||
else throw "Please add a qtPlatformCross entry for ${plat.config}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@ -82,6 +87,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which ]
|
||||
++ lib.optionals stdenv.isDarwin [ xcbuild ];
|
||||
|
||||
# `qtbase` expects to find `cc` (with no prefix) in the
|
||||
# `$PATH`, so the following is needed even if
|
||||
# `stdenv.buildPlatform.canExecute stdenv.hostPlatform`
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
propagatedNativeBuildInputs = [ lndir ];
|
||||
|
||||
# libQt5Core links calls CoreFoundation APIs that call into the system ICU. Binaries linked
|
||||
@ -161,6 +171,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
export MAKEFLAGS+=" -j$NIX_BUILD_CORES"
|
||||
|
||||
./bin/syncqt.pl -version $version
|
||||
'' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
|
||||
# QT's configure script will refuse to use pkg-config unless these two environment variables are set
|
||||
export PKG_CONFIG_SYSROOT_DIR=/
|
||||
export PKG_CONFIG_LIBDIR=${lib.getLib pkg-config}/lib
|
||||
echo 'QMAKE_PKG_CONFIG=''$''${CROSS_COMPILE}pkg-config' >> mkspecs/devices/${qtPlatformCross stdenv.hostPlatform}/qmake.conf
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
@ -208,6 +223,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# To prevent these failures, we need to override PostgreSQL detection.
|
||||
PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq";
|
||||
|
||||
# do not pass --host and --build to configureFlags as QT's configure script doesn't understand them
|
||||
configurePlatforms = [ ];
|
||||
# TODO Remove obsolete and useless flags once the build will be totally mastered
|
||||
configureFlags = [
|
||||
"-plugindir $(out)/$(qtPluginPrefix)"
|
||||
@ -234,6 +251,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"-L" "${icu.out}/lib"
|
||||
"-I" "${icu.dev}/include"
|
||||
"-pch"
|
||||
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"-device ${qtPlatformCross stdenv.hostPlatform}"
|
||||
"-device-option CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
||||
]
|
||||
++ lib.optional debugSymbols "-debug"
|
||||
++ lib.optionals developerBuild [
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ lib, mkDerivation, perl }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, mkDerivation, perl
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
let inherit (lib) licenses maintainers platforms; in
|
||||
|
||||
@ -17,7 +21,8 @@ mkDerivation (args // {
|
||||
patches = (args.patches or []) ++ (patches.${pname} or []);
|
||||
|
||||
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ perl self.qmake ];
|
||||
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
|
||||
propagatedBuildInputs = (args.qtInputs or []) ++ (args.propagatedBuildInputs or []);
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
outputs = args.outputs or [ "out" "dev" ];
|
||||
setOutputFlags = args.setOutputFlags or false;
|
||||
@ -74,4 +79,7 @@ mkDerivation (args // {
|
||||
maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
|
||||
platforms = platforms.unix;
|
||||
} // (args.meta or {});
|
||||
|
||||
} // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
|
||||
dontWorryAboutQtMismatch = true;
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user