93 lines
3.1 KiB
Bash
Executable file
93 lines
3.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if ! command -v optipng &> /dev/null
|
|
then
|
|
echo -e "\033[1;31moptipng could not be found"
|
|
if [[ $OSTYPE == 'darwin'* ]]; then
|
|
echo 'run command'
|
|
echo 'brew install optipng'
|
|
echo 'to install it'
|
|
exit
|
|
fi
|
|
echo 'take a look to http://optipng.sourceforge.net/'
|
|
exit
|
|
fi
|
|
|
|
# Add env var to disable renderer on a display (renderer not working into a Github container)
|
|
export QT_QPA_PLATFORM=offscreen
|
|
|
|
BINARY_NAME=skin_generator_tool
|
|
OMIM_PATH="${OMIM_PATH:-$(cd "$(dirname "$0")/../.."; pwd)}"
|
|
BUILD_DIR="$OMIM_PATH/build"
|
|
SKIN_GENERATOR="${SKIN_GENERATOR:-$BUILD_DIR/$BINARY_NAME}"
|
|
DATA_PATH="$OMIM_PATH/data"
|
|
|
|
# cmake rebuilds skin generator binary if necessary.
|
|
cmake -S "$OMIM_PATH" -B "$BUILD_DIR" -G Ninja -DCMAKE_BUILD_TYPE=Release -DSKIP_TESTS:bool=true
|
|
cmake --build "$BUILD_DIR" --target "$BINARY_NAME"
|
|
|
|
|
|
# Helper function to build skin
|
|
# Parameter $1 - style type (default)
|
|
# Parameter $2 - style name (light, dark, ...)
|
|
# Parameter $3 - resource name (mdpi, hdpi, ...)
|
|
# Parameter $4 - symbol size
|
|
# Parameter $5 - style suffix (none, _light, _dark)
|
|
# Parameter $6 - symbols folder (symbols)
|
|
# Parameter $7 - symbols suffix (none, -ad)
|
|
function BuildSkin() {
|
|
styleType=$1
|
|
styleName=$2
|
|
resourceName=$3
|
|
symbolSize=$4
|
|
suffix=$5
|
|
symbolsFolder=$6
|
|
symbolsSuffix=${7-}
|
|
|
|
echo "Building skin for $styleName/$resourceName"
|
|
# Set environment
|
|
STYLE_PATH="$DATA_PATH/styles/$styleType/$styleName"
|
|
PNG_PATH="$STYLE_PATH/symbols$symbolsSuffix/png"
|
|
rm -rf "$PNG_PATH" || true
|
|
ln -s "$STYLE_PATH/$resourceName$symbolsSuffix" "$PNG_PATH"
|
|
# Run skin generator
|
|
"$SKIN_GENERATOR" --symbolWidth $symbolSize --symbolHeight $symbolSize --symbolsDir "$STYLE_PATH/$symbolsFolder" \
|
|
--skinName "$DATA_PATH/symbols/$resourceName/$suffix/basic" --skinSuffix="$symbolsSuffix"
|
|
# Reset environment
|
|
rm -r "$PNG_PATH" || true
|
|
}
|
|
|
|
symbols_name=(6plus mdpi hdpi xhdpi xxhdpi xxxhdpi)
|
|
|
|
# Cleanup
|
|
rm -rf "$DATA_PATH"/symbols/*/*/symbols.*
|
|
|
|
# Build styles
|
|
|
|
BuildSkin default dark mdpi 18 dark symbols
|
|
BuildSkin default dark hdpi 27 dark symbols
|
|
BuildSkin default dark xhdpi 36 dark symbols
|
|
BuildSkin default dark 6plus 43 dark symbols
|
|
BuildSkin default dark xxhdpi 54 dark symbols
|
|
BuildSkin default dark xxxhdpi 64 dark symbols
|
|
|
|
BuildSkin default light mdpi 18 light symbols
|
|
BuildSkin default light hdpi 27 light symbols
|
|
BuildSkin default light xhdpi 36 light symbols
|
|
BuildSkin default light 6plus 43 light symbols
|
|
BuildSkin default light xxhdpi 54 light symbols
|
|
BuildSkin default light xxxhdpi 64 light symbols
|
|
|
|
for i in ${symbols_name[*]}; do
|
|
optipng -zc9 -zm8 -zs0 -f0 "$DATA_PATH"/symbols/"${i}"/light/symbols.png
|
|
optipng -zc9 -zm8 -zs0 -f0 "$DATA_PATH"/symbols/"${i}"/dark/symbols.png
|
|
done
|
|
|
|
rm -rf "$DATA_PATH"/symbols/*/design/
|
|
|
|
# The styles designer is not used at the moment.
|
|
# If enabled then remove design symbols from bundled android assets in android/sdk/src/main/assets/symbols
|
|
# for i in ${symbols_name[*]}; do
|
|
# cp -r "$DATA_PATH"/symbols/"${i}"/light/ "$DATA_PATH"/symbols/"${i}"/design/
|
|
# done
|