summaryrefslogtreecommitdiff
blob: 46acfd03a27f270077ada7e73532c5e4b3bd0d5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="8"

inherit desktop

DESCRIPTION="A multi-lingual terminal emulator"
HOMEPAGE="http://mlterm.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"

LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ppc ppc64 ~riscv x86"
IUSE="+X bidi brltty cairo debug fbcon fcitx freewnn gtk harfbuzz ibus libssh2 m17n-lib nls regis scim skk static-libs uim utempter wayland xft"
REQUIRED_USE="|| ( X fbcon wayland )"

RDEPEND="virtual/libcrypt:=
	X? (
		x11-libs/libICE
		x11-libs/libSM
		x11-libs/libX11
	)
	bidi? ( dev-libs/fribidi )
	brltty? ( app-accessibility/brltty[api(+)] )
	cairo? ( x11-libs/cairo[X(+)] )
	fbcon? ( media-fonts/unifont )
	fcitx? ( app-i18n/fcitx:* )
	freewnn? ( app-i18n/freewnn )
	gtk? ( x11-libs/gtk+:3 )
	harfbuzz? ( media-libs/harfbuzz[truetype(+)] )
	ibus? ( app-i18n/ibus )
	libssh2? ( net-libs/libssh2 )
	m17n-lib? ( dev-libs/m17n-lib )
	nls? ( virtual/libintl )
	regis? (
		|| (
			media-libs/sdl-ttf
			media-libs/sdl2-ttf
		)
	)
	scim? ( app-i18n/scim )
	skk? (
		|| (
			virtual/skkserv
			app-i18n/skk-jisyo
		)
	)
	uim? ( app-i18n/uim )
	utempter? ( sys-libs/libutempter )
	wayland? (
		dev-libs/wayland
		x11-libs/libxkbcommon
	)
	xft? ( x11-libs/libXft )"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig
	nls? ( sys-devel/gettext )"

DOCS=( doc/{en,ja} )

PATCHES=(
	"${FILESDIR}"/${PN}-font.patch
	"${FILESDIR}"/${PN}-clang-16.patch
)

src_prepare() {
	# default config
	sed -i \
		-e "/ icon_path =/aicon_path = ${EPREFIX}/usr/share/pixmaps/${PN}-icon.svg" \
		-e "/ scrollbar_view_name =/ascrollbar_view_name = sample" \
		etc/main || die

	default
}

src_configure() {
	local myconf=(
		$(use_enable bidi fribidi)
		$(use_enable brltty brlapi)
		$(use_enable debug)
		$(use_enable fcitx)
		$(use_enable freewnn wnn)
		$(use_enable harfbuzz otl)
		$(use_enable ibus)
		$(use_enable libssh2 ssh2)
		$(use_enable m17n-lib m17nlib)
		$(use_enable nls)
		$(use_enable scim)
		$(use_enable skk)
		$(use_enable uim)
		$(use_with X x)
		--with-gui=$(usex X "xlib" "")$(usex fbcon ",fb" "")$(usex wayland ",wayland" "")
		--with-type-engines=xcore$(usex xft ",xft" "")$(usex cairo ",cairo" "")
		--with-utmp=$(usex utempter utempter none)
		--enable-optimize-redrawing
		--enable-vt52
		--disable-canna
		--disable-static
	)

	local scrollbars="sample,extra"
	local tools="mlclient,mlcc,mlfc,mlmenu,${PN}-zoom"
	if use gtk; then
		myconf+=(
			--with-gtk=3.0
			--with-imagelib=gdk-pixbuf
		)
		scrollbars+=",pixmap_engine"
		tools+=",mlconfig,mlimgloader"
	else
		myconf+=( --without-gtk )
	fi
	if use regis; then
		tools+=",registobmp"
	fi
	myconf+=( --with-scrollbars="${scrollbars}" )
	myconf+=( --with-tools="${tools}" )

	addpredict /dev/ptmx
	econf "${myconf[@]}"
}

src_test() {
	:
}

src_install() {
	default
	find "${ED}" -name '*.la' -delete || die

	docinto contrib/icon
	dodoc contrib/icon/README

	doicon contrib/icon/${PN}*
	make_desktop_entry ${PN} ${PN} ${PN}-icon "System;TerminalEmulator"
}