Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions platforms/android/arm64-v8a/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

set -e

./platforms/build-common.sh android arm64-v8a
56 changes: 29 additions & 27 deletions platforms/android/arm64-v8a/external.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ source ./platforms/config.sh

echo "Building libraries..."
echo " LIBZEDMD_SHA: ${LIBZEDMD_SHA}"
print_dependency_source LIBZEDMD "${LIBZEDMD_SHA}" LIBZEDMD_SOURCE_DIR
echo " LIBSERUM_SHA: ${LIBSERUM_SHA}"
print_dependency_source LIBSERUM "${LIBSERUM_SHA}" LIBSERUM_SOURCE_DIR
echo " LIBPUPDMD_SHA: ${LIBPUPDMD_SHA}"
echo " LIBVNI_SHA: ${LIBVNI_SHA}"
print_dependency_source LIBVNI "${LIBVNI_SHA}" LIBVNI_SOURCE_DIR
echo ""

if [[ $(uname) == "Linux" ]]; then
Expand All @@ -19,17 +22,20 @@ else
NUM_PROCS=1
fi


rm -rf external
mkdir external
mkdir -p \
external \
third-party/include \
third-party/build-libs/android/arm64-v8a \
third-party/runtime-libs/android/arm64-v8a
cd external

#
# build libzedmd and copy to external
#

curl -sL https://github.com/PPUC/libzedmd/archive/${LIBZEDMD_SHA}.tar.gz -o libzedmd-${LIBZEDMD_SHA}.tar.gz
tar xzf libzedmd-${LIBZEDMD_SHA}.tar.gz
mv libzedmd-${LIBZEDMD_SHA} libzedmd
prepare_dependency_source libzedmd "${LIBZEDMD_SHA}" "https://github.com/PPUC/libzedmd/archive/${LIBZEDMD_SHA}.tar.gz" tar LIBZEDMD_SOURCE_DIR
cd libzedmd
BUILD_TYPE=${BUILD_TYPE} platforms/android/arm64-v8a/external.sh
cmake \
Expand All @@ -40,22 +46,20 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/ZeDMD.h ../../third-party/include/
cp -r third-party/include/komihash ../../third-party/include/
cp -r third-party/include/sockpp ../../third-party/include/
cp third-party/include/FrameUtil.h ../../third-party/include/
cp third-party/runtime-libs/android/arm64-v8a/libsockpp.so ../../third-party/runtime-libs/android/arm64-v8a/
cp build/libzedmd.so ../../third-party/runtime-libs/android/arm64-v8a/
cp src/ZeDMD.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp -r third-party/include/komihash ${PROJECT_SOURCE_ROOT}/third-party/include/
cp -r third-party/include/sockpp ${PROJECT_SOURCE_ROOT}/third-party/include/
cp third-party/include/FrameUtil.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp third-party/runtime-libs/android/arm64-v8a/libsockpp.so ${PROJECT_SOURCE_ROOT}/third-party/runtime-libs/android/arm64-v8a/
cp build/libzedmd.so ${PROJECT_SOURCE_ROOT}/third-party/runtime-libs/android/arm64-v8a/
cp -r test ../../
cd ..

#
# build libserum and copy to external
#

curl -sL https://github.com/PPUC/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz
tar xzf libserum-${LIBSERUM_SHA}.tar.gz
mv libserum-${LIBSERUM_SHA} libserum
prepare_dependency_source libserum "${LIBSERUM_SHA}" "https://github.com/PPUC/libserum/archive/${LIBSERUM_SHA}.tar.gz" tar LIBSERUM_SOURCE_DIR
cd libserum
cmake \
-DPLATFORM=android \
Expand All @@ -65,13 +69,13 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp -r third-party/include/lz4 ../../third-party/include/
cp src/LZ4Stream.h ../../third-party/include/
cp src/SceneGenerator.h ../../third-party/include/
cp src/serum.h ../../third-party/include/
cp src/TimeUtils.h ../../third-party/include/
cp src/serum-decode.h ../../third-party/include/
cp build/libserum.so ../../third-party/runtime-libs/android/arm64-v8a/
cp -r third-party/include/lz4 ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/LZ4Stream.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/SceneGenerator.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/serum.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/TimeUtils.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/serum-decode.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libserum.so ${PROJECT_SOURCE_ROOT}/third-party/runtime-libs/android/arm64-v8a/
cd ..

#
Expand All @@ -89,17 +93,15 @@ cmake -DPLATFORM=android \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/pupdmd.h ../../third-party/include/
cp build/libpupdmd.so ../../third-party/runtime-libs/android/arm64-v8a/
cp src/pupdmd.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libpupdmd.so ${PROJECT_SOURCE_ROOT}/third-party/runtime-libs/android/arm64-v8a/
cd ..

#
# build libvni and copy to external
#

