{ buildPythonPackage, darwin, fetchFromGitHub, lib, pyobjc-core, setuptools, }: buildPythonPackage rec { pname = "pyobjc-framework-Cocoa"; pyproject = true; inherit (pyobjc-core) version src; patches = pyobjc-core.patches or [ ]; sourceRoot = "${src.name}/pyobjc-framework-Cocoa"; build-system = [ setuptools ]; buildInputs = [ darwin.libffi ]; nativeBuildInputs = [ darwin.DarwinTools # sw_vers ]; # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we # cannot just pull that diff with fetchpatch due to https://discourse.nixos.org/t/how-to-apply-patches-with-sourceroot/59727. postPatch = '' substituteInPlace pyobjc_setup.py \ --replace-fail "-buildversion" "-buildVersion" \ --replace-fail "-productversion" "-productVersion" \ --replace-fail "/usr/bin/sw_vers" "sw_vers" \ --replace-fail "/usr/bin/xcrun" "xcrun" ''; dependencies = [ pyobjc-core ]; env.NIX_CFLAGS_COMPILE = toString [ "-I${darwin.libffi.dev}/include" "-Wno-error=unused-command-line-argument" ]; pythonImportsCheck = [ "Cocoa" "CoreFoundation" "Foundation" "AppKit" "PyObjCTools" ]; meta = { description = "PyObjC wrappers for the Cocoa frameworks on macOS"; homepage = "https://github.com/ronaldoussoren/pyobjc/tree/main/pyobjc-framework-Cocoa"; license = lib.licenses.mit; platforms = lib.platforms.darwin; maintainers = with lib.maintainers; [ samuela ]; }; }