diff --git a/Cargo.lock b/Cargo.lock index 83d21f3..9164521 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -427,6 +427,7 @@ version = "0.1.0" dependencies = [ "anyhow", "midly", + "pkg-config", "raylib", "serialport", ] diff --git a/Cargo.toml b/Cargo.toml index 7938140..18eb4e0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,4 +7,7 @@ edition = "2024" anyhow = "1.0.102" midly = "0.5.3" serialport = "4.9.0" -raylib = { version = "5.5.1", default-features = false, features = ["wayland"] } +raylib = { version = "5.5.1", features = ["nobuild"] } + +[build-dependencies] +pkg-config = "0.3" diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..21ace93 --- /dev/null +++ b/build.rs @@ -0,0 +1,6 @@ +fn main() { + pkg_config::Config::new() + .atleast_version("5.0") + .probe("raylib") + .expect("failed to find system raylib via pkg-config"); +} diff --git a/flake.nix b/flake.nix index a8ab1c4..0cea3e1 100644 --- a/flake.nix +++ b/flake.nix @@ -51,29 +51,42 @@ isDarwin = pkgs.stdenv.isDarwin; - x11Libs = with pkgs; [ - wayland - #libX11 - #libXcursor - #libXi - #libXrandr - libxkbcommon - ]; + raylibDrm = pkgs.raylib.overrideAttrs (_old: { + cmakeFlags = [ + "-DCUSTOMIZE_BUILD=ON" + "-DBUILD_EXAMPLES=OFF" + "-DPLATFORM=DRM" + "-DINCLUDE_EVERYTHING=ON" + "-DBUILD_SHARED_LIBS=ON" + ]; + buildInputs = [ + pkgs.libdrm + pkgs.libgbm + pkgs.libxkbcommon + pkgs.libinput + pkgs.udev + pkgs.libGL + ]; + propagatedBuildInputs = [ + pkgs.libdrm + pkgs.libgbm + pkgs.libxkbcommon + pkgs.libinput + pkgs.udev + pkgs.libGL + ]; + NIX_CFLAGS_COMPILE = "-I${pkgs.libdrm.dev}/include/libdrm"; + }); commonBuildInputs = with pkgs; [ openssl shaderc + raylibDrm ] - ++ pkgs.lib.optionals (!isDarwin) ( - [ - udev - libGL - glfw - llvmPackages.libclang - ] - ++ x11Libs - ); + ++ pkgs.lib.optionals (!isDarwin) [ + llvmPackages.libclang + ]; commonNativeBuildInputs = with pkgs; [ pkg-config