gentoo-karlay

My Gentoo ebuild overlay
Log | Files | Refs

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 }