From af241d460784de58cb4fb6a4c0a307ee3efa069b Mon Sep 17 00:00:00 2001 From: WeetHet Date: Thu, 29 Aug 2024 11:16:31 +0300 Subject: [PATCH] raylib-python-cffi: fix builds on darwin --- .../raylib-python-cffi/default.nix | 44 +++++++++++++++---- .../raylib-python-cffi/fix_macos_raylib.patch | 11 +++++ 2 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 pkgs/development/python-modules/raylib-python-cffi/fix_macos_raylib.patch diff --git a/pkgs/development/python-modules/raylib-python-cffi/default.nix b/pkgs/development/python-modules/raylib-python-cffi/default.nix index f1d46c1822d1..e77e357b3f3a 100644 --- a/pkgs/development/python-modules/raylib-python-cffi/default.nix +++ b/pkgs/development/python-modules/raylib-python-cffi/default.nix @@ -1,4 +1,6 @@ { + stdenv, + gcc, buildPythonPackage, fetchFromGitHub, setuptools, @@ -9,9 +11,19 @@ raylib, physac, raygui, - lib + darwin, + lib, }: +let + inherit (darwin.apple_sdk.frameworks) + OpenGL + Cocoa + IOKit + CoreFoundation + CoreVideo + ; +in buildPythonPackage rec { pname = "raylib-python-cffi"; version = "5.0.0.2"; @@ -31,22 +43,36 @@ buildPythonPackage rec { # This patch fixes to the builder script function to call pkg-config # using the library name rather than searching only through raylib ./fix_pyray_builder.patch + + # use get_lib_flags() instead of linking to libraylib.a directly + ./fix_macos_raylib.patch ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + gcc + ]; # tests require a graphic environment doCheck = false; pythonImportsCheck = [ "pyray" ]; - buildInputs = [ - glfw - libffi - raylib - physac - raygui - ]; + buildInputs = + [ + glfw + libffi + raylib + physac + raygui + ] + ++ lib.optionals stdenv.isDarwin [ + OpenGL + Cocoa + IOKit + CoreFoundation + CoreVideo + ]; meta = { description = "Python CFFI bindings for Raylib"; diff --git a/pkgs/development/python-modules/raylib-python-cffi/fix_macos_raylib.patch b/pkgs/development/python-modules/raylib-python-cffi/fix_macos_raylib.patch new file mode 100644 index 000000000000..be2f41a3720c --- /dev/null +++ b/pkgs/development/python-modules/raylib-python-cffi/fix_macos_raylib.patch @@ -0,0 +1,11 @@ +--- a/raylib/build.py ++++ b/raylib/build.py +@@ -158,7 +158,7 @@ def build_unix(): + + if platform.system() == "Darwin": + print("BUILDING FOR MAC") +- extra_link_args = [get_the_lib_path() + '/libraylib.a', '-framework', 'OpenGL', '-framework', 'Cocoa', ++ extra_link_args = get_lib_flags() + ['-framework', 'OpenGL', '-framework', 'Cocoa', + '-framework', 'IOKit', '-framework', 'CoreFoundation', '-framework', + 'CoreVideo'] + libraries = []