Files
Upsilon/escher/Makefile
M4x1m3 72d9e31847 Added support for git theme repos
Usage:
OMEGA_THEME_REPO must be set to a valid git url, or local for local repository
OMEGA_THEME_NAME must be set to an existing theme in the repository
2020-06-22 19:02:32 +02:00

144 lines
3.9 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SFLAGS += -Iescher/include
ifeq ($(OMEGA_THEME_REPO),local)
$(eval $(call rule_for, \
THEME, \
escher/palette.h, \
$(addprefix themes/themes/local/, $(addsuffix .json, $(OMEGA_THEME_NAME))), \
$$(PYTHON) themes/themes_manager.py $(OMEGA_THEME_REPO) $(OMEGA_THEME_NAME) $$@ $(BUILD_DIR)/, \
global \
))
else
$(eval $(call rule_for, \
THEME, \
escher/palette.h, \
themes/themes/git/.empty-folder, \
$$(PYTHON) themes/themes_manager.py $(OMEGA_THEME_REPO) $(OMEGA_THEME_NAME) $$@ $(BUILD_DIR)/, \
global \
))
endif
escher_src += $(addprefix escher/src/,\
alternate_empty_view_controller.cpp \
app.cpp \
bank_view_controller.cpp \
bordered.cpp \
buffer_text_view.cpp \
button.cpp \
button_row_controller.cpp \
chevron_view.cpp \
clipboard.cpp \
container.cpp \
editable_text_cell.cpp \
ellipsis_view.cpp \
expression_field.cpp \
even_odd_cell.cpp \
even_odd_cell_with_ellipsis.cpp \
even_odd_buffer_text_cell.cpp \
even_odd_editable_text_cell.cpp \
even_odd_expression_cell.cpp \
even_odd_message_text_cell.cpp \
expression_table_cell.cpp \
expression_table_cell_with_pointer.cpp \
expression_table_cell_with_expression.cpp \
expression_view.cpp \
highlight_cell.cpp \
gauge_view.cpp \
image_view.cpp \
input_event_handler.cpp \
invocation.cpp \
input_view_controller.cpp \
key_view.cpp \
layout_field.cpp \
list_view_data_source.cpp \
message_table_cell.cpp \
message_table_cell_with_buffer.cpp \
message_table_cell_with_chevron.cpp \
message_table_cell_with_chevron_and_buffer.cpp \
message_table_cell_with_chevron_and_message.cpp \
message_table_cell_with_chevron_and_expression.cpp \
message_table_cell_with_editable_text.cpp \
message_table_cell_with_expression.cpp \
message_table_cell_with_gauge.cpp \
message_table_cell_with_message.cpp \
message_table_cell_with_switch.cpp \
message_text_view.cpp \
metric.cpp \
modal_view_controller.cpp \
nested_menu_controller.cpp \
palette.cpp \
pointer_text_view.cpp \
responder.cpp \
run_loop.cpp \
scroll_view.cpp \
scroll_view_data_source.cpp \
scroll_view_indicator.cpp \
scrollable_expression_view.cpp \
scrollable_view.cpp \
selectable_table_view.cpp \
simple_list_view_data_source.cpp \
simple_table_view_data_source.cpp \
solid_color_view.cpp \
stack_view.cpp \
stack_view_controller.cpp \
switch_view.cpp \
tab_view.cpp \
tab_view_cell.cpp \
tab_view_controller.cpp \
tab_view_data_source.cpp \
table_cell.cpp \
table_view.cpp \
table_view_data_source.cpp \
text_cursor_view.cpp \
text_area.cpp \
text_field.cpp \
text_input.cpp \
text_input_helpers.cpp \
text_view.cpp \
tiled_view.cpp \
timer.cpp \
toolbox.cpp \
transparent_view.cpp \
view.cpp \
view_controller.cpp \
warning_controller.cpp \
window.cpp \
)
tests_src += $(addprefix escher/test/,\
layout_field.cpp\
)
$(eval $(call rule_for, \
HOSTCC, \
escher/image/inliner, \
escher/image/inliner.c $(addprefix ion/src/external/lz4/, lz4.c lz4hc.c), \
$$(HOSTCC) -std=c99 `libpng-config --cflags` $$^ `libpng-config --ldflags` -o $$@, \
global \
))
INLINER := $(BUILD_DIR)/escher/image/inliner
.PRECIOUS: $(BUILD_DIR)/%.h $(BUILD_DIR)/%.cpp
$(eval $(call rule_for, \
INLINER, \
%.h %.cpp, \
$(BUILD_DIR)/%.png $$(INLINER), \
$$(INLINER) $$< $$(basename $$@).h $$(basename $$@).cpp, \
global \
))
# Mark a .cpp file as depending on a .png one
# This is called with $1 = code.cpp and $2 = image.png
# First, we mark code.o as requiring image.o. Rules will take care of inlining
# the PNG and building the inlined cpp file. Second, we add the directory
# corresponding to the one of code.cpp in the output dir as a header search
# path. Since $1 can be a list, we have to map with foreach.
define depends_on_image
$(call object_for,$(1)): $(call object_for,$(2))
$(call object_for,$(1)): SFLAGS += $(foreach d,$(sort $(dir $(call object_for,$(1)))),-I$(d))
escher_src += $(2)
image_list += $(2)
endef