curl -sL https://github.com/PPUC/libvni/archive/${LIBVNI_SHA}.tar.gz -o libvni-${LIBVNI_SHA}.tar.gz
tar xzf libvni-${LIBVNI_SHA}.tar.gz
mv libvni-${LIBVNI_SHA} libvni
prepare_dependency_source libvni "${LIBVNI_SHA}" "https://github.com/PPUC/libvni/archive/${LIBVNI_SHA}.tar.gz" tar LIBVNI_SOURCE_DIR
cd libvni
platforms/android/arm64-v8a/external.sh
cmake \
Expand All @@ -110,6 +112,6 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/vni.h ../../third-party/include/
cp build/libvni.so ../../third-party/runtime-libs/android/arm64-v8a/
cp src/vni.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libvni.so ${PROJECT_SOURCE_ROOT}/third-party/runtime-libs/android/arm64-v8a/
cd ..
36 changes: 36 additions & 0 deletions platforms/build-common.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

set -e

if [ "$#" -lt 2 ]; then
echo "Usage: $0 <platform> <arch> [extra-cmake-args...]"
exit 1
fi

PLATFORM_NAME="$1"
ARCH_NAME="$2"
shift 2

if [ -z "${BUILD_TYPE}" ]; then
BUILD_TYPE="Release"
fi

EXTERNAL_SCRIPT="./platforms/${PLATFORM_NAME}/${ARCH_NAME}/external.sh"
if [ -f "${EXTERNAL_SCRIPT}" ]; then
BUILD_TYPE=${BUILD_TYPE} "${EXTERNAL_SCRIPT}"
fi

if [ "${PLATFORM_NAME}" = "win" ]; then
if [ "${ARCH_NAME}" = "x86" ]; then
cmake -G "Visual Studio 17 2022" -A Win32 -DPLATFORM=${PLATFORM_NAME} -DARCH=${ARCH_NAME} "$@" -B build
else
cmake -G "Visual Studio 17 2022" -DPLATFORM=${PLATFORM_NAME} -DARCH=${ARCH_NAME} "$@" -B build
fi
cmake --build build --config ${BUILD_TYPE}
elif [ "${PLATFORM_NAME}" = "win-mingw" ]; then
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DPLATFORM=${PLATFORM_NAME} -DARCH=${ARCH_NAME} "$@" -B build
cmake --build build -- -j$(nproc)
else
cmake -DPLATFORM=${PLATFORM_NAME} -DARCH=${ARCH_NAME} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} "$@" -B build
cmake --build build
fi
52 changes: 52 additions & 0 deletions platforms/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,58 @@ LIBPUPDMD_SHA=4a1123220e6dce73c87cc584494df2ac82cb6f4c
LIBVNI_SHA=7258e2fa0d086e1224d6510d44a61879e6b344b1
LIBUSB_SHA=15a7ebb4d426c5ce196684347d2b7cafad862626

PROJECT_SOURCE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"

dependency_source_dir() {
local var_name="$1"
local source_dir="${!var_name:-}"

if [ -z "${source_dir}" ]; then
return 0
fi

(cd "${PROJECT_SOURCE_ROOT}" && cd "${source_dir}" && pwd -P)
}

print_dependency_source() {
local label="$1"
local sha="$2"
local source_var="$3"
local source_dir

source_dir="$(dependency_source_dir "${source_var}")"
if [ -n "${source_dir}" ]; then
echo " ${label}_SOURCE_DIR: ${source_dir}"
else
echo " ${label}_SOURCE: archive ${sha}"
fi
}

prepare_dependency_source() {
local name="$1"
local sha="$2"
local url="$3"
local archive_type="${4:-tar}"
local source_var="$5"
local source_dir

source_dir="$(dependency_source_dir "${source_var}")"
if [ -n "${source_dir}" ]; then
echo "Using ${source_var}: ${source_dir}"
ln -s "${source_dir}" "${name}"
elif [ "${archive_type}" = "zip" ]; then
curl -sL "${url}" -o "${name}.zip"
unzip "${name}.zip"
mv "${name}-${sha}" "${name}"
else
curl -sL "${url}" -o "${name}-${sha}.tar.gz"
tar xzf "${name}-${sha}.tar.gz"
mv "${name}-${sha}" "${name}"
fi
}



if [ -z "${BUILD_TYPE}" ]; then
BUILD_TYPE="Release"
fi
Expand Down
5 changes: 5 additions & 0 deletions platforms/ios-simulator/arm64/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

set -e

./platforms/build-common.sh ios-simulator arm64
56 changes: 29 additions & 27 deletions platforms/ios-simulator/arm64/external.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,30 @@ source ./platforms/config.sh

echo "Building libraries..."
echo " LIBZEDMD_SHA: ${LIBZEDMD_SHA}"
print_dependency_source LIBZEDMD "${LIBZEDMD_SHA}" LIBZEDMD_SOURCE_DIR
echo " LIBSERUM_SHA: ${LIBSERUM_SHA}"
print_dependency_source LIBSERUM "${LIBSERUM_SHA}" LIBSERUM_SOURCE_DIR
echo " LIBPUPDMD_SHA: ${LIBPUPDMD_SHA}"
echo " LIBVNI_SHA: ${LIBVNI_SHA}"
print_dependency_source LIBVNI "${LIBVNI_SHA}" LIBVNI_SOURCE_DIR
echo ""

