aboutsummaryrefslogtreecommitdiff
path: root/tools/embedded.sh
blob: 2f2ca8ddf8b7f896c5c80bba720eadb0088a9952 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
# This file generate all the embedded binary resources required for OChess to run properly

########## RESOURCES ##########
ressources=$(cat <<-EndOfResources
assets/boards/chesscom_8bits.png
assets/pieces/cburnett.png
EndOfResources
)
###############################

set -e
wai=$(dirname $(readlink -f "$0")) # Current script directory
dst="${wai}/../src/binres/binary_data.hpp"
ui_icons_width=24

# Binary to C headers
# $1 is the resource file and $2 the variable name to use in the C code
bin2c () {
    xxd -n "$2" -i "$1"
}

# Generate ui icons png from svg
rm -f "${wai}"/assets/icons/ui/*.png # Clear previous data
for svg in $(find ${wai}/assets/icons/ui -name "*.svg")
do
    ext="${svg##*.}"
    name="$(basename $svg .${ext})"
    echo "Generating png for ${name}.${ext}..."
    inkscape --export-type png --export-filename "${wai}/assets/icons/ui/ui-${name}.png" -w "${ui_icons_width}" "${svg}" 
done

# Generate headers
echo -n > "$dst"
for res in $ressources $(find ${wai}/assets/icons/ -name "*.png")
do
    ext="${res##*.}"
    name="$(basename $res .${ext})"
    echo "Generating resources for ${name}.${ext}..."
    bin2c "$res" "${name}_${ext}" >> "$dst"
done
echo "Done! The generated resources are accessible here: \"$dst\""