#!/bin/bash # vim: ft=bash target_arch=$1 if [ ! -n "$target_arch" ]; then echo "Usage: $0 " exit -1 fi source_dir=$(realpath $(dirname "$0")) native_build_dir=$source_dir/build-native target_build_dir=$source_dir/build sysroot_dir=$target_build_dir/sysroot if [ ! -d "$source_dir/arch/$target_arch" ]; then echo "FATAL: Specified target architecture $target_arch is not supported. See arch/ directory for a list of supported architectures." exit -1 fi rm -rf $native_build_dir $target_build_dir mkdir -p $native_build_dir $target_build_dir pushd $native_build_dir > /dev/null cmake \ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY="$native_build_dir/bin" \ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY="$native_build_dir/lib" \ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY="$native_build_dir/lib" \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ $source_dir/kernel/tools popd pushd $target_build_dir > /dev/null cmake \ -DBUILD_TOOLS_DIR=$native_build_dir/bin \ -DCMAKE_INSTALL_PREFIX=$sysroot_dir \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DTARGET_ARCH=$target_arch \ $source_dir \ -DCMAKE_MODULE_PATH=$source_dir/arch/$target_arch \ -DCMAKE_SYSTEM_NAME=Rosetta \ -DCMAKE_TOOLCHAIN_FILE=$source_dir/arch/$target_arch/Platform/Rosetta.cmake popd > /dev/null