17ec681f3Smrg#!/bin/bash
27ec681f3Smrg
37ec681f3Smrgset -ex
47ec681f3Smrg
57ec681f3Smrg# Pull down repositories that crosvm depends on to cros checkout-like locations.
67ec681f3SmrgCROS_ROOT=/
77ec681f3SmrgTHIRD_PARTY_ROOT=$CROS_ROOT/third_party
87ec681f3Smrgmkdir -p $THIRD_PARTY_ROOT
97ec681f3SmrgAOSP_EXTERNAL_ROOT=$CROS_ROOT/aosp/external
107ec681f3Smrgmkdir -p $AOSP_EXTERNAL_ROOT
117ec681f3SmrgPLATFORM2_ROOT=/platform2
127ec681f3Smrg
137ec681f3SmrgPLATFORM2_COMMIT=72e56e66ccf3d2ea48f5686bd1f772379c43628b
147ec681f3Smrggit clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform2 $PLATFORM2_ROOT
157ec681f3Smrgpushd $PLATFORM2_ROOT
167ec681f3Smrggit checkout $PLATFORM2_COMMIT
177ec681f3Smrgpopd
187ec681f3Smrg
197ec681f3Smrg# minijail does not exist in upstream linux distros.
207ec681f3SmrgMINIJAIL_COMMIT=debdf5de5a0ae3b667bee2f8fb1f755b0b3f5a6c
217ec681f3Smrggit clone --single-branch --no-checkout https://android.googlesource.com/platform/external/minijail $AOSP_EXTERNAL_ROOT/minijail
227ec681f3Smrgpushd $AOSP_EXTERNAL_ROOT/minijail
237ec681f3Smrggit checkout $MINIJAIL_COMMIT
247ec681f3Smrgmake
257ec681f3Smrgcp libminijail.so /usr/lib/x86_64-linux-gnu/
267ec681f3Smrgpopd
277ec681f3Smrg
287ec681f3Smrg# Pull the cras library for audio access.
297ec681f3SmrgADHD_COMMIT=a1e0869b95c845c4fe6234a7b92fdfa6acc1e809
307ec681f3Smrggit clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/adhd $THIRD_PARTY_ROOT/adhd
317ec681f3Smrgpushd $THIRD_PARTY_ROOT/adhd
327ec681f3Smrggit checkout $ADHD_COMMIT
337ec681f3Smrgpopd
347ec681f3Smrg
357ec681f3Smrg# Pull vHost (dataplane for virtio backend drivers)
367ec681f3SmrgVHOST_COMMIT=3091854e27242d09453004b011f701fa29c0b8e8
377ec681f3Smrggit clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/rust-vmm/vhost $THIRD_PARTY_ROOT/rust-vmm/vhost
387ec681f3Smrgpushd $THIRD_PARTY_ROOT/rust-vmm/vhost
397ec681f3Smrggit checkout $VHOST_COMMIT
407ec681f3Smrgpopd
417ec681f3Smrg
427ec681f3SmrgCROSVM_VERSION=e42a43d880b0364b55559dbeade3af174f929001
437ec681f3Smrggit clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform/crosvm /platform/crosvm
447ec681f3Smrgpushd /platform/crosvm
457ec681f3Smrggit checkout "$CROSVM_VERSION"
467ec681f3Smrg
477ec681f3SmrgRUSTFLAGS='-L native=/usr/local/lib' cargo install \
487ec681f3Smrg  bindgen \
497ec681f3Smrg  -j ${FDO_CI_CONCURRENT:-4} \
507ec681f3Smrg  --root /usr/local \
517ec681f3Smrg  $EXTRA_CARGO_ARGS
527ec681f3Smrg
537ec681f3SmrgRUSTFLAGS='-L native=/usr/local/lib' cargo install \
547ec681f3Smrg  -j ${FDO_CI_CONCURRENT:-4} \
557ec681f3Smrg  --locked \
567ec681f3Smrg  --features 'default-no-sandbox gpu x virgl_renderer virgl_renderer_next' \
577ec681f3Smrg  --path . \
587ec681f3Smrg  --root /usr/local \
597ec681f3Smrg  $EXTRA_CARGO_ARGS
607ec681f3Smrg
617ec681f3Smrgpopd
627ec681f3Smrg
637ec681f3Smrgrm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd $THIRD_PARTY_ROOT/rust-vmm /platform/crosvm
64