blob: 3e6d084213b985ba0797d11783343267ea2fdfaf [file] [log] [blame]
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +00001# Copyright 1999-2010 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2
3
4EAPI=7
5
6CROS_WORKON_PROJECT="chromiumos/platform/croscomp"
7CROS_WORKON_LOCALNAME="platform/croscomp"
8CROS_WORKON_INCREMENTAL_BUILD=1
9
10KEYWORDS="~*"
11
12inherit base meson cros-rust flag-o-matic cros-workon
13
14DESCRIPTION="ChromeOS System Compositor"
15
16LICENSE="MIT SGI-B-2.0"
17
18IUSE="debug vulkan"
19
20COMMON_DEPEND="
21 x11-libs/cairo:=
22 sys-libs/mtdev:=
23 x11-libs/libxkbcommon:=
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000024 x11-libs/pixman:=
25 x11-libs/pango:=
26 dev-libs/wayland:=
27 dev-libs/expat:=
Kristian H. Kristensen37e86ea2021-10-06 21:13:25 +000028 dev-libs/libevdev:=
29 dev-libs/libinput:=
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000030 media-libs/lcms:=
31 >=x11-libs/libdrm-2.4.94:=
32"
33
34RDEPEND="${COMMON_DEPEND}
35"
36
37DEPEND="${COMMON_DEPEND}
Kristian H. Kristensendb3a4c72021-09-08 11:42:45 +000038 virtual/bindgen:=
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000039 >=dev-rust/libc-0.2.44:= <dev-rust/libc-0.3.0
40 =dev-rust/cfg-if-1.0.0:=
Kristian H. Kristensenf5fd52f2021-10-25 09:52:28 +000041 >=dev-rust/structopt-0.3.20:=
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000042 >=dev-rust/parking_lot-0.7.1:=
43 >=dev-rust/scoped-tls-0.1.0:=
44"
45
46BDEPEND="
47 virtual/pkgconfig
Kristian H. Kristensendb3a4c72021-09-08 11:42:45 +000048 dev-libs/wayland-protocols:=
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000049"
50
51src_unpack() {
52 # Unpack both the project and dependency source code
53 cros-workon_src_unpack
54 cros-rust_src_unpack
55}
56
57src_prepare() {
58 cros-rust_src_prepare
59 default
60}
61
62src_configure() {
63 export MESON_BUILD_DIR="${WORKDIR}/${P}-build"
Kristian H. Kristensen37e86ea2021-10-06 21:13:25 +000064 EMESON_SOURCE=${S}/weston
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000065 meson_src_configure
66 cros-rust_src_configure
67}
68
69src_compile() {
70 export MESON_BUILD_DIR="${WORKDIR}/${P}-build"
71 meson_src_compile
72 env | grep build
73 ecargo_build -v \
74 -p croscomp \
75 || die "cargo build failed"
76}
77
78src_install() {
Kristian H. Kristensen65bb0122021-09-08 11:42:56 +000079 # cargo doesn't know how to install cross-compiled binaries. It will
80 # always install native binaries for the host system. Manually install
81 # crosvm instead.
82 local build_dir="$(cros-rust_get_build_dir)"
83 dobin "${build_dir}/croscomp"
84
Kristian H. Kristensenb54297c2021-10-07 10:26:54 +000085 insinto /etc/init
86 doins croscomp.conf
87 insinto /usr/bin
88 doins croscomp-terminal
89
Kristian H. Kristensen49a007d2021-09-02 09:18:38 +000090 meson_src_install
91}