| #!/usr/bin/env bash |
| set -e |
| |
| FUCHSIA_DIR=`realpath $1` |
| FUCHSIA_OUT_DIR=`realpath $2` |
| TARGET=$3 |
| |
| SCRIPT_DIR=$FUCHSIA_DIR/third_party/intel/media-driver/fuchsia |
| CLANG_DIR=$FUCHSIA_DIR/prebuilt/third_party/clang/linux-x64 |
| FUCHSIA_SHARED_OUT_DIR=$FUCHSIA_OUT_DIR/x64-shared |
| SYSROOT_DIR=$FUCHSIA_OUT_DIR/sdk/exported/zircon_sysroot/arch/x64/sysroot |
| OUT_DIR=$FUCHSIA_OUT_DIR/build-intel-media-driver |
| |
| if [[ "$TARGET" == "debug" ]]; then |
| echo "TARGET: $TARGET" |
| elif [[ "$TARGET" == "release" ]]; then |
| echo "TARGET: $TARGET" |
| else |
| echo "Unrecognized target: '$TARGET'" |
| fi |
| |
| echo "FUCHSIA_DIR: $FUCHSIA_DIR" |
| echo "SCRIPT_DIR: $SCRIPT_DIR" |
| echo "CLANG_DIR: $CLANG_DIR" |
| echo "FUCHSIA_SHARED_OUT_DIR: $FUCHSIA_SHARED_OUT_DIR" |
| echo "OUT_DIR: $OUT_DIR" |
| |
| # Env vars used by fake-pkg-config.py, cross files, cmake files |
| export FUCHSIA_DIR=$FUCHSIA_DIR |
| export FUCHSIA_SHARED_OUT_DIR=$FUCHSIA_SHARED_OUT_DIR |
| export CLANG_DIR=$CLANG_DIR |
| export PKG_CONFIG_PATH=$OUT_DIR/install/lib/pkgconfig |
| |
| mkdir -p $OUT_DIR |
| |
| $SCRIPT_DIR/gendepsfile.py $OUT_DIR/media-driver.d --input-dir $FUCHSIA_DIR/third_party/intel/libva \ |
| --input-dir $FUCHSIA_DIR/third_party/intel/gmmlib \ |
| --input-dir $FUCHSIA_DIR/third_party/intel/media-driver |
| # |
| # Build libva with meson |
| # |
| sed -e "s+SYSROOT_DIR+$SYSROOT_DIR+g" -e "s+CLANG_DIR+$CLANG_DIR+g" -e "s+THIS_DIR+$SCRIPT_DIR+g" $SCRIPT_DIR/meson/x86_64-fuchsia.cross > $OUT_DIR/fuchsia.cross |
| meson --prefix=$OUT_DIR/install --cross-file $OUT_DIR/fuchsia.cross \ |
| -Ddisable_drm=true\ |
| -Dwith_wayland=no\ |
| -Dwith_x11=no\ |
| -Dwith_glx=no\ |
| -Dwith_magma=yes\ |
| -Dsysconfdir=/pkg/data\ |
| -Ddriverdir=. \ |
| $FUCHSIA_DIR/third_party/intel/libva $OUT_DIR/libva |
| ninja -C $OUT_DIR/libva install |
| |
| rm -f $OUT_DIR/gmmlib/CMakeCache.txt |
| # |
| # Build gmmlib with cmake |
| # |
| cmake -GNinja -S $FUCHSIA_DIR/third_party/intel/gmmlib -B $OUT_DIR/gmmlib -Wno-dev \ |
| -DBUILD_TYPE="$TARGET"\ |
| -DRUN_TEST_SUITE=NO\ |
| -DCMAKE_TOOLCHAIN_FILE=$SCRIPT_DIR/cmake/Fuchsia.cmake\ |
| -DCMAKE_INSTALL_PREFIX=$OUT_DIR/install\ |
| -DFUCHSIA_TOOLCHAIN=$CLANG_DIR\ |
| -DFUCHSIA_SYSTEM_PROCESSOR=x86_64\ |
| -DFUCHSIA_SYSROOT=$SYSROOT_DIR |
| ninja -C $OUT_DIR/gmmlib install |
| |
| rm -f $OUT_DIR/media-driver/CMakeCache.txt |
| # |
| # Build media-driver with cmake |
| # |
| cmake -GNinja -S $FUCHSIA_DIR/third_party/intel/media-driver -B $OUT_DIR/media-driver -Wno-dev \ |
| -DPLATFORM=Fuchsia\ |
| -DUSE_MAGMA=YES\ |
| -DBUILD_TYPE="$TARGET"\ |
| -DBUILD_CMRTLIB=NO\ |
| -DENABLE_KERNELS=ON\ |
| -DENABLE_NONFREE_KERNELS=ON\ |
| -DMEDIA_RUN_TEST_SUITE=OFF\ |
| -DCMAKE_TOOLCHAIN_FILE=$SCRIPT_DIR/cmake/Fuchsia.cmake\ |
| -DCMAKE_INSTALL_PREFIX=$OUT_DIR/install\ |
| -DFUCHSIA_TOOLCHAIN=$CLANG_DIR\ |
| -DFUCHSIA_SYSTEM_PROCESSOR=x86_64\ |
| -DFUCHSIA_SYSROOT=$SYSROOT_DIR\ |
| -DCMAKE_SKIP_RPATH=ON |
| ninja -C $OUT_DIR/media-driver install |
| |
| # |
| # Fuchsia build expects stripped libraries |
| # |
| cp $OUT_DIR/install/lib/libva.so.2 $OUT_DIR/install/strip/libva.so.2.debug |
| $CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/libva.so.2 -o $OUT_DIR/install/strip/libva.so.2 |
| ls -l $OUT_DIR/install/lib/libva.so.2 |
| $CLANG_DIR/bin/llvm-readelf --needed-libs $OUT_DIR/install/lib/libva.so.2 |
| |
| cp $OUT_DIR/install/lib/libva-magma.so.2 $OUT_DIR/install/strip/libva-magma.so.2.debug |
| $CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/libva-magma.so.2 -o $OUT_DIR/install/strip/libva-magma.so.2 |
| ls -l $OUT_DIR/install/lib/libva-magma.so.2 |
| $CLANG_DIR/bin/llvm-readelf --needed-libs $OUT_DIR/install/lib/libva-magma.so.2 |
| |
| cp $OUT_DIR/install/lib/libigdgmm.so.11 $OUT_DIR/install/strip/libigdgmm.so.11.debug |
| $CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/libigdgmm.so.11 -o $OUT_DIR/install/strip/libigdgmm.so.11 |
| ls -l $OUT_DIR/install/lib/libigdgmm.so.11 |
| $CLANG_DIR/bin/llvm-readelf --needed-libs $OUT_DIR/install/lib/libigdgmm.so.11 |
| |
| cp $OUT_DIR/install/./iHD_drv_video.so $OUT_DIR/install/strip/iHD_drv_video.so.debug |
| $CLANG_DIR/bin/llvm-strip $OUT_DIR/install/./iHD_drv_video.so -o $OUT_DIR/install/strip/iHD_drv_video.so |
| ls -l $OUT_DIR/install/./iHD_drv_video.so |
| $CLANG_DIR/bin/llvm-readelf --needed-libs $OUT_DIR/install/./iHD_drv_video.so |