From 25491b5dc3053ffa3e6bd88fd3d6f0e66a3f4b10 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 11 Oct 2022 08:22:46 +0200 Subject: [PATCH] gnudatalanguage: fix build on aarch64-darwin --- .../interpreters/gnudatalanguage/default.nix | 33 ++++++++++++++----- pkgs/development/libraries/plplot/default.nix | 11 +++---- pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/pkgs/development/interpreters/gnudatalanguage/default.nix b/pkgs/development/interpreters/gnudatalanguage/default.nix index fa01badfc11c..f4d364fcd144 100644 --- a/pkgs/development/interpreters/gnudatalanguage/default.nix +++ b/pkgs/development/interpreters/gnudatalanguage/default.nix @@ -18,13 +18,16 @@ , udunits , eigen , pslib -, eccodes -, glpk , libpng , plplot , libtiff , libgeotiff , libjpeg + # eccodes is broken on darwin +, enableGRIB ? stdenv.isLinux +, eccodes +, enableGLPK ? stdenv.isLinux +, glpk # We enable it in hdf4 and use libtirpc as a dependency here from the passthru # of hdf4 , enableLibtirpc ? stdenv.isLinux @@ -53,9 +56,10 @@ , netcdf-forced ? null , plplot-forced ? null # wxWidgets is preferred over X11 for this project but we only have it on Linux - # and Darwin. Also, we use the wxWidgets dependency here from the passthru of - # plplot. + # and Darwin. , enableWX ? (stdenv.isLinux || stdenv.isDarwin) +, wxGTK32 +, Cocoa # X11: OFF by default for platform consistency. Use X where WX is not available , enableXWin ? (!stdenv.isLinux && !stdenv.isDarwin) }: @@ -128,8 +132,6 @@ stdenv.mkDerivation rec { udunits eigen pslib - eccodes - glpk libpng libtiff libgeotiff @@ -139,7 +141,10 @@ stdenv.mkDerivation rec { netcdf-custom plplot-with-drivers ] ++ lib.optional enableXWin plplot-with-drivers.libX11 - ++ lib.optional enableWX plplot-with-drivers.wxWidgets + ++ lib.optional enableGRIB eccodes + ++ lib.optional enableGLPK glpk + ++ lib.optional enableWX wxGTK32 + ++ lib.optional (enableWX && stdenv.isDarwin) Cocoa ++ lib.optional enableMPI mpi ++ lib.optional enableLibtirpc hdf4-custom.libtirpc ++ lib.optional enableSzip szip; @@ -156,19 +161,29 @@ stdenv.mkDerivation rec { ++ [ (if enableHDF5 then "-DHDF5DIR=${hdf5-custom}" else "-DHDF5=OFF") ] ++ lib.optional (!enableNetCDF) "-DNETCDF=OFF" ++ lib.optional (!enablePlplotDrivers) "-DINTERACTIVE_GRAPHICS=OFF" + ++ lib.optional (!enableGRIB) "-DGRIB=OFF" + ++ lib.optional (!enableGLPK) "-DGLPK=OFF" ++ lib.optional (!enableWX) "-DWXWIDGETS=OFF" ++ lib.optional enableSzip "-DSZIPDIR=${szip}" ++ lib.optionals enableXWin [ "-DX11=ON" "-DX11DIR=${plplot-with-drivers.libX11}" ] ++ lib.optionals enableMPI [ "-DMPI=ON" "-DMPIDIR=${mpi}" ]; - doCheck = true; + # Tests are failing on Hydra: + # ./src/common/dpycmn.cpp(137): assert ""IsOk()"" failed in GetClientArea(): invalid wxDisplay object + doCheck = stdenv.isLinux; # Opt-out unstable tests # https://github.com/gnudatalanguage/gdl/issues/482 # https://github.com/gnudatalanguage/gdl/issues/1079 # https://github.com/gnudatalanguage/gdl/issues/460 preCheck = '' - checkFlagsArray+=("ARGS=-E 'test_tic_toc.pro|test_byte_conversion.pro|test_bytscl.pro|test_call_external.pro'") + checkFlagsArray+=("ARGS=-E '${lib.concatMapStringsSep "|" (test: test + ".pro") [ + "test_byte_conversion" + "test_bytscl" + "test_call_external" + "test_tic_toc" + "test_timestamp" + ]}'") ''; passthru = { diff --git a/pkgs/development/libraries/plplot/default.nix b/pkgs/development/libraries/plplot/default.nix index f3a703ce1878..fef1d2de324e 100644 --- a/pkgs/development/libraries/plplot/default.nix +++ b/pkgs/development/libraries/plplot/default.nix @@ -3,14 +3,13 @@ , fetchurl , cmake , enableWX ? false -, wxGTK31, wxmac +, wxGTK32 +, Cocoa , enableXWin ? false , libX11 }: -let - wxWidgets = (if stdenv.isDarwin then wxmac else wxGTK31); -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "plplot"; version = "5.15.0"; @@ -21,13 +20,13 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional enableWX wxWidgets + buildInputs = lib.optional enableWX wxGTK32 + ++ lib.optional (enableWX && stdenv.isDarwin) Cocoa ++ lib.optional enableXWin libX11; passthru = { inherit enableWX - wxWidgets enableXWin libX11 ; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b51c0bbbe3d0..248bb7107143 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7485,6 +7485,7 @@ with pkgs; plplot = callPackage ../development/libraries/plplot { inherit (xorg) libX11; + inherit (darwin.apple_sdk.frameworks) Cocoa; }; pxattr = callPackage ../tools/archivers/pxattr { }; @@ -15288,6 +15289,7 @@ with pkgs; gnudatalanguage = callPackage ../development/interpreters/gnudatalanguage { inherit (llvmPackages) openmp; + inherit (darwin.apple_sdk.frameworks) Cocoa; # MPICH currently build on Darwin mpi = mpich; };