191 lines
5.8 KiB
Bash
Executable File
191 lines
5.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/../builtinFonts"
|
|
|
|
echo "// The contents of this file are generated by ./lib/EpdFont/scripts/build-font-ids.sh"
|
|
echo "#pragma once"
|
|
echo ""
|
|
|
|
echo "#define BOOKERLY_12_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./bookerly_12_regular.h",
|
|
"./bookerly_12_bold.h",
|
|
"./bookerly_12_bolditalic.h",
|
|
"./bookerly_12_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define BOOKERLY_14_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./bookerly_14_regular.h",
|
|
"./bookerly_14_bold.h",
|
|
"./bookerly_14_bolditalic.h",
|
|
"./bookerly_14_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define BOOKERLY_16_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./bookerly_16_regular.h",
|
|
"./bookerly_16_bold.h",
|
|
"./bookerly_16_bolditalic.h",
|
|
"./bookerly_16_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define BOOKERLY_18_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./bookerly_18_regular.h",
|
|
"./bookerly_18_bold.h",
|
|
"./bookerly_18_bolditalic.h",
|
|
"./bookerly_18_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define NOTOSANS_12_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./notosans_12_regular.h",
|
|
"./notosans_12_bold.h",
|
|
"./notosans_12_bolditalic.h",
|
|
"./notosans_12_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define NOTOSANS_14_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./notosans_14_regular.h",
|
|
"./notosans_14_bold.h",
|
|
"./notosans_14_bolditalic.h",
|
|
"./notosans_14_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define NOTOSANS_16_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./notosans_16_regular.h",
|
|
"./notosans_16_bold.h",
|
|
"./notosans_16_bolditalic.h",
|
|
"./notosans_16_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define NOTOSANS_18_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./notosans_18_regular.h",
|
|
"./notosans_18_bold.h",
|
|
"./notosans_18_bolditalic.h",
|
|
"./notosans_18_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define OPENDYSLEXIC_8_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./opendyslexic_8_regular.h",
|
|
"./opendyslexic_8_bold.h",
|
|
"./opendyslexic_8_bolditalic.h",
|
|
"./opendyslexic_8_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define OPENDYSLEXIC_10_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./opendyslexic_10_regular.h",
|
|
"./opendyslexic_10_bold.h",
|
|
"./opendyslexic_10_bolditalic.h",
|
|
"./opendyslexic_10_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define OPENDYSLEXIC_12_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./opendyslexic_12_regular.h",
|
|
"./opendyslexic_12_bold.h",
|
|
"./opendyslexic_12_bolditalic.h",
|
|
"./opendyslexic_12_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define OPENDYSLEXIC_14_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./opendyslexic_14_regular.h",
|
|
"./opendyslexic_14_bold.h",
|
|
"./opendyslexic_14_bolditalic.h",
|
|
"./opendyslexic_14_italic.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define UI_10_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./ubuntu_10_regular.h",
|
|
"./ubuntu_10_bold.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define UI_12_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./ubuntu_12_regular.h",
|
|
"./ubuntu_12_bold.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
echo "#define SMALL_FONT_ID ($(
|
|
ruby -rdigest -e 'puts [
|
|
"./notosans_8_regular.h",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
|
|
))"
|
|
|
|
# Custom font sizes (must match convert-builtin-fonts.sh)
|
|
CUSTOM_FONT_SIZES=(12 14 16 18)
|
|
|
|
# Generate font IDs for all custom fonts
|
|
echo ""
|
|
echo "// Custom font IDs"
|
|
|
|
CUSTOM_DIR="./custom"
|
|
declare -a CUSTOM_FONT_NAMES=()
|
|
declare -a CUSTOM_FONT_UPPERCASE=()
|
|
|
|
if [ -d "$CUSTOM_DIR" ]; then
|
|
for font_dir in "$CUSTOM_DIR"/*/; do
|
|
if [ -d "$font_dir" ]; then
|
|
font_folder_name=$(basename "$font_dir")
|
|
font_name_lower=$(echo "$font_folder_name" | tr '[:upper:]' '[:lower:]')
|
|
font_name_upper=$(echo "$font_folder_name" | tr '[:lower:]' '[:upper:]')
|
|
|
|
# Check if font headers exist (Regular is required)
|
|
if [ -f "./custom/${font_name_lower}_12_regular.h" ]; then
|
|
CUSTOM_FONT_NAMES+=("$font_name_lower")
|
|
CUSTOM_FONT_UPPERCASE+=("$font_name_upper")
|
|
|
|
for size in ${CUSTOM_FONT_SIZES[@]}; do
|
|
font_id=$(ruby -rdigest -e "puts [
|
|
\"./custom/${font_name_lower}_${size}_regular.h\",
|
|
\"./custom/${font_name_lower}_${size}_bold.h\",
|
|
\"./custom/${font_name_lower}_${size}_bolditalic.h\",
|
|
\"./custom/${font_name_lower}_${size}_italic.h\",
|
|
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)")
|
|
echo "#define ${font_name_upper}_${size}_FONT_ID ($font_id)"
|
|
done
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Generate CUSTOM_FONT_IDS lookup array
|
|
echo ""
|
|
echo "// Custom font ID lookup array: CUSTOM_FONT_IDS[fontIndex][sizeIndex]"
|
|
echo "// Size indices: 0=12pt, 1=14pt, 2=16pt, 3=18pt"
|
|
|
|
if [ ${#CUSTOM_FONT_NAMES[@]} -gt 0 ]; then
|
|
echo "static const int CUSTOM_FONT_IDS[][4] = {"
|
|
for i in "${!CUSTOM_FONT_UPPERCASE[@]}"; do
|
|
font_upper="${CUSTOM_FONT_UPPERCASE[$i]}"
|
|
echo " {${font_upper}_12_FONT_ID, ${font_upper}_14_FONT_ID, ${font_upper}_16_FONT_ID, ${font_upper}_18_FONT_ID},"
|
|
done
|
|
echo "};"
|
|
else
|
|
echo "static const int CUSTOM_FONT_IDS[][4] = {};"
|
|
fi
|