summaryrefslogtreecommitdiff
blob: ebd5d3b047362ec2f7516618bd10b6592b33833a (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
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cmake-utils java-pkg-2 java-ant-2

PATCHSET_VER="1"

DESCRIPTION="Advanced development platform for intelligent, distributed applications"
HOMEPAGE="http://mozart2.org/"
SRC_URI="https://github.com/mozart/mozart2/archive/v${PV}.tar.gz -> ${P}.tar.gz
	https://dev.gentoo.org/~keri/distfiles/mozart/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"

LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="emacs test"
RESTRICT="!test? ( test )"

RDEPEND="dev-libs/boost:=
	dev-libs/gmp:0
	dev-lang/tcl:0
	dev-lang/tk:0
	emacs? ( >=app-editors/emacs-23.1:* )"

DEPEND="${RDEPEND}
	dev-java/ant-core
	>=virtual/jdk-1.8:=
	|| (
		dev-lang/scala:2.12
		dev-lang/scala-bin:0
	)
	test? ( dev-cpp/gtest:= )"

S="${WORKDIR}/${PN}2-${PV}"
BUILD_DIR="${S}/build"
CMAKE_USE_DIR="${S}"

src_prepare() {
	if [[ -d "${WORKDIR}"/${PV} ]] ; then
		eapply "${WORKDIR}"/${PV}
	fi
	eapply_user

	touch "${S}"/stdlib/CMakeLists.txt
	touch "${S}"/vm/vm/test/gtest/CMakeLists.txt

	cmake-utils_src_prepare
}

src_configure() {
	mycmakeargs=(
		-DMOZART_BOOST_USE_STATIC_LIBS=OFF
		-DEMACS=$(if use emacs; then echo /usr/bin/emacs; fi)
		)

	cmake-utils_src_configure
}

src_compile() {
	if has_version "dev-lang/scala"; then
		EANT_GENTOO_CLASSPATH="scala:2.12"
	else
		EANT_GENTOO_CLASSPATH="scala-bin"
	fi
	cd "${S}"/bootcompiler
	ANT_OPTS="-Xss2M" eant jar

	cd "${S}"
	cmake-utils_src_compile
}

src_test() {
	cmake-utils_src_compile vmtest platform-test
	cmake-utils_src_test -V
}

src_install() {
	cmake-utils_src_install

	cd "${BUILD_DIR}"
	dolib.so vm/vm/main/libmozartvm.so
	dolib.so vm/boostenv/main/libmozartvmboost.so
}

pkg_postinst() {
	if use emacs; then
		xdg_icon_cache_update
		xdg_desktop_database_update
	fi
}

pkg_postrm() {
	if use emacs; then
		xdg_icon_cache_update
		xdg_desktop_database_update
	fi
}