Unverified Commit e9069b10 authored by Emily's avatar Emily Committed by GitHub
Browse files

vengi-tools: fix build on darwin (#399609)

parents 61d80aed 236a54dd
Loading
Loading
Loading
Loading
+30 −22
Original line number Diff line number Diff line
@@ -27,9 +27,6 @@
  SDL2,
  SDL2_mixer,
  wayland-protocols,
  Carbon,
  CoreServices,
  OpenCL,

  callPackage,
  nixosTests,
@@ -46,6 +43,15 @@ stdenv.mkDerivation (finalAttrs: {
    hash = "sha256-8rGnW+VtqNJYqUqQDp0yOVIQd7w+cq7PIpqqIQPhkbE=";
  };

  prePatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
    # Disable code signing on macOS
    substituteInPlace cmake/macros.cmake --replace-fail "codesign" "true"
    substituteInPlace cmake/system/apple.cmake --replace-fail "if(APPLE)" "if(false)"

    # calls otool -L on /usr/lib/libSystem.B.dylib and fails because it doesn't exist
    substituteInPlace cmake/applebundle.cmake --replace-fail 'fixup_bundle("''${TARGET_BUNDLE_DIR}" "" "")' ""
  '';

  nativeBuildInputs = [
    cmake
    pkg-config
@@ -73,15 +79,8 @@ stdenv.mkDerivation (finalAttrs: {
      SDL2_mixer
    ]
    ++ lib.optional stdenv.hostPlatform.isLinux wayland-protocols
    ++ lib.optionals stdenv.hostPlatform.isDarwin [
      Carbon
      CoreServices
      OpenCL
    ]
    ++ lib.optional (!stdenv.hostPlatform.isDarwin) opencl-headers;

  cmakeFlags = lib.optional stdenv.hostPlatform.isDarwin "-DCORESERVICES_LIB=${CoreServices}";

  # error: "The plain signature for target_link_libraries has already been used"
  doCheck = false;

@@ -89,12 +88,22 @@ stdenv.mkDerivation (finalAttrs: {
    gtest
  ];

  postInstall =
    if stdenv.hostPlatform.isDarwin then
      ''
        mkdir -p $out/Applications
        mv $out/*.app $out/Applications/

        mkdir -p $out/bin
        ln -s $out/Applications/vengi-voxconvert.app/Contents/MacOS/vengi-voxconvert $out/bin/vengi-voxconvert
      ''
    else
      # Set the data directory for each executable. We cannot set it at build time
      # with the PKGDATADIR cmake variable because each executable needs a specific
      # one.
      # This is not needed on darwin, since on that platform data files are saved
      # in *.app/Contents/Resources/ too, and are picked up automatically.
  postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
      ''
        for prog in $out/bin/*; do
          wrapProgram "$prog" \
            --set CORE_PATH $out/share/$(basename "$prog")/
@@ -124,6 +133,5 @@ stdenv.mkDerivation (finalAttrs: {
    ];
    maintainers = with maintainers; [ fgaz ];
    platforms = platforms.all;
    broken = stdenv.hostPlatform.isDarwin;
  };
})
+1 −3
Original line number Diff line number Diff line
@@ -16285,9 +16285,7 @@ with pkgs;
  vdirsyncer = with python3Packages; toPythonApplication vdirsyncer;
  vengi-tools = darwin.apple_sdk_11_0.callPackage ../applications/graphics/vengi-tools {
    inherit (darwin.apple_sdk_11_0.frameworks) Carbon CoreServices OpenCL;
  };
  vengi-tools = callPackage ../applications/graphics/vengi-tools { };
  veusz = libsForQt5.callPackage ../applications/graphics/veusz { };