From 0de1f14ac047352c7c051c8261458318c9da805d Mon Sep 17 00:00:00 2001 From: Michael Thomas Date: Thu, 16 Nov 2023 10:04:23 -0500 Subject: [PATCH] firebird-emu: support darwin firebird-emu supports darwin, but the derivation has not been tested on macOS. This commit adds darwin support to the derivation, with the necessary tweaks to support building for a darwin target. Namely, adds a workaround for https://github.com/NixOS/nixpkgs/issues/19098, and adds a missing dependency, qtquickcontrols. Also, adds a postInstall hook which moves the MacOS .app file to the Applications/ folder in the store, enabling proper linking to /Applications or ~/Applications and appearance in Spotlight and Launchpad. --- .../emulators/firebird-emu/default.nix | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/emulators/firebird-emu/default.nix b/pkgs/applications/emulators/firebird-emu/default.nix index d117a93fba4aa..9fd9901461617 100644 --- a/pkgs/applications/emulators/firebird-emu/default.nix +++ b/pkgs/applications/emulators/firebird-emu/default.nix @@ -1,6 +1,13 @@ -{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase, qtdeclarative }: - -mkDerivation rec { +{ stdenv +, lib +, fetchFromGitHub +, qmake +, qtbase +, qtdeclarative +, qtquickcontrols +, wrapQtAppsHook +}: +stdenv.mkDerivation rec { pname = "firebird-emu"; version = "1.6"; @@ -12,16 +19,23 @@ mkDerivation rec { hash = "sha256-ZptjlnOiF+hKuKYvBFJL95H5YQuR99d4biOco/MVEmE="; }; - nativeBuildInputs = [ qmake ]; + # work around https://github.com/NixOS/nixpkgs/issues/19098 + env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && stdenv.isDarwin) "-fno-lto"; + + nativeBuildInputs = [ wrapQtAppsHook qmake ]; + + buildInputs = [ qtbase qtdeclarative qtquickcontrols ]; - buildInputs = [ qtbase qtdeclarative ]; + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/Applications + mv $out/bin/${pname}.app $out/Applications/ + ''; meta = { homepage = "https://github.com/nspire-emus/firebird"; description = "Third-party multi-platform emulator of the ARM-based TI-Nspireā„¢ calculators"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ pneumaticat ]; - # Only tested on Linux, but likely possible to build on, e.g. macOS - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; }; }