Skip to content

Commit

Permalink
cmake: Add build_darwin.sh
Browse files Browse the repository at this point in the history
Signed-off-by: sekaiacg <[email protected]>
  • Loading branch information
sekaiacg committed Mar 21, 2023
1 parent 6f86a85 commit ff7aa45
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions build_darwin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
OUT="./out"
BUILD_DIR="./build/cmake"
EROFS_VERSION="v$(. scripts/get-version-number)"

cmake_build()
{
local TARGET=$1
local METHOD=$2
local ABI=$3

if [[ $METHOD == "Ninja" ]]; then
local BUILD_METHOD="-G Ninja"
echo ${CMAKE_CMD}
local MAKE_CMD="time -p ninja -C $OUT"
elif [[ $METHOD == "make" ]]; then
local MAKE_CMD="time -p make -C $OUT -j$(sysctl -n hw.logicalcpu)"
fi;

if [[ $TARGET == "Darwin" ]]; then
cmake -S ${BUILD_DIR} -B ${OUT} ${BUILD_METHOD} \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_C_COMPILER_TARGET="${ABI}-apple-darwin" \
-DCMAKE_CXX_COMPILER_TARGET="${ABI}-apple-darwin" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" \
-DCMAKE_C_COMPILER_LAUNCHER="ccache" \
-DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \
-DCMAKE_C_COMPILER="clang" \
-DCMAKE_CXX_COMPILER="clang++"
fi

${MAKE_CMD}
}

build()
{
local TARGET=$1
local ABI=$2
local PLATFORM=$3

rm -r $OUT > /dev/null 2>&1

local NINJA=`which ninja`
if [[ -f $NINJA ]]; then
local METHOD="Ninja"
else
local METHOD="make"
fi

cmake_build "${TARGET}" "${METHOD}" "${ABI}" "${PLATFORM}"

local BUILD="$OUT/erofs-tools"
local DUMP_BIN="$BUILD/dump.erofs"
local FSCK_BIN="$BUILD/fsck.erofs"
local MKFS_BIN="$BUILD/mkfs.erofs"
local EXTRACT_BIN="$BUILD/extract.erofs"
local TARGE_DIR_NAME="erofs-utils-${EROFS_VERSION}-${TARGET}_${ABI}-$(TZ=UTC-8 date +%y%m%d%H%M)"
local TARGET_DIR_PATH="./target/${TARGET}_${ABI}/${TARGE_DIR_NAME}"

if [ -f "$DUMP_BIN" -a -f "$FSCK_BIN" -a -f "$MKFS_BIN" -a -f "$EXTRACT_BIN" ]; then
echo "复制文件中..."
[[ ! -d "$TARGET_DIR_PATH" ]] && mkdir -p ${TARGET_DIR_PATH}
cp -af $BUILD/*.erofs ${TARGET_DIR_PATH}
touch -c -d "2009-01-01 00:00:00" ${TARGET_DIR_PATH}/*
echo "编译成功: ${TARGE_DIR_NAME}"
else
echo "error"
exit 1
fi
}

build "Darwin" "x86_64"
build "Darwin" "aarch64"

exit 0

0 comments on commit ff7aa45

Please sign in to comment.