diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-07-23 09:26:00 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-07-23 09:26:00 +0000 |
commit | ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d (patch) | |
tree | 504b28a058661f6c1cbb7d3f580020e50367ca7f /nixpkgs/pkgs/development/libraries/fltk | |
parent | 55cc63c079f49e81d695a25bc2f5b3902f2bd290 (diff) | |
parent | b09661d41fb93562fd53f31574dbf781b130ac44 (diff) | |
download | nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.gz nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.bz2 nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.lz nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.xz nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.zst nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.zip |
Merge commit 'b09661d41fb93562fd53f31574dbf781b130ac44'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/fltk')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/fltk/1.4.nix | 52 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/fltk/common.nix | 205 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/fltk/default.nix | 49 |
3 files changed, 213 insertions, 93 deletions
diff --git a/nixpkgs/pkgs/development/libraries/fltk/1.4.nix b/nixpkgs/pkgs/development/libraries/fltk/1.4.nix index 2db0aea3ecf8..2a430844ebe7 100644 --- a/nixpkgs/pkgs/development/libraries/fltk/1.4.nix +++ b/nixpkgs/pkgs/development/libraries/fltk/1.4.nix @@ -1,49 +1,5 @@ -{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, xorgproto, libXi -, freeglut, libGLU, libGL, libjpeg, zlib, libXft, libpng -, libtiff, freetype, Cocoa, AGL, GLUT -}: - -let - version = "1.4.x-r13121"; -in - -stdenv.mkDerivation { - pname = "fltk"; - inherit version; - - src = fetchurl { - url = "https://www.fltk.org/pub/fltk/snapshots/fltk-${version}.tar.gz"; - sha256 = "1v8wxvxcbk99i82x2v5fpqg5vj8n7g8a38g30ry7nzcjn5sf3r63"; - }; - - patches = lib.optionals stdenv.isDarwin [ ./nsosv.patch ]; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libGLU libGL libjpeg zlib libpng libXft ] - ++ lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ]; - - propagatedBuildInputs = [ xorgproto ] - ++ (if stdenv.isDarwin - then [ freetype libtiff ] - else [ xlibsWrapper libXi freeglut ]); - - configureFlags = [ - "--enable-gl" - "--enable-largefile" - "--enable-shared" - "--enable-threads" - "--enable-xft" - ]; - - preConfigure = "make clean"; - - enableParallelBuilding = true; - - meta = with lib; { - description = "A C++ cross-platform lightweight GUI library"; - homepage = "https://www.fltk.org"; - platforms = platforms.linux ++ platforms.darwin; - license = licenses.gpl2; - }; - +import ./common.nix rec { + version = "1.4.x-2021-07-04"; + rev = "1008cdfab27609a6f6a0e82dadad9fd9cbd8a66d"; + sha256 = "1h057dyhd04b9bjci952b2l7brxv183l9jw9i50mn9qjfljmvqim"; } diff --git a/nixpkgs/pkgs/development/libraries/fltk/common.nix b/nixpkgs/pkgs/development/libraries/fltk/common.nix new file mode 100644 index 000000000000..06e1c05c7d07 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/fltk/common.nix @@ -0,0 +1,205 @@ +{ version, rev, sha256 }: + +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, zlib +, libjpeg +, libpng +, fontconfig +, freetype +, libX11 +, libXext +, libXinerama +, libXfixes +, libXcursor +, libXft +, libXrender +, ApplicationServices +, Carbon +, Cocoa + +, withGL ? true +, libGL +, libGLU +, glew +, OpenGL + +, withCairo ? true +, cairo + +, withPango ? (lib.strings.versionAtLeast version "1.4" && stdenv.hostPlatform.isLinux) +, pango + +, withDocs ? true +, doxygen +, graphviz +, texlive + +, withExamples ? true +, withShared ? true +}: + +let + onOff = value: if value then "ON" else "OFF"; + tex = texlive.combine { + inherit (texlive) + scheme-medium varwidth multirow hanging adjustbox collectbox stackengine + sectsty tocloft newunicodechar etoc; + }; +in +stdenv.mkDerivation rec { + pname = "fltk"; + inherit version; + + src = fetchFromGitHub { + owner = "fltk"; + repo = "fltk"; + inherit rev sha256; + }; + + outputs = [ "out" ] + ++ lib.optional withExamples "bin" + ++ lib.optional withDocs "doc"; + + # Manually move example & test binaries to $bin to avoid cyclic dependencies on dev binaries + outputBin = lib.optionalString withExamples "out"; + + patches = lib.optionals stdenv.hostPlatform.isDarwin [ + ./nsosv.patch + ]; + + postPatch = '' + patchShebangs documentation/make_* + ''; + + nativeBuildInputs = [ + cmake + pkg-config + ] ++ lib.optionals withDocs [ + doxygen + graphviz + tex + ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ + ApplicationServices + Carbon + ] ++ lib.optionals (withGL && !stdenv.hostPlatform.isDarwin) [ + libGL + libGLU + ] ++ lib.optionals (withExamples && withGL) [ + glew + ]; + + propagatedBuildInputs = [ + zlib + libjpeg + libpng + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ + freetype + fontconfig + libX11 + libXext + libXinerama + libXfixes + libXcursor + libXft + libXrender + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + Cocoa + ] ++ lib.optionals (withGL && stdenv.hostPlatform.isDarwin) [ + OpenGL + ] ++ lib.optionals withCairo [ + cairo + ] ++ lib.optionals withPango [ + pango + ]; + + cmakeFlags = [ + # Common + "-DOPTION_BUILD_SHARED_LIBS=${onOff withShared}" + "-DOPTION_USE_SYSTEM_ZLIB=ON" + "-DOPTION_USE_SYSTEM_LIBJPEG=ON" + "-DOPTION_USE_SYSTEM_LIBPNG=ON" + + # X11 + "-DOPTION_USE_XINERAMA=${onOff stdenv.hostPlatform.isLinux}" + "-DOPTION_USE_XFIXES=${onOff stdenv.hostPlatform.isLinux}" + "-DOPTION_USE_XCURSOR=${onOff stdenv.hostPlatform.isLinux}" + "-DOPTION_USE_XFT=${onOff stdenv.hostPlatform.isLinux}" + "-DOPTION_USE_XRENDER=${onOff stdenv.hostPlatform.isLinux}" + "-DOPTION_USE_XDBE=${onOff stdenv.hostPlatform.isLinux}" + + # GL + "-DOPTION_USE_GL=${onOff withGL}" + "-DOpenGL_GL_PREFERENCE=GLVND" + + # Cairo + "-DOPTION_CAIRO=${onOff withCairo}" + "-DOPTION_CAIROEXT=${onOff withCairo}" + + # Pango + "-DOPTION_USE_PANGO=${onOff withPango}" + + # Examples & Tests + "-DFLTK_BUILD_EXAMPLES=${onOff withExamples}" + + # Docs + "-DOPTION_BUILD_HTML_DOCUMENTATION=${onOff withDocs}" + "-DOPTION_BUILD_PDF_DOCUMENTATION=${onOff withDocs}" + "-DOPTION_INSTALL_HTML_DOCUMENTATION=${onOff withDocs}" + "-DOPTION_INSTALL_PDF_DOCUMENTATION=${onOff withDocs}" + "-DOPTION_INCLUDE_DRIVER_DOCUMENTATION=${onOff withDocs}" + ]; + + preBuild = lib.optionalString (withCairo && withShared && stdenv.hostPlatform.isDarwin) '' + # unresolved symbols in cairo dylib without this: https://github.com/fltk/fltk/issues/250 + export NIX_LDFLAGS="$NIX_LDFLAGS -undefined dynamic_lookup" + ''; + + postBuild = lib.optionalString withDocs '' + make docs + ''; + + postInstall = lib.optionalString withExamples '' + mkdir -p $bin/bin + mv bin/{test,examples}/* $bin/bin/ + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p $out/Library/Frameworks + mv $out{,/Library/Frameworks}/FLTK.framework + + moveAppBundles() { + echo "Moving and symlinking $1" + appname="$(basename "$1")" + binname="$(basename "$(find "$1"/Contents/MacOS/ -type f -executable | head -n1)")" + curpath="$(dirname "$1")" + + mkdir -p "$curpath"/../Applications/ + mv "$1" "$curpath"/../Applications/ + [ -f "$curpath"/"$binname" ] && rm "$curpath"/"$binname" + ln -s ../Applications/"$appname"/Contents/MacOS/"$binname" "$curpath"/"$binname" + } + + rm $out/bin/fluid.icns + for app in $out/bin/*.app ${lib.optionalString withExamples "$bin/bin/*.app"}; do + moveAppBundles "$app" + done + ''; + + postFixup = '' + substituteInPlace $out/bin/fltk-config \ + --replace "/$out/" "/" + ''; + + meta = with lib; { + description = "A C++ cross-platform lightweight GUI library"; + homepage = "https://www.fltk.org"; + platforms = platforms.unix; + # LGPL2 with static linking exception + # https://www.fltk.org/COPYING.php + license = licenses.lgpl2Only; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/fltk/default.nix b/nixpkgs/pkgs/development/libraries/fltk/default.nix index 5cbd993fc646..831a96f71f3e 100644 --- a/nixpkgs/pkgs/development/libraries/fltk/default.nix +++ b/nixpkgs/pkgs/development/libraries/fltk/default.nix @@ -1,46 +1,5 @@ -{ lib, stdenv, fetchurl, pkg-config, xlibsWrapper, xorgproto, libXi -, freeglut, libGL, libGLU, libjpeg, zlib, libXft, libpng -, libtiff, freetype, Cocoa, AGL, GLUT -}: - -let - version = "1.3.5"; -in - -stdenv.mkDerivation { - pname = "fltk"; - inherit version; - - src = fetchurl { - url = "https://www.fltk.org/pub/fltk/${version}/fltk-${version}-source.tar.gz"; - sha256 = "00jp24z1818k9n6nn6lx7qflqf2k13g4kxr0p8v1d37kanhb4ac7"; - }; - - patches = lib.optionals stdenv.isDarwin [ ./nsosv.patch ]; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libGLU libGL libjpeg zlib libpng libXft ] - ++ lib.optional stdenv.isDarwin [ AGL Cocoa GLUT ]; - - propagatedBuildInputs = [ xorgproto ] - ++ (if stdenv.isDarwin - then [ freetype libtiff ] - else [ xlibsWrapper libXi freeglut ]); - - configureFlags = [ - "--enable-gl" - "--enable-largefile" - "--enable-shared" - "--enable-threads" - "--enable-xft" - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "A C++ cross-platform lightweight GUI library"; - homepage = "https://www.fltk.org"; - platforms = platforms.linux ++ platforms.darwin; - license = licenses.gpl2; - }; +import ./common.nix rec { + version = "1.3.6"; + rev = "release-${version}"; + sha256 = "0vzk4d6j927v7dxywr5xlqlf70myal1xikkdfvd11p94rcdf9bsv"; } |