2D_Engine_C/assets/Makefile

45 lines
1.5 KiB
Makefile

# Assets files
ASSETS := \
assets/tileset/tileset.png \
assets/player_sheets/player_idle_sheet.png \
assets/player_sheets/player_run_sheet.png \
assets/player_sheets/player_death_sheet.png \
assets/enemy_sheets/enemy_idle_sheet.png \
assets/enemy_sheets/enemy_run_sheet.png \
assets/enemy_sheets/enemy_death_sheet.png \
assets/maps/map_test.json
# Deduce assets lz4
ASSETS_COMPRESSED = $(ASSETS:%=$(BUILD_DIR)/%.lz4)
# Current file nb to process
CURRENT_ASSET_FILE := 0
# Build asset target
compress_assets: asset_setup count_assets_compress $(BUILD_DIR)/$(ASSET_OUTPUT) assets_end
# Asset compressing message
asset_setup:
@echo "Compressing Assets (3/3)"
$(Q)mkdir -p $(dir $(ASSETS_COMPRESSED))
# Count nb of assets to compress
count_assets_compress:
$(eval export TOTAL_ASSETS_FILES := $(shell echo $$(($$(make -n $(ASSETS_COMPRESSED) 2>/dev/null | grep -c "Compressing") + 1))))
# Compress assets into tar file
$(BUILD_DIR)/$(ASSET_OUTPUT): $(ASSETS_COMPRESSED)
@echo -e "[100%] $(YELLOW)Compressing $(ASSET_OUTPUT)$(RESET)"
$(Q)tar -cf $@ $(ASSETS_COMPRESSED)
# Compress individual assets
$(BUILD_DIR)/%.lz4: %
$(eval CURRENT_ASSET_FILE := $(shell echo $$(($(CURRENT_ASSET_FILE) + 1))))
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_ASSET_FILE) * 100 / $(TOTAL_ASSETS_FILES)))))
@echo -e "[$(PERCENTAGE)%] $(GREEN)Compressing asset $@$(RESET)"
$(Q)lz4 --favor-decSpeed -fqtz $< $@
# Print ending message
assets_end: $(BUILD_DIR)/$(SOURCE_OUTPUT)
@echo "Compressed target $(ASSET_OUTPUT)"