anchor.diff:  , ffmpegSupport ? true
   , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
   , waylandSupport ? true, libxkbcommon
  -, ltoSupport ? true, overrideCC, buildPackages
  +, ltoSupport ? stdenv.isLinux, overrideCC, buildPackages
   , gssSupport ? true, kerberos
   , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
   
  
positive.code: 
  assert stdenv.cc.libc or null != null;
  assert pipewireSupport -> !waylandSupport || !webrtcSupport -> throw "pipewireSupport requires both wayland and webrtc support.";
  
  let
    flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")];
  
negative.code:             then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
              else "/bin";
  
    # Darwin's stdenv provides the default llvmPackages version, match that since
    # clang LTO on Darwin is broken so the stdenv is not being changed.
    llvmPackages = if stdenv.isDarwin
                   then buildPackages.llvmPackages
                   else buildPackages.llvmPackages_10;
  
    # When LTO for Darwin is fixed, the following will need updating as lld
    # doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
    buildStdenv = if ltoSupport
                  then overrideCC stdenv llvmPackages.lldClang
                  else stdenv;
  