diff --git a/pkgs/by-name/cs/csfml/package.nix b/pkgs/by-name/cs/csfml/package.nix index 08d98928d77e..646f83062726 100644 --- a/pkgs/by-name/cs/csfml/package.nix +++ b/pkgs/by-name/cs/csfml/package.nix @@ -6,20 +6,33 @@ sfml, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "csfml"; - version = "2.5.2"; + version = "2.6.1"; + src = fetchFromGitHub { owner = "SFML"; repo = "CSFML"; - rev = version; - sha256 = "sha256-A5C/4SnxUX7mW1wkPWJWX3dwMhrJ79DkBuZ7UYzTOqE="; + tag = finalAttrs.version; + hash = "sha256-ECt0ySDpYWF0zuDBSnQzDwUm4Xj4z1+XSC55D6yivac="; }; + + # Fix incorrect path joining in cmake + # https://github.com/NixOS/nixpkgs/issues/144170 + postPatch = '' + substituteInPlace tools/pkg-config/csfml-*.pc.in \ + --replace-fail \ + 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' \ + "libdir=@CMAKE_INSTALL_FULL_LIBDIR@" + ''; + nativeBuildInputs = [ cmake ]; buildInputs = [ sfml ]; - cmakeFlags = [ "-DCMAKE_MODULE_PATH=${sfml}/share/SFML/cmake/Modules/" ]; + cmakeFlags = [ + (lib.cmakeFeature "CMAKE_MODULE_PATH" "${sfml}/share/SFML/cmake/Modules/") + ]; - meta = with lib; { + meta = { homepage = "https://www.sfml-dev.org/"; description = "Simple and fast multimedia library"; longDescription = '' @@ -27,8 +40,8 @@ stdenv.mkDerivation rec { It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. ''; - license = licenses.zlib; - maintainers = [ maintainers.jpdoyle ]; - platforms = platforms.linux; + license = lib.licenses.zlib; + maintainers = [ lib.maintainers.jpdoyle ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/sf/sfml/package.nix b/pkgs/by-name/sf/sfml/package.nix new file mode 100644 index 000000000000..577952e20064 --- /dev/null +++ b/pkgs/by-name/sf/sfml/package.nix @@ -0,0 +1,77 @@ +{ + lib, + stdenv, + fetchFromGitHub, + + # nativeBuildInputs + cmake, + + # buildInputs + flac, + freetype, + glew, + libjpeg, + libvorbis, + openal, + udev, + libX11, + libXcursor, + libXrandr, + libXrender, + xcbutilimage, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "sfml"; + version = "2.6.2"; + + src = fetchFromGitHub { + owner = "SFML"; + repo = "SFML"; + tag = finalAttrs.version; + hash = "sha256-m8FVXM56qjuRKRmkcEcRI8v6IpaJxskoUQ+sNsR1EhM="; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = + [ + flac + freetype + glew + libjpeg + libvorbis + openal + ] + ++ lib.optional stdenv.hostPlatform.isLinux udev + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + libX11 + libXcursor + libXrandr + libXrender + xcbutilimage + ]; + + cmakeFlags = [ + (lib.cmakeBool "SFML_INSTALL_PKGCONFIG_FILES" true) + (lib.cmakeFeature "SFML_MISC_INSTALL_PREFIX" "share/SFML") + (lib.cmakeBool "SFML_BUILD_FRAMEWORKS" false) + (lib.cmakeBool "SFML_USE_SYSTEM_DEPS" true) + ]; + + meta = { + description = "Simple and fast multimedia library"; + homepage = "https://www.sfml-dev.org/"; + changelog = "https://github.com/SFML/SFML/blob/${finalAttrs.version}/changelog.md"; + longDescription = '' + SFML is a simple, fast, cross-platform and object-oriented multimedia API. + It provides access to windowing, graphics, audio and network. + It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. + ''; + license = lib.licenses.zlib; + maintainers = [ lib.maintainers.astsmtl ]; + platforms = lib.platforms.unix; + badPlatforms = [ + # error: implicit instantiation of undefined template 'std::char_traits' + lib.systems.inspect.patterns.isDarwin + ]; + }; +}) diff --git a/pkgs/development/libraries/sfml/default.nix b/pkgs/development/libraries/sfml/default.nix deleted file mode 100644 index 21c9927ee620..000000000000 --- a/pkgs/development/libraries/sfml/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - cmake, - libX11, - freetype, - libjpeg, - openal, - flac, - libvorbis, - glew, - libXrandr, - libXrender, - udev, - xcbutilimage, - IOKit, - Foundation, - AppKit, - OpenAL, -}: - -stdenv.mkDerivation rec { - pname = "sfml"; - version = "2.5.1"; - - src = fetchFromGitHub { - owner = "SFML"; - repo = "SFML"; - rev = version; - sha256 = "sha256-Xt2Ct4vV459AsSvJxQfwMsNs6iA5y3epT95pLWJGeSk="; - }; - - patches = [ - (fetchpatch { - url = "https://github.com/macports/macports-ports/raw/4df1fc235a708ff28200ffc0a39120974ed4b6e1/multimedia/sfml/files/patch-apple-silicon.diff"; - extraPrefix = ""; - sha256 = "sha256-9dNawJaYtkugR+2NvhQOhgsf6w9ZXHkBgsDRh8yAJc0="; - }) - (fetchpatch { - url = "https://github.com/SFML/SFML/commit/bf92efe9a4035fee0258386173d53556aa196e49.patch"; - hash = "sha256-1htwPfpn7Z6s/3b+/i1tQ+btjr/tWv5m6IyDVMBNqQA="; - }) - ]; - - nativeBuildInputs = [ cmake ]; - buildInputs = - [ - freetype - libjpeg - openal - flac - libvorbis - glew - ] - ++ lib.optional stdenv.hostPlatform.isLinux udev - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - libX11 - libXrandr - libXrender - xcbutilimage - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - IOKit - Foundation - AppKit - OpenAL - ]; - - cmakeFlags = [ - "-DSFML_INSTALL_PKGCONFIG_FILES=yes" - "-DSFML_MISC_INSTALL_PREFIX=share/SFML" - "-DSFML_BUILD_FRAMEWORKS=no" - "-DSFML_USE_SYSTEM_DEPS=yes" - ]; - - meta = with lib; { - homepage = "https://www.sfml-dev.org/"; - description = "Simple and fast multimedia library"; - longDescription = '' - SFML is a simple, fast, cross-platform and object-oriented multimedia API. - It provides access to windowing, graphics, audio and network. - It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. - ''; - license = licenses.zlib; - maintainers = [ maintainers.astsmtl ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0c4c80152c97..3bd2b8752b7e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10447,9 +10447,6 @@ with pkgs; simpleitk = callPackage ../development/libraries/simpleitk { lua = lua5_4; }; - sfml = callPackage ../development/libraries/sfml { - inherit (darwin.apple_sdk.frameworks) IOKit Foundation AppKit OpenAL; - }; skawarePackages = recurseIntoAttrs (callPackage ../development/skaware-packages { }); inherit (skawarePackages)