NUM_PROCS=$(sysctl -n hw.ncpu)


rm -rf external
mkdir external
mkdir -p \
external \
third-party/include \
third-party/build-libs/ios-simulator/arm64 \
third-party/runtime-libs/ios-simulator/arm64
cd external

#
# build libzedmd and copy to external
#

curl -sL https://github.com/PPUC/libzedmd/archive/${LIBZEDMD_SHA}.tar.gz -o libzedmd-${LIBZEDMD_SHA}.tar.gz
tar xzf libzedmd-${LIBZEDMD_SHA}.tar.gz
mv libzedmd-${LIBZEDMD_SHA} libzedmd
prepare_dependency_source libzedmd "${LIBZEDMD_SHA}" "https://github.com/PPUC/libzedmd/archive/${LIBZEDMD_SHA}.tar.gz" tar LIBZEDMD_SOURCE_DIR
cd libzedmd
BUILD_TYPE=${BUILD_TYPE} platforms/ios-simulator/arm64/external.sh
cmake \
Expand All @@ -34,22 +40,20 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/ZeDMD.h ../../third-party/include/
cp -r third-party/include/komihash ../../third-party/include/
cp -r third-party/include/sockpp ../../third-party/include/
cp third-party/include/FrameUtil.h ../../third-party/include/
cp -a third-party/build-libs/ios-simulator/arm64/libsockpp.a ../../third-party/build-libs/ios-simulator/arm64/
cp build/libzedmd.a ../../third-party/build-libs/ios-simulator/arm64/
cp src/ZeDMD.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp -r third-party/include/komihash ${PROJECT_SOURCE_ROOT}/third-party/include/
cp -r third-party/include/sockpp ${PROJECT_SOURCE_ROOT}/third-party/include/
cp third-party/include/FrameUtil.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp -a third-party/build-libs/ios-simulator/arm64/libsockpp.a ${PROJECT_SOURCE_ROOT}/third-party/build-libs/ios-simulator/arm64/
cp build/libzedmd.a ${PROJECT_SOURCE_ROOT}/third-party/build-libs/ios-simulator/arm64/
cp -r test ../../
cd ..

#
# build libserum and copy to external
#

curl -sL https://github.com/PPUC/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz
tar xzf libserum-${LIBSERUM_SHA}.tar.gz
mv libserum-${LIBSERUM_SHA} libserum
prepare_dependency_source libserum "${LIBSERUM_SHA}" "https://github.com/PPUC/libserum/archive/${LIBSERUM_SHA}.tar.gz" tar LIBSERUM_SOURCE_DIR
cd libserum
cmake \
-DPLATFORM=ios-simulator \
Expand All @@ -59,13 +63,13 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp -r third-party/include/lz4 ../../third-party/include/
cp src/LZ4Stream.h ../../third-party/include/
cp src/SceneGenerator.h ../../third-party/include/
cp src/serum.h ../../third-party/include/
cp src/TimeUtils.h ../../third-party/include/
cp src/serum-decode.h ../../third-party/include/
cp build/libserum.a ../../third-party/build-libs/ios-simulator/arm64/
cp -r third-party/include/lz4 ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/LZ4Stream.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/SceneGenerator.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/serum.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/TimeUtils.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp src/serum-decode.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libserum.a ${PROJECT_SOURCE_ROOT}/third-party/build-libs/ios-simulator/arm64/
cd ..

#
Expand All @@ -84,17 +88,15 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/pupdmd.h ../../third-party/include/
cp build/libpupdmd.a ../../third-party/build-libs/ios-simulator/arm64/
cp src/pupdmd.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libpupdmd.a ${PROJECT_SOURCE_ROOT}/third-party/build-libs/ios-simulator/arm64/
cd ..

#
# build libvni and copy to external
#

curl -sL https://github.com/PPUC/libvni/archive/${LIBVNI_SHA}.tar.gz -o libvni-${LIBVNI_SHA}.tar.gz
tar xzf libvni-${LIBVNI_SHA}.tar.gz
mv libvni-${LIBVNI_SHA} libvni
prepare_dependency_source libvni "${LIBVNI_SHA}" "https://github.com/PPUC/libvni/archive/${LIBVNI_SHA}.tar.gz" tar LIBVNI_SOURCE_DIR
cd libvni
platforms/ios-simulator/arm64/external.sh
cmake \
Expand All @@ -105,6 +107,6 @@ cmake \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-B build
cmake --build build -- -j${NUM_PROCS}
cp src/vni.h ../../third-party/include/
cp build/libvni.a ../../third-party/build-libs/ios-simulator/arm64/
cp src/vni.h ${PROJECT_SOURCE_ROOT}/third-party/include/
cp build/libvni.a ${PROJECT_SOURCE_ROOT}/third-party/build-libs/ios-simulator/arm64/
cd ..
5 changes: 5 additions & 0 deletions platforms/ios/arm64/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

set -e

./platforms/build-common.sh ios arm64
Loading
Loading