diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix index 4457c9b88c79b..9b6c078fa53d8 100644 --- a/pkgs/applications/graphics/vengi-tools/default.nix +++ b/pkgs/applications/graphics/vengi-tools/default.nix @@ -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,17 +88,27 @@ stdenv.mkDerivation (finalAttrs: { gtest ]; - # 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")/ - done - ''; + 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. + '' + for prog in $out/bin/*; do + wrapProgram "$prog" \ + --set CORE_PATH $out/share/$(basename "$prog")/ + done + ''; passthru.tests = { voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix { }; @@ -124,6 +133,5 @@ stdenv.mkDerivation (finalAttrs: { ]; maintainers = with maintainers; [ fgaz ]; platforms = platforms.all; - broken = stdenv.hostPlatform.isDarwin; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ff9041c61f989..b604db81edb46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16453,9 +16453,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 { };