sc-im-0.8.5.ebuild (3981B)
1 # Copyright 2022-2024 Gentoo Authors 2 # Distributed under the terms of the GNU General Public License v2 3 4 EAPI=8 5 6 LUA_COMPAT=( lua5-1 luajit ) 7 8 inherit lua-single toolchain-funcs flag-o-matic 9 10 DESCRIPTION="Ncurses based, vim-like spreadsheet calculator" 11 HOMEPAGE="https://github.com/andmarti1424/sc-im" 12 SRC_URI="https://github.com/andmarti1424/sc-im/archive/v${PV}.tar.gz -> ${P}.tar.gz" 13 S="${WORKDIR}/${P}/src" 14 15 LICENSE="BSD-4" 16 SLOT="0" 17 KEYWORDS="amd64 ~arm arm64 ~x86" 18 IUSE="lua ods plots tmux wayland X xls xlsx" 19 REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )" 20 21 DEPEND=" 22 sys-libs/ncurses:= 23 lua? ( 24 ${LUA_DEPS} 25 ) 26 ods? ( 27 dev-libs/libxml2 28 dev-libs/libzip 29 ) 30 plots? ( sci-visualization/gnuplot ) 31 tmux? ( app-misc/tmux ) 32 wayland? ( gui-apps/wl-clipboard ) 33 X? ( x11-misc/xclip ) 34 xls? ( 35 dev-libs/libxls 36 ) 37 xlsx? ( 38 dev-libs/libxlsxwriter 39 dev-libs/libxml2 40 dev-libs/libzip 41 ) 42 " 43 RDEPEND="${DEPEND}" 44 BDEPEND="app-alternatives/yacc 45 virtual/pkgconfig" 46 47 pkg_setup() { 48 CONFLICTING=$(usex tmux "tmux " "")$(usex wayland "wayland " "")$(usex X "X" "") 49 if ( use tmux && ( use wayland || use X ) ) ; then 50 elog "Conflicting flags for clipboard support are set: ${CONFLICTING}" 51 elog "tmux support has been preferred." 52 elif ( use wayland && use X ) ; then 53 elog "Conflicting flags for clipboard support are set: ${CONFLICTING}" 54 elog "Wayland support has been preferred." 55 fi 56 57 # Run lua setup 58 use lua && lua-single_pkg_setup 59 } 60 61 src_prepare() { 62 default 63 64 # Clean Makefile from all sorts of flag / lib setting 65 sed -i -e '/CFLAGS +=\|LDLIBS +=/d' Makefile \ 66 || die "sed fix failed. Uh-oh..." 67 # Also clean the now useless comments and logic 68 sed -i -e '/#\|if\|else/d' Makefile \ 69 || die "sed fix failed. Uh-oh..." 70 } 71 72 src_configure() { 73 tc-export CC PKG_CONFIG 74 75 LDLIBS="-lm" 76 77 # default flags that dont need optional dependencies 78 append-cflags -Wall -g \ 79 -DNCURSES \ 80 -D_XOPEN_SOURCE_EXTENDED -D_GNU_SOURCE \ 81 '-DSNAME=\"sc-im\"' \ 82 '-DHELP_PATH=\"/usr/share/sc-im\"' \ 83 '-DLIBDIR=\"/usr/share/doc/sc-im\"' \ 84 '-DDFLT_PAGER=\"less\"' \ 85 '-DDFLT_EDITOR=\"vim\"' \ 86 -DUSECOLORS \ 87 '-DHISTORY_FILE=\"sc-iminfo\"' \ 88 '-DHISTORY_DIR=\".cache\"' \ 89 '-DCONFIG_FILE=\"scimrc\"' \ 90 '-DCONFIG_DIR=\".config/sc-im\"' \ 91 '-DINS_HISTORY_FILE=\"sc-iminfo\"' \ 92 -DUNDO \ 93 -DMAXROWS=1048576 \ 94 -DUSELOCALE \ 95 -DMOUSE \ 96 '-DDEFAULT_OPEN_FILE_UNDER_CURSOR_CMD=\""scopen"\"' \ 97 -DAUTOBACKUP \ 98 -DHAVE_PTHREAD 99 100 # setting default clipboard commands 101 if use tmux ; then 102 append-cflags '-DDEFAULT_COPY_TO_CLIPBOARD_CMD=\""tmux load-buffer"\"' 103 append-cflags '-DDEFAULT_PASTE_FROM_CLIPBOARD_CMD=\""tmux show-buffer"\"' 104 elif use wayland ; then 105 append-cflags '-DDEFAULT_COPY_TO_CLIPBOARD_CMD=\""wl-copy <"\"' 106 append-cflags '-DDEFAULT_PASTE_FROM_CLIPBOARD_CMD=\""wl-paste"\"' 107 elif use X ; then 108 append-cflags '-DDEFAULT_COPY_TO_CLIPBOARD_CMD=\""xclip -i -selection clipboard <"\"' 109 append-cflags '-DDEFAULT_PASTE_FROM_CLIPBOARD_CMD=\""xclip -o -selection clipboard"\"' 110 fi 111 112 # optional feature dependency 113 use plots && append-cflags -DGNUPLOT 114 if use xls; then 115 append-cflags -DXLS $(${PKG_CONFIG} --cflags libxls) 116 LDLIBS+=" $(${PKG_CONFIG} --libs libxls)" 117 fi 118 if use xlsx || use ods ; then 119 append-cflags -DODS -DXLSX $(${PKG_CONFIG} --cflags libxml-2.0 libzip) 120 LDLIBS+=" -DODS -DXLSX $(${PKG_CONFIG} --libs libxml-2.0 libzip)" 121 fi 122 if use xlsx ; then 123 append-cflags -DXLSX_EXPORT $(${PKG_CONFIG} --cflags xlsxwriter) 124 LDLIBS+=" -DXLSX_EXPORT $(${PKG_CONFIG} --libs xlsxwriter)" 125 fi 126 if use lua ; then 127 append-cflags -DXLUA $(${PKG_CONFIG} --cflags lua) 128 LDLIBS+=" -DXLUA $(${PKG_CONFIG} --libs lua) -rdynamic" 129 fi 130 append-cflags $(${PKG_CONFIG} --cflags ncursesw) || append-cflags $(${PKG_CONFIG} --cflags ncurses) 131 LDLIBS+=" $(${PKG_CONFIG} --libs ncursesw)" || LDLIBS+=" $(${PKG_CONFIG} --libs ncurses)" 132 } 133 134 src_compile() { 135 emake LDLIBS="${LDLIBS}" CFLAGS="${CFLAGS}" 136 } 137 138 src_install() { 139 emake DESTDIR="${D}" prefix="/usr" install 140 einstalldocs 141 }