blob: 9f1c01d5713a4642ce2bd3b3b0391c9773502f19 [file] [log] [blame]
#!/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
#
# 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\
-Ddriverdir=. \
$FUCHSIA_DIR/third_party/intel/libva $OUT_DIR/libva
ninja -C $OUT_DIR/libva install
#
# 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
#
# 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=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
ninja -C $OUT_DIR/media-driver install
#
# Fuchsia build expects stripped libraries
#
$CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/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
$CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/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
$CLANG_DIR/bin/llvm-strip $OUT_DIR/install/lib/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
$CLANG_DIR/bin/llvm-strip $OUT_DIR/install/./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