Unverified Commit a9b2b79f authored by Pol Dellaiera's avatar Pol Dellaiera Committed by GitHub
Browse files

bochs: use lib.* string functions (#344527)

parents 51011df4 be5f3bd3
Loading
Loading
Loading
Loading
+123 −109
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchurl
, SDL2
, curl
, darwin
, docbook_xml_dtd_45
, docbook_xsl
, gtk3
, libGL
, libGLU
, libX11
, libXpm
, libtool
, ncurses
, pkg-config
, readline
, wget
, wxGTK32
, enableSDL2 ? true
, enableTerm ? true
, enableWx ? !stdenv.hostPlatform.isDarwin
, enableX11 ? !stdenv.hostPlatform.isDarwin
{
  lib,
  SDL2,
  curl,
  darwin,
  docbook_xml_dtd_45,
  docbook_xsl,
  fetchurl,
  gtk3,
  libGL,
  libGLU,
  libX11,
  libXpm,
  libtool,
  ncurses,
  pkg-config,
  readline,
  stdenv,
  wget,
  wxGTK32,
  # Boolean flags
  enableSDL2 ? true,
  enableTerm ? true,
  enableWx ? !stdenv.hostPlatform.isDarwin,
  enableX11 ? !stdenv.hostPlatform.isDarwin,
}:

stdenv.mkDerivation (finalAttrs: {
@@ -39,97 +41,109 @@ stdenv.mkDerivation (finalAttrs: {
    pkg-config
  ];

  buildInputs = [
  buildInputs =
    [
      curl
      readline
      wget
  ] ++ lib.optionals enableSDL2 [
    ]
    ++ lib.optionals enableSDL2 [
      SDL2
  ] ++ lib.optionals enableTerm [
    ]
    ++ lib.optionals enableTerm [
      ncurses
  ] ++ lib.optionals enableWx [
    ]
    ++ lib.optionals enableWx [
      gtk3
      wxGTK32
  ] ++ lib.optionals enableX11 [
    ]
    ++ lib.optionals enableX11 [
      libGL
      libGLU
      libX11
      libXpm
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
    ]
    ++ lib.optionals stdenv.hostPlatform.isDarwin [
      darwin.libobjc
    ];

  configureFlags = [
    "--with-rfb=no"
    "--with-vncsrv=no"
    "--with-nogui"
  configureFlags =
    [
      (lib.withFeature false "rfb")
      (lib.withFeature false "vncsrv")
      (lib.withFeature true "nogui")

      # These will always be "yes" on NixOS
    "--enable-ltdl-install=yes"
    "--enable-readline=yes"
    "--enable-all-optimizations=yes"
    "--enable-logging=yes"
    "--enable-xpm=yes"
      (lib.enableFeature true "ltdl-install")
      (lib.enableFeature true "readline")
      (lib.enableFeature true "all-optimizations")
      (lib.enableFeature true "logging")
      (lib.enableFeature true "xpm")

      # ... whereas these, always "no"!
    "--enable-cpp=no"
    "--enable-instrumentation=no"
      (lib.enableFeature false "cpp")
      (lib.enableFeature false "instrumentation")

    "--enable-docbook=no" # Broken - it requires docbook2html
      (lib.enableFeature false "docbook") # Broken - it requires docbook2html

      # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
    "--enable-3dnow=no"
    "--enable-monitor-mwait=no"
    "--enable-raw-serial=no"
      (lib.enableFeature false "3dnow")
      (lib.enableFeature false "monitor-mwait")
      (lib.enableFeature false "raw-serial")

      # These are completely configurable, and they don't depend of external tools
    "--enable-a20-pin"
    "--enable-avx"
    "--enable-busmouse"
    "--enable-cdrom"
    "--enable-clgd54xx"
    "--enable-configurable-msrs"
    "--enable-cpu-level=6" # from 3 to 6
    "--enable-debugger" #conflicts with gdb-stub option
    "--enable-debugger-gui"
    "--enable-evex"
    "--enable-fpu"
    "--enable-gdb-stub=no" # conflicts with debugger option
    "--enable-handlers-chaining"
    "--enable-idle-hack"
    "--enable-iodebug"
    "--enable-large-ramfile"
    "--enable-largefile"
    "--enable-pci"
    "--enable-repeat-speedups"
    "--enable-show-ips"
    "--enable-smp"
    "--enable-vmx=2"
    "--enable-svm"
    "--enable-trace-linking"
    "--enable-usb"
    "--enable-usb-ehci"
    "--enable-usb-ohci"
    "--enable-usb-xhci"
    "--enable-voodoo"
    "--enable-x86-64"
    "--enable-x86-debugger"
  ] ++ lib.optionals enableSDL2 [
    "--with-sdl2"
  ] ++ lib.optionals enableTerm [
    "--with-term"
  ] ++ lib.optionals enableWx [
    "--with-wx"
  ] ++ lib.optionals enableX11 [
    "--with-x"
    "--with-x11"
  ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
    "--enable-e1000"
    "--enable-es1370"
    "--enable-ne2000"
    "--enable-plugins"
    "--enable-pnic"
    "--enable-sb16"
      (lib.enableFeature true "a20-pin")
      (lib.enableFeature true "avx")
      (lib.enableFeature true "busmouse")
      (lib.enableFeature true "cdrom")
      (lib.enableFeature true "clgd54xx")
      (lib.enableFeature true "configurable-msrs")
      (lib.enableFeatureAs true "cpu-level" "6") # from 3 to 6
      (lib.enableFeature true "debugger") # conflicts with gdb-stub option
      (lib.enableFeature true "debugger-gui")
      (lib.enableFeature true "evex")
      (lib.enableFeature true "fpu")
      (lib.enableFeature false "gdb-stub") # conflicts with debugger option
      (lib.enableFeature true "handlers-chaining")
      (lib.enableFeature true "idle-hack")
      (lib.enableFeature true "iodebug")
      (lib.enableFeature true "large-ramfile")
      (lib.enableFeature true "largefile")
      (lib.enableFeature true "pci")
      (lib.enableFeature true "repeat-speedups")
      (lib.enableFeature true "show-ips")
      (lib.enableFeature true "smp")
      (lib.enableFeatureAs true "vmx" "2")
      (lib.enableFeature true "svm")
      (lib.enableFeature true "trace-linking")
      (lib.enableFeature true "usb")
      (lib.enableFeature true "usb-ehci")
      (lib.enableFeature true "usb-ohci")
      (lib.enableFeature true "usb-xhci")
      (lib.enableFeature true "voodoo")
      (lib.enableFeature true "x86-64")
      (lib.enableFeature true "x86-debugger")
    ]
    ++ lib.optionals enableSDL2 [
      (lib.withFeature true "sdl2")
    ]
    ++ lib.optionals enableTerm [
      (lib.withFeature true "term")
    ]
    ++ lib.optionals enableWx [
      (lib.withFeature true "wx")
    ]
    ++ lib.optionals enableX11 [
      (lib.withFeature true "x")
      (lib.withFeature true "x11")
    ]
    ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
      (lib.enableFeature true "e1000")
      (lib.enableFeature true "es1370")
      (lib.enableFeature true "ne2000")
      (lib.enableFeature true "plugins")
      (lib.enableFeature true "pnic")
      (lib.enableFeature true "sb16")
    ];

  enableParallelBuilding = true;