Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android and related cross fixes #56197

Merged
merged 6 commits into from Feb 27, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/systems/doubles.nix
Expand Up @@ -47,5 +47,5 @@ in rec {
unix = filterDoubles predicates.isUnix;
windows = filterDoubles predicates.isWindows;

mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "powerpc64le-linux"];
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64le-linux"];
}
4 changes: 2 additions & 2 deletions pkgs/development/compilers/llvm/3.8/llvm.nix
Expand Up @@ -79,8 +79,8 @@ in stdenv.mkDerivation rec {
"-DLLVM_ENABLE_RTTI=ON"

"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.hostPlatform.config}"
] ++ stdenv.lib.optional enableSharedLibraries [
"-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ stdenv.lib.optional (!isDarwin)
Expand Down
4 changes: 2 additions & 2 deletions pkgs/development/compilers/llvm/3.9/llvm.nix
Expand Up @@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
"-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code

"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.hostPlatform.config}"
] ++ stdenv.lib.optional enableSharedLibraries [
"-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ stdenv.lib.optional (!isDarwin)
Expand Down
4 changes: 2 additions & 2 deletions pkgs/development/compilers/llvm/4/llvm.nix
Expand Up @@ -100,8 +100,8 @@ in stdenv.mkDerivation (rec {
"-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code

"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.hostPlatform.config}"
]
++ stdenv.lib.optional enableSharedLibraries
"-DLLVM_LINK_LLVM_DYLIB=ON"
Expand Down
5 changes: 1 addition & 4 deletions pkgs/development/compilers/llvm/6/llvm.nix
Expand Up @@ -14,9 +14,6 @@
, debugVersion ? false
, enableManpages ? false
, enableSharedLibraries ? true
# Mesa requires AMDGPU target
# BPF is used by bcc
, enableTargets ? [ stdenv.hostPlatform stdenv.targetPlatform "AMDGPU" "BPF" ]
}:

let
Expand Down Expand Up @@ -94,7 +91,7 @@ in stdenv.mkDerivation (rec {
"-DLLVM_ENABLE_FFI=ON"
"-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
"-DLLVM_ENABLE_DUMP=ON"
] ++ optionals enableSharedLibraries [
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/compilers/llvm/7/llvm.nix
Expand Up @@ -101,7 +101,7 @@ in stdenv.mkDerivation (rec {
"-DLLVM_ENABLE_FFI=ON"
"-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
"-DLLVM_ENABLE_DUMP=ON"
] ++ optionals enableSharedLibraries [
Expand Down
16 changes: 7 additions & 9 deletions pkgs/development/libraries/SDL/default.nix
@@ -1,8 +1,9 @@
{ stdenv, config, libGLSupported, fetchurl, fetchpatch, pkgconfig, audiofile, libcap, libiconv
, openglSupport ? libGLSupported, libGL, libGLU
, alsaSupport ? stdenv.isLinux, alsaLib
, x11Support ? !stdenv.isCygwin, libXext, libICE, libXrandr
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
, libXext, libICE, libXrandr
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid, libpulseaudio
, OpenGL, CoreAudio, CoreServices, AudioUnit, Kernel, Cocoa
, cf-private
}:
Expand All @@ -12,9 +13,6 @@

with stdenv.lib;

assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null && libGLU != null);

stdenv.mkDerivation rec {
name = "SDL-${version}";
version = "1.2.15";
Expand All @@ -30,18 +28,18 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
outputBin = "dev"; # sdl-config

nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ pkgconfig ]
++ optional stdenv.isLinux libcap;

propagatedBuildInputs = [ libiconv ]
++ optionals x11Support [ libXext libICE libXrandr ]
++ optional stdenv.isLinux libcap
++ optionals openglSupport [ libGL libGLU ]
++ optional alsaSupport alsaLib
++ optional pulseaudioSupport libpulseaudio
++ optional stdenv.isDarwin Cocoa;

buildInputs = [ ]
++ optional (!stdenv.hostPlatform.isMinGW) audiofile
++ optional (!stdenv.hostPlatform.isMinGW && alsaSupport) audiofile
++ optionals stdenv.isDarwin [
AudioUnit CoreAudio CoreServices Kernel OpenGL
# Needed for NSDefaultRunLoopMode symbols.
Expand Down
21 changes: 11 additions & 10 deletions pkgs/development/libraries/SDL2/default.nix
@@ -1,12 +1,16 @@
{ stdenv, config, libGLSupported, fetchurl, pkgconfig
, openglSupport ? libGLSupported, libGL
, alsaSupport ? stdenv.isLinux, alsaLib
, x11Support ? !stdenv.isCygwin, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor, libXinerama, libXext, libXxf86vm, libXrandr
, waylandSupport ? stdenv.isLinux, wayland, wayland-protocols, libxkbcommon
, dbusSupport ? stdenv.isLinux, dbus
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
, libXinerama, libXext, libXxf86vm, libXrandr
, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, wayland, wayland-protocols, libxkbcommon
, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, dbus
, udevSupport ? false, udev
, ibusSupport ? false, ibus
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid
, libpulseaudio
, AudioUnit, Cocoa, CoreAudio, CoreServices, ForceFeedback, OpenGL
, audiofile, cf-private, libiconv
}:
Expand All @@ -16,9 +20,6 @@

with stdenv.lib;

assert !stdenv.isDarwin -> alsaSupport || pulseaudioSupport;
assert openglSupport -> (stdenv.isDarwin || x11Support && libGL != null);

stdenv.mkDerivation rec {
name = "SDL2-${version}";
version = "2.0.9";
Expand All @@ -44,14 +45,14 @@ stdenv.mkDerivation rec {
++ optionals x11Support [ libX11 xorgproto ];

dlopenBuildInputs = [ ]
++ optional alsaSupport alsaLib
++ optionals alsaSupport [ alsaLib audiofile ]
++ optional dbusSupport dbus
++ optional pulseaudioSupport libpulseaudio
++ optional udevSupport udev
++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ];

buildInputs = [ audiofile libiconv ]
buildInputs = [ libiconv ]
++ dlopenBuildInputs
++ optional ibusSupport ibus
++ optionals stdenv.isDarwin [
Expand Down
4 changes: 2 additions & 2 deletions pkgs/development/libraries/libpfm/default.nix
Expand Up @@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
makeFlags = [
"PREFIX=${placeholder "out"}"
"LDCONFIG=true"
"ARCH=${stdenv.targetPlatform.uname.processor}"
"SYS=${stdenv.targetPlatform.uname.system}"
"ARCH=${stdenv.hostPlatform.uname.processor}"
"SYS=${stdenv.hostPlatform.uname.system}"
];

NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/libraries/mesa-glu/default.nix
Expand Up @@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
homepage = https://cgit.freedesktop.org/mesa/glu/;
license = stdenv.lib.licenses.sgi-b-20;
platforms = stdenv.lib.platforms.unix;
broken = stdenv.hostPlatform.isAndroid;
};
}
4 changes: 2 additions & 2 deletions pkgs/os-specific/linux/apparmor/default.nix
Expand Up @@ -82,8 +82,8 @@ let
prePatch = prePatchCommon + ''
substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.am --replace install_vendor install_site
substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.in --replace install_vendor install_site
substituteInPlace ./libraries/libapparmor/src/Makefile.am --replace "/usr/include/netinet/in.h" "${stdenv.cc.libc.dev}/include/netinet/in.h"
substituteInPlace ./libraries/libapparmor/src/Makefile.in --replace "/usr/include/netinet/in.h" "${stdenv.cc.libc.dev}/include/netinet/in.h"
substituteInPlace ./libraries/libapparmor/src/Makefile.am --replace "/usr/include/netinet/in.h" "${stdenv.lib.getDev stdenv.cc.libc}/include/netinet/in.h"
substituteInPlace ./libraries/libapparmor/src/Makefile.in --replace "/usr/include/netinet/in.h" "${stdenv.lib.getDev stdenv.cc.libc}/include/netinet/in.h"
'';
inherit patches;

Expand Down
14 changes: 10 additions & 4 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -11650,8 +11650,11 @@ in

## libGL/libGLU/Mesa stuff

# Default libGL implementation, should provide headers and libGL.so/libEGL.so/... to link agains them
libGL = mesa_noglu.stubs;
# Default libGL implementation, should provide headers and
# libGL.so/libEGL.so/... to link agains them. Android NDK provides
# an OpenGL implementation, we can just use that.
libGL = if stdenv.hostPlatform.useAndroidPrebuilt then stdenv
else mesa_noglu.stubs;

# Default libGLU
libGLU = mesa_glu;
Expand Down Expand Up @@ -12453,10 +12456,13 @@ in

schroedinger = callPackage ../development/libraries/schroedinger { };

SDL = callPackage ../development/libraries/SDL {
SDL = callPackage ../development/libraries/SDL ({
inherit (darwin) cf-private;
inherit (darwin.apple_sdk.frameworks) OpenGL CoreAudio CoreServices AudioUnit Kernel Cocoa;
};
} // lib.optionalAttrs stdenv.hostPlatform.isAndroid {
# libGLU doesn’t work with Android’s SDL
libGLU = null;
});

SDL_sixel = callPackage ../development/libraries/SDL_sixel { };

Expand Down