Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 1 | #!/bin/bash |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 2 | |
Kristian H. Kristensen | def1af9 | 2021-04-06 20:50:59 +0000 | [diff] [blame] | 3 | set -e |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 4 | |
Kristian H. Kristensen | 7844643 | 2021-04-06 11:42:54 +0000 | [diff] [blame] | 5 | # Take board from environment but default to hatch |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 6 | export BOARD=${BOARD:-hatch} |
Kristian H. Kristensen | 7844643 | 2021-04-06 11:42:54 +0000 | [diff] [blame] | 7 | |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 8 | d=$(dirname $(readlink -f $0)) |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 9 | |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 10 | shopt -s lastpipe |
| 11 | emerge-$BOARD --info --verbose 2>/dev/null | while IFS=\= read var val; do |
| 12 | case $var in |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 13 | PKG_CONFIG|CHOST|CBUILD|ABI|SYSROOT|CFLAGS|LDFLAGS|CPPFLAGS|AR|AS|CC|CXX|STRIP|LIBDIR_*) |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 14 | eval export "$var=$val";; |
| 15 | esac |
| 16 | done |
| 17 | eval export LIBDIR="\$LIBDIR_$ABI" |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 18 | |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 19 | create_cross_file() { |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 20 | inherit() { :; } |
| 21 | EXPORT_FUNCTIONS() { :; } |
| 22 | EAPI=7 |
Kristian H. Kristensen | c4e0805 | 2021-09-09 12:37:21 +0000 | [diff] [blame] | 23 | get_libdir() { echo ${LIBDIR}; } |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 24 | |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 25 | # meson.eclass has a read call that returns non-0 when it |
| 26 | # encounters EOF |
| 27 | set +e |
| 28 | |
Kristian H. Kristensen | 88fc019 | 2021-10-16 07:49:33 +0000 | [diff] [blame] | 29 | source ~/trunk/src/third_party/portage-stable/eclass/toolchain-funcs.eclass |
| 30 | source ~/trunk/src/third_party/eclass-overlay/eclass/meson.eclass |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 31 | |
| 32 | T=$1 |
| 33 | mkdir -p $T |
| 34 | |
| 35 | _meson_create_cross_file |
| 36 | } |
| 37 | |
| 38 | create_cargo_config() { |
| 39 | CROS_RUST_REGISTRY_BASE="/usr/lib/cros_rust_registry" |
| 40 | CROS_RUST_REGISTRY_DIR="${CROS_RUST_REGISTRY_BASE}/store" |
| 41 | CROS_RUST_REGISTRY_INST_DIR="${CROS_RUST_REGISTRY_BASE}/registry" |
| 42 | |
| 43 | cat <<- EOF > "${CARGO_HOME}/config" |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 44 | [source.chromeos] |
| 45 | directory = "${SYSROOT}${CROS_RUST_REGISTRY_INST_DIR}" |
| 46 | |
| 47 | [source.crates-io] |
| 48 | replace-with = "chromeos" |
| 49 | local-registry = "/nonexistent" |
| 50 | |
| 51 | [target.${CHOST}] |
| 52 | linker = "${CHOST}-clang" |
| 53 | |
| 54 | [target.${CBUILD}] |
| 55 | linker = "${CBUILD}-clang" |
| 56 | EOF |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 57 | } |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 58 | |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 59 | out=$d/target/$CHOST/debug |
| 60 | |
Kristian H. Kristensen | c4e0805 | 2021-09-09 12:37:21 +0000 | [diff] [blame] | 61 | cross_file="${out}/meson.${CHOST}.${ABI}.ini" |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 62 | if test ! -e "${cross_file}"; then |
Kristian H. Kristensen | def1af9 | 2021-04-06 20:50:59 +0000 | [diff] [blame] | 63 | # Run this in a subshell to avoid all the eclass variables |
| 64 | # spilling into our namespace. |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 65 | (create_cross_file $out) |
| 66 | fi |
| 67 | |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 68 | if test ! -d "${out}/weston"; then |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 69 | meson --cross-file $cross_file \ |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 70 | --buildtype debug \ |
| 71 | -Ddebug=true \ |
| 72 | --prefix=/usr \ |
| 73 | --libdir=$LIBDIR \ |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 74 | "${out}/weston" "${d}/weston" |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 75 | fi |
| 76 | |
| 77 | export PKG_CONFIG_ALLOW_CROSS=1 |
Kristian H. Kristensen | a964f83 | 2021-09-29 14:03:59 +0000 | [diff] [blame] | 78 | export CARGO_HOME="$d/target/${CHOST}/cargo_home" |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 79 | mkdir -p ${CARGO_HOME} |
| 80 | |
Kristian H. Kristensen | cf75f4f | 2021-09-24 13:07:51 +0000 | [diff] [blame] | 81 | if test ! -e "${CARGO_HOME}/config"; then |
| 82 | echo create cargo config |
| 83 | create_cargo_config |
| 84 | fi |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 85 | |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 86 | ninja -j 80 -C $out/weston |
| 87 | export MESON_BUILD_DIR=$out/weston |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 88 | |
Kristian H. Kristensen | 7844643 | 2021-04-06 11:42:54 +0000 | [diff] [blame] | 89 | # Print this message to help emacs compile mode figure out where the |
| 90 | # source is |
Kristian H. Kristensen | 1d28e07 | 2021-04-01 16:23:03 +0000 | [diff] [blame] | 91 | echo "cargo: Entering directory '$d'" |
Kristian H. Kristensen | 7844643 | 2021-04-06 11:42:54 +0000 | [diff] [blame] | 92 | |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 93 | echo "PKG_CONFIG: ${PKG_CONFIG}" |
| 94 | echo "SYSROOT: ${SYSROOT}" |
| 95 | |
Kristian H. Kristensen | 129df19 | 2021-09-27 08:48:04 +0000 | [diff] [blame] | 96 | cargo fmt |
Kristian H. Kristensen | 301ff26 | 2021-09-24 13:08:08 +0000 | [diff] [blame] | 97 | cargo build -v --manifest-path $d/Cargo.toml --target="${CHOST}" |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 98 | |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 99 | # Take this from environment but default to my IP of the day |
Kristian H. Kristensen | 4cbd08f | 2021-04-06 18:15:54 +0000 | [diff] [blame] | 100 | DUT=${DUT:-192.168.86.226} |
| 101 | |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 102 | ssh $DUT mkdir -p /usr/$LIBDIR/libweston-9 /usr/share/weston |
Lucas Berthou | ff52fdc | 2022-04-28 21:44:29 +0000 | [diff] [blame] | 103 | |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 104 | rsync -lav --progress \ |
Lucas Berthou | ff52fdc | 2022-04-28 21:44:29 +0000 | [diff] [blame] | 105 | $out/weston/libweston/libweston-9.so{,*[0-9]} \ |
| 106 | $DUT:/usr/$LIBDIR |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 107 | |
| 108 | rsync -lav --progress \ |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 109 | $d/weston/data/*.png \ |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 110 | $DUT:/usr/share/weston |
| 111 | |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 112 | rsync -lav --progress $out/croscomp \ |
Kristian H. Kristensen | 37e86ea | 2021-10-06 21:13:25 +0000 | [diff] [blame] | 113 | $out/weston/clients/weston-{simple-splash,terminal} \ |
Kristian H. Kristensen | b8b11cf | 2021-04-06 20:43:50 +0000 | [diff] [blame] | 114 | $DUT:/usr/bin |
Kristian H. Kristensen | 59239cd | 2021-06-02 13:06:11 +0000 | [diff] [blame] | 115 | |
Kristian H. Kristensen | b8b11cf | 2021-04-06 20:43:50 +0000 | [diff] [blame] | 116 | rsync -av --progress $d/croscomp-terminal $DUT:/usr/bin |
| 117 | |