У меня есть следующие цели в моем Makefile, чтобы генерировать иконки для моего Android приложения:Как я могу параметризовать создание целей?
base_icon := icon-base.png
Icon-ldpi.png: $(base_icon)
convert $< -resize 36x36 -unsharp 1x4 [email protected]
Icon-mdpi.png: $(base_icon)
convert $< -resize 48x48 -unsharp 1x4 [email protected]
Icon-hdpi.png: $(base_icon)
convert $< -resize 72x72 -unsharp 1x4 [email protected]
Icon-xhdpi.png: $(base_icon)
convert $< -resize 96x96 -unsharp 1x4 [email protected]
Icon-xxhdpi.png: $(base_icon)
convert $< -resize 144x144 -unsharp 1x4 [email protected]
Icon-xxxhdpi.png: $(base_icon)
convert $< -resize 192x192 -unsharp 1x4 [email protected]
icons_android: \
Icon-ldpi.png \
Icon-mdpi.png \
Icon-hdpi.png \
Icon-xhdpi.png \
Icon-xxhdpi.png \
Icon-xxxhdpi.png
Как я могу сделать это более элегантно, не повторяя инструкции конвертировано снова и снова?
То, что я искал было с каким-то параметризованной целью:
Icon-%.png: $(base_icon)
convert $< -resize $(size) -unsharp 1x4 [email protected]
Но я не уверен, как для поиска в $(size)
для данного значка. Есть ли какие-то карты, которые я могу определить в Makefile и искать в целевом?
Вы, наверное, могли бы это сделать, если вы внедренный размер (например, 72) в имени. Гораздо сложнее преобразовать 'l' в 32,' m' в 48, 'h' в 72,' xh' в 96, 'xxh' в 144 и' xxxh' в 192. –
К сожалению, Android требует, чтобы имена файлов точно так же, как указано выше. – tyrondis
Это мягко раздражает (для Android требуются имена, как показано). В среде Unix я бы написал сценарий оболочки, который сделал сопоставление имен. Кажется вероятным, что вам всегда нужно будет восстановить все значки (если, я полагаю, только один из них был удален, если главный файл изменится, все они должны быть воссозданы), поэтому я, вероятно, просто запустил скрипт с базовым именем и регенерировать все файлы каждый раз. Я не уверен, что это поможет вам в среде разработки Android. –