mirror of
https://github.com/Ed94/VEFontCache-Odin.git
synced 2025-08-04 22:22:43 -07:00
139 lines
4.1 KiB
Bash
139 lines
4.1 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
source "$(dirname "$0")/helpers/misc.sh"
|
|
|
|
path_root=$(git rev-parse --show-toplevel)
|
|
path_backend="$path_root/backend"
|
|
path_build="$path_root/build"
|
|
path_examples="$path_root/examples"
|
|
path_scripts="$path_root/scripts"
|
|
path_thirdparty="$path_root/thirdparty"
|
|
|
|
verify_path "$path_build"
|
|
verify_path "$path_thirdparty"
|
|
|
|
path_system_details="$path_build/system_details.ini"
|
|
if [ -f "$path_system_details" ]; then
|
|
CoreCount_Physical=$(grep "PhysicalCores" "$path_system_details" | cut -d'=' -f2)
|
|
CoreCount_Logical=$(grep "LogicalCores" "$path_system_details" | cut -d'=' -f2)
|
|
else
|
|
OS=$(uname -s)
|
|
case "$OS" in
|
|
Darwin*)
|
|
CoreCount_Physical=$(sysctl -n hw.physicalcpu)
|
|
CoreCount_Logical=$(sysctl -n hw.logicalcpu)
|
|
;;
|
|
Linux*)
|
|
CoreCount_Physical=$(nproc --all)
|
|
CoreCount_Logical=$(nproc)
|
|
;;
|
|
*)
|
|
echo "Unsupported operating system: $OS"
|
|
CoreCount_Physical=1
|
|
CoreCount_Logical=1
|
|
;;
|
|
esac
|
|
|
|
echo "[CPU]" > "$path_system_details"
|
|
echo "PhysicalCores=$CoreCount_Physical" >> "$path_system_details"
|
|
echo "LogicalCores=$CoreCount_Logical" >> "$path_system_details"
|
|
fi
|
|
echo "Core Count - Physical: $CoreCount_Physical Logical: $CoreCount_Logical"
|
|
|
|
# url_freetype='https://github.com/Ed94/odin-freetype.git'
|
|
url_harfbuzz='https://github.com/Ed94/harfbuzz-odin.git'
|
|
url_sokol='https://github.com/floooh/sokol-odin.git'
|
|
url_sokol_tools='https://github.com/floooh/sokol-tools-bin.git'
|
|
|
|
# path_freetype="$path_thirdparty/freetype"
|
|
path_harfbuzz="$path_thirdparty/harfbuzz"
|
|
path_sokol="$path_thirdparty/sokol"
|
|
path_sokol_tools="$path_thirdparty/sokol-tools"
|
|
|
|
sokol_build_clibs_command="$path_scripts/build_sokol_library.sh"
|
|
|
|
# clone_git_repo "$path_freetype" "$url_freetype"
|
|
clone_git_repo "$path_sokol_tools" "$url_sokol_tools"
|
|
|
|
update_git_repo "$path_sokol" "$url_sokol" "$sokol_build_clibs_command"
|
|
update_git_repo "$path_harfbuzz" "$url_harfbuzz" "./scripts/build.sh"
|
|
|
|
pushd "$path_thirdparty" > /dev/null
|
|
case "$OS" in
|
|
Darwin*)
|
|
path_harfbuzz_dlls="$path_harfbuzz/lib/osx"
|
|
;;
|
|
Linux*)
|
|
path_harfbuzz_dlls="$path_harfbuzz/lib/linux64"
|
|
;;
|
|
*)
|
|
echo "Unsupported operating system: $OS"
|
|
CoreCount_Physical=1
|
|
CoreCount_Logical=1
|
|
;;
|
|
esac
|
|
if ls "$path_harfbuzz_dlls"/*.so 1> /dev/null 2>&1; then
|
|
cp "$path_harfbuzz_dlls"/*.so "$path_build/"
|
|
else
|
|
echo "Warning: No .so files found in $path_harfbuzz_dlls"
|
|
fi
|
|
popd > /dev/null
|
|
|
|
path_stb_truetype="$path_thirdparty/stb/src"
|
|
|
|
pushd "$path_stb_truetype" > /dev/null
|
|
make
|
|
popd > /dev/null
|
|
|
|
source "$(dirname "$0")/helpers/odin_compiler_defs.sh"
|
|
|
|
pkg_collection_backend="backend=$path_backend"
|
|
pkg_collection_thirdparty="thirdparty=$path_thirdparty"
|
|
|
|
pushd "$path_build" > /dev/null
|
|
|
|
function build_SokolBackendDemo {
|
|
echo 'Building VEFontCache: Sokol Backend Demo'
|
|
|
|
compile_shaders="$path_scripts/compile_sokol_shaders.sh"
|
|
if [ -f "$compile_shaders" ]; then
|
|
bash "$compile_shaders"
|
|
else
|
|
echo "Warning: $compile_shaders not found. Skipping shader compilation."
|
|
fi
|
|
|
|
executable="$path_build/sokol_demo"
|
|
|
|
build_args=(
|
|
"$command_build"
|
|
"../examples/sokol_demo"
|
|
"$flag_output_path$executable"
|
|
"${flag_collection}${pkg_collection_backend}"
|
|
"${flag_collection}${pkg_collection_thirdparty}"
|
|
# "$flag_micro_architecture_native"
|
|
"$flag_use_separate_modules"
|
|
"${flag_thread_count}${CoreCount_Physical}"
|
|
# "$flag_optimize_none"
|
|
# "$flag_optimize_minimal"
|
|
"$flag_optimize_speed"
|
|
# "$flag_optimize_aggressive"
|
|
# "$flag_debug"
|
|
"$flag_show_timings"
|
|
# "$flag_show_system_call"
|
|
# "$flag_no_bounds_check"
|
|
# "$flag_no_thread_checker"
|
|
# "$flag_default_allocator_nil"
|
|
"${flag_max_error_count}10"
|
|
# "$flag_sanitize_address"
|
|
# "$flag_sanitize_memory"
|
|
)
|
|
|
|
invoke_with_color_coded_output "$odin_compiler ${build_args[*]}"
|
|
}
|
|
|
|
build_SokolBackendDemo
|
|
|
|
popd > /dev/null
|