diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/ftgl')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/ftgl/default.nix | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/ftgl/default.nix b/nixpkgs/pkgs/development/libraries/ftgl/default.nix new file mode 100644 index 000000000000..b6554979c7ee --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/ftgl/default.nix @@ -0,0 +1,76 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, doxygen +, freeglut +, freetype +, libGL +, libGLU +, pkg-config +, darwin +}: + +let + inherit (darwin.apple_sdk.frameworks) OpenGL GLUT; +in +stdenv.mkDerivation rec { + pname = "ftgl"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "frankheckenbach"; + repo = "ftgl"; + rev = "v${version}"; + hash = "sha256-6TDNGoMeBLnucmHRgEDIVWcjlJb7N0sTluqBwRMMWn4="; + }; + + # GL_DYLIB is hardcoded to an impure path + # /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib + # and breaks build on recent macOS versions + postPatch = '' + substituteInPlace m4/gl.m4 \ + --replace ' -dylib_file $GL_DYLIB: $GL_DYLIB' "" + ''; + + nativeBuildInputs = [ + autoreconfHook + doxygen + pkg-config + ]; + buildInputs = [ + freetype + ] ++ (if stdenv.isDarwin then [ + OpenGL + GLUT + ] else [ + libGL + libGLU + freeglut + ]); + + configureFlags = [ + "--with-ft-prefix=${lib.getDev freetype}" + ]; + + enableParallelBuilding = true; + + postInstall = '' + install -Dm644 src/FTSize.h -t ${placeholder "out"}/include/FTGL + install -Dm644 src/FTFace.h -t ${placeholder "out"}/include/FTGL + ''; + + meta = with lib; { + homepage = "https://github.com/frankheckenbach/ftgl"; + description = "Font rendering library for OpenGL applications"; + longDescription = '' + FTGL is a free cross-platform Open Source C++ library that uses Freetype2 + to simplify rendering fonts in OpenGL applications. FTGL supports bitmaps, + pixmaps, texture maps, outlines, polygon mesh, and extruded polygon + rendering modes. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} |