From 10b2bb82882b95dcc8683bf22b313b3c2db19931 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 5 Sep 2017 13:13:02 -0400 Subject: [PATCH] mplayer: Simplify cross, no `crossAttrs` or `crossConfig` --- pkgs/applications/video/mplayer/default.nix | 111 +++++++++++--------- 1 file changed, 61 insertions(+), 50 deletions(-) diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix index 8e28f77ffee..fe6090c3230 100644 --- a/pkgs/applications/video/mplayer/default.nix +++ b/pkgs/applications/video/mplayer/default.nix @@ -26,7 +26,7 @@ , libjpegSupport ? true, libjpeg ? null , useUnfreeCodecs ? false , darwin ? null -, hostPlatform +, buildPackages }: assert fontconfigSupport -> (fontconfig != null); @@ -84,6 +84,8 @@ let meta.license = stdenv.lib.licenses.unfree; } else null; + crossBuild = stdenv.hostPlatform != stdenv.buildPlatform; + in stdenv.mkDerivation rec { @@ -100,8 +102,10 @@ stdenv.mkDerivation rec { rm -rf ffmpeg ''; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ pkgconfig yasm ]; buildInputs = with stdenv.lib; - [ pkgconfig freetype ffmpeg ] + [ freetype ffmpeg ] ++ optional aalibSupport aalib ++ optional fontconfigSupport fontconfig ++ optional fribidiSupport fribidi @@ -129,45 +133,66 @@ stdenv.mkDerivation rec { ++ (with darwin.apple_sdk.frameworks; optionals stdenv.isDarwin [ Cocoa OpenGL ]) ; - nativeBuildInputs = [ yasm ]; + configurePlatforms = [ ]; + configureFlags = with stdenv.lib; [ + "--enable-freetype" + (if fontconfigSupport then "--enable-fontconfig" else "--disable-fontconfig") + (if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl") + (if xineramaSupport then "--enable-xinerama" else "--disable-xinerama") + (if xvSupport then "--enable-xv" else "--disable-xv") + (if alsaSupport then "--enable-alsa" else "--disable-alsa") + (if screenSaverSupport then "--enable-xss" else "--disable-xss") + (if vdpauSupport then "--enable-vdpau" else "--disable-vdpau") + (if cddaSupport then "--enable-cdparanoia" else "--disable-cdparanoia") + (if dvdnavSupport then "--enable-dvdnav" else "--disable-dvdnav") + (if bluraySupport then "--enable-bluray" else "--disable-bluray") + (if amrSupport then "--enable-libopencore_amrnb" else "--disable-libopencore_amrnb") + (if cacaSupport then "--enable-caca" else "--disable-caca") + (if lameSupport then "--enable-mp3lame --disable-mp3lame-lavc" else "--disable-mp3lame --enable-mp3lame-lavc") + (if speexSupport then "--enable-speex" else "--disable-speex") + (if theoraSupport then "--enable-theora" else "--disable-theora") + (if x264Support then "--enable-x264 --disable-x264-lavc" else "--disable-x264 --enable-x264-lavc") + (if jackaudioSupport then "" else "--disable-jack") + (if pulseSupport then "--enable-pulse" else "--disable-pulse") + "--disable-xanim" + "--disable-ivtv" + "--disable-xvid --disable-xvid-lavc" + "--disable-ossaudio" + "--disable-ffmpeg_a" + "--yasm=${buildPackages.yasm}/bin/yasm" + # Note, the `target` vs `host` confusion is intensional. + "--target=${stdenv.hostPlatform.config}" + ] ++ optional + (useUnfreeCodecs && codecs != null && !crossBuild) + "--codecsdir=${codecs}" + ++ optional + ((stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) && !crossBuild) + "--enable-runtime-cpudetection" + ++ optional fribidiSupport "--enable-fribidi" + ++ optional stdenv.isLinux "--enable-vidix" + ++ optional stdenv.isLinux "--enable-fbdev" + ++ optionals (crossBuild) [ + "--enable-cross-compile" + "--disable-vidix-pcidb" + "--with-vidix-drivers=no" + ]; + + preConfigure = '' + configureFlagsArray+=( + "--cc=$CC" + "--host-cc=$BUILD_CC" + "--as=$AS" + "--nm=$NM" + "--ar=$AR" + "--ranlib=$RANLIB" + "--windres=$WINDRES" + ) + ''; postConfigure = '' echo CONFIG_MPEGAUDIODSP=yes >> config.mak ''; - configureFlags = with stdenv.lib; - '' - --enable-freetype - ${if fontconfigSupport then "--enable-fontconfig" else "--disable-fontconfig"} - ${if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl"} - ${if xineramaSupport then "--enable-xinerama" else "--disable-xinerama"} - ${if xvSupport then "--enable-xv" else "--disable-xv"} - ${if alsaSupport then "--enable-alsa" else "--disable-alsa"} - ${if screenSaverSupport then "--enable-xss" else "--disable-xss"} - ${if vdpauSupport then "--enable-vdpau" else "--disable-vdpau"} - ${if cddaSupport then "--enable-cdparanoia" else "--disable-cdparanoia"} - ${if dvdnavSupport then "--enable-dvdnav" else "--disable-dvdnav"} - ${if bluraySupport then "--enable-bluray" else "--disable-bluray"} - ${if amrSupport then "--enable-libopencore_amrnb" else "--disable-libopencore_amrnb"} - ${if cacaSupport then "--enable-caca" else "--disable-caca"} - ${if lameSupport then "--enable-mp3lame --disable-mp3lame-lavc" else "--disable-mp3lame --enable-mp3lame-lavc"} - ${if speexSupport then "--enable-speex" else "--disable-speex"} - ${if theoraSupport then "--enable-theora" else "--disable-theora"} - ${if x264Support then "--enable-x264 --disable-x264-lavc" else "--disable-x264 --enable-x264-lavc"} - ${if jackaudioSupport then "" else "--disable-jack"} - ${if pulseSupport then "--enable-pulse" else "--disable-pulse"} - ${optionalString (useUnfreeCodecs && codecs != null) "--codecsdir=${codecs}"} - ${optionalString (stdenv.isi686 || stdenv.isx86_64) "--enable-runtime-cpudetection"} - ${optionalString fribidiSupport "--enable-fribidi"} - --disable-xanim - --disable-ivtv - --disable-xvid --disable-xvid-lavc - ${optionalString stdenv.isLinux "--enable-vidix"} - ${optionalString stdenv.isLinux "--enable-fbdev"} - --disable-ossaudio - --disable-ffmpeg_a - ''; - NIX_LDFLAGS = with stdenv.lib; optional fontconfigSupport "-lfontconfig" ++ optional fribidiSupport "-lfribidi" @@ -188,20 +213,6 @@ stdenv.mkDerivation rec { fi ''; - crossAttrs = { - configurePlatforms = []; - # Some things (vidix) are nanonote specific. Once someone cares, we can make options from them. - # Note, the `target` vs `host` confusion is intensional. - preConfigure = '' - configureFlags="`echo $configureFlags | - sed -e 's/--codecsdir[^ ]\+//' \ - -e 's/--enable-runtime-cpudetection//' `" - configureFlags="$configureFlags --target=${hostPlatform.arch}-linux - --enable-cross-compile --cc=$crossConfig-gcc --as=$crossConfig-as - --disable-vidix-pcidb --with-vidix-drivers=no --host-cc=gcc" - ''; - }; - meta = { description = "A movie player that supports many video formats"; homepage = http://mplayerhq.hu;