unar: fix build with clang 16

* Set deployment target based on stdenv; and
* Work around https://github.com/NixOS/nixpkgs/issues/166205.
This commit is contained in:
Randy Eckenrode 2023-11-06 21:52:13 -05:00
parent 311c0ae699
commit 19fbec8a7f
No known key found for this signature in database
GPG Key ID: 64C1CD4EC2A600D9

View File

@ -50,15 +50,17 @@ stdenv.mkDerivation rec {
lib.optionals stdenv.isLinux [ gnustep.make ] ++
lib.optionals stdenv.isDarwin [ xcbuildHook ];
# Work around https://github.com/NixOS/nixpkgs/issues/166205.
# xcbuild links with clang instead of clang++.
env = lib.optionalAttrs stdenv.isDarwin {
LD_FLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
};
xcbuildFlags = lib.optionals stdenv.isDarwin [
"-target unar"
"-target lsar"
"-configuration Release"
"MACOSX_DEPLOYMENT_TARGET=10.12"
# Fix "ld: file not found: /nix/store/*-clang-7.1.0/lib/arc/libarclite_macosx." error
# Disabling ARC may leak memory, however since this program is generally not used for
# long periods of time, it shouldn't be an issue
"CLANG_LINK_OBJC_RUNTIME=NO"
"MACOSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinMinVersion}"
];
makefile = lib.optionalString (!stdenv.isDarwin) "Makefile.linux";