From 14007eeed940c59ed71ceb024f92aebc2e8a200e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sun, 20 Jun 2021 23:22:38 +0200 Subject: [PATCH] refactor: move gui elements to gui library --- Makefile | 12 +++-- image-viewer/Makefile | 4 +- lib-gui/Makefile | 52 +++++++++++++++++++ {text-viewer => lib-gui}/include/font.h | 0 {text-viewer => lib-gui}/include/gui.h | 0 .../include/gui_component_line.h | 0 .../include/gui_component_text.h | 0 .../include/gui_component_text_view.h | 0 .../include/keyboard_const.h | 0 {text-viewer => lib-gui}/include/renderer.h | 0 .../include/rotation_const.h | 0 {text-viewer => lib-gui}/src/font.c | 0 {text-viewer => lib-gui}/src/font_rom8x16.c | 0 {text-viewer => lib-gui}/src/gui.c | 0 {text-viewer => lib-gui}/src/gui_component.c | 0 .../src/gui_component_line.c | 0 .../src/gui_component_text.c | 0 .../src/gui_component_text_view.c | 0 {text-viewer => lib-gui}/src/gui_container.c | 0 .../src/gui_group_container.c | 0 .../src/gui_one_container.c | 0 {text-viewer => lib-gui}/src/gui_window.c | 0 {text-viewer => lib-gui}/src/renderer.c | 0 lib-pheripherals/Makefile | 2 +- text-viewer/Makefile | 4 +- 25 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 lib-gui/Makefile rename {text-viewer => lib-gui}/include/font.h (100%) rename {text-viewer => lib-gui}/include/gui.h (100%) rename {text-viewer => lib-gui}/include/gui_component_line.h (100%) rename {text-viewer => lib-gui}/include/gui_component_text.h (100%) rename {text-viewer => lib-gui}/include/gui_component_text_view.h (100%) rename {text-viewer => lib-gui}/include/keyboard_const.h (100%) rename {text-viewer => lib-gui}/include/renderer.h (100%) rename {text-viewer => lib-gui}/include/rotation_const.h (100%) rename {text-viewer => lib-gui}/src/font.c (100%) rename {text-viewer => lib-gui}/src/font_rom8x16.c (100%) rename {text-viewer => lib-gui}/src/gui.c (100%) rename {text-viewer => lib-gui}/src/gui_component.c (100%) rename {text-viewer => lib-gui}/src/gui_component_line.c (100%) rename {text-viewer => lib-gui}/src/gui_component_text.c (100%) rename {text-viewer => lib-gui}/src/gui_component_text_view.c (100%) rename {text-viewer => lib-gui}/src/gui_container.c (100%) rename {text-viewer => lib-gui}/src/gui_group_container.c (100%) rename {text-viewer => lib-gui}/src/gui_one_container.c (100%) rename {text-viewer => lib-gui}/src/gui_window.c (100%) rename {text-viewer => lib-gui}/src/renderer.c (100%) diff --git a/Makefile b/Makefile index 7b97e1021bd549e8669765939b86230b70e8a823..fc40d425e24889257ca8f0c8107884d5e53f9162 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ export ROOT_DIR = $(shell pwd) export BIN_DIR = $(ROOT_DIR)/bin -export INHERIT_INCLUDES = -I$(ROOT_DIR)/lib-pheripherals/include +export INHERIT_INCLUDES = -I$(ROOT_DIR)/lib-pheripherals/include -I$(ROOT_DIR)/lib-gui/include export LIB_DIR = -L$(ROOT_DIR)/bin #TARGET_IP ?= 192.168.202.127 @@ -21,7 +21,8 @@ SSH_OPTIONS+=-i ~/.ssh/mzapo-root-key #SSH_OPTIONS=-o 'ProxyJump=ctu_login@postel.felk.cvut.cz' IMAGE_VIEWER=$(BIN_DIR)/image-viewer -LIB_PHERIPHERALS=$(BIN_DIR)/lib_pheripherals.so +LIB_PHERIPHERALS=$(BIN_DIR)/libmzapo-pheripherals.so +LIB_GUI=$(BIN_DIR)/libmzapo-gui.so TEXT_VIEWER=$(BIN_DIR)/text-viewer ifdef COMPUTER @@ -34,12 +35,13 @@ all: $(DEPENDENCIES) image-viewer text-viewer image-viewer: $(IMAGE_VIEWER) lib-pheripherals: $(LIB_PHERIPHERALS) +lib-gui: $(LIB_GUI) text-viewer: $(TEXT_VIEWER) $(IMAGE_VIEWER): $(DEPENDENCIES) lib-pheripherals FORCE @make -C image-viewer -$(TEXT_VIEWER): $(DEPENDENCIES) lib-pheripherals FORCE +$(TEXT_VIEWER): $(DEPENDENCIES) lib-pheripherals lib-gui FORCE @make -C text-viewer $(DEPENDENCIES): @@ -49,6 +51,9 @@ $(DEPENDENCIES): $(LIB_PHERIPHERALS): $(DEPENDENCIES) FORCE @make -C lib-pheripherals +$(LIB_GUI): $(DEPENDENCIES) FORCE + @make -C lib-gui + copy-executable: all ssh $(SSH_OPTIONS) -t $(TARGET_USER)@$(TARGET_IP) killall gdbserver 1>/dev/null 2>/dev/null || true ssh $(SSH_OPTIONS) $(TARGET_USER)@$(TARGET_IP) mkdir -p $(TARGET_DIR) @@ -65,6 +70,7 @@ clean: @make -C image-viewer clean @make -C lib-pheripherals clean @make -C text-viewer clean + @make -C lib-gui clean $(RM) -rf $(BIN_DIR) $(RM) -rf ./.computer ./.arm diff --git a/image-viewer/Makefile b/image-viewer/Makefile index 1da6ba959005f4c3300c9a06138937ad9f44c7d9..dbdf1031ad66ded1203bd270bfde18433cf29299 100644 --- a/image-viewer/Makefile +++ b/image-viewer/Makefile @@ -16,10 +16,10 @@ CFLAGS =-g -std=gnu99 -O1 -Wall -D ILI9481 CXXFLAGS = -g -std=gnu++11 -O1 -Wall ifdef COMPUTER -LDFLAGS = -lrt -lmzapo_pheripherals -lpthread -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image +LDFLAGS = -lrt -lmzapo-pheripherals -lpthread -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image CFLAGS += -DCOMPUTER $(shell sdl2-config --cflags) else -LDFLAGS = -lrt -lmzapo_pheripherals -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 +LDFLAGS = -lrt -lmzapo-pheripherals -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 endif LDFLAGS += -Wl,-rpath,'$${ORIGIN}' $(LIB_DIR) diff --git a/lib-gui/Makefile b/lib-gui/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..94101c4cb14695b1a2c2cfc1cfa7663fe6dd85fe --- /dev/null +++ b/lib-gui/Makefile @@ -0,0 +1,52 @@ +SRC_DIR=./src +OBJ_DIR=./obj +BIN_DIR?=./bin +INC_DIR=-I./include $(INHERIT_INCLUDES) + +ifdef COMPUTER + CC = clang +else + CC = arm-linux-gnueabihf-gcc + CXX = arm-linux-gnueabihf-g++ +endif + +CPPFLAGS = -I . +CFLAGS =-g -std=gnu99 -O1 -Wall -D ILI9481 +CXXFLAGS = -g -std=gnu++11 -O1 -Wall + +ifdef COMPUTER +LDFLAGS = -lrt -lpthread -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image +CFLAGS += -DCOMPUTER $(shell sdl2-config --cflags) +else +LDFLAGS = -lrt -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 +endif + +NAME=mzapo-gui +BINARY=$(BIN_DIR)/lib$(NAME).so + +SRC=$(wildcard $(SRC_DIR)/*.c) +OBJ=$(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC)) + +CFLAGS+=$(INC_DIR) -Wall -Werror +CFLAGS+=$(shell sdl2-config --cflags) + +.PHONY: all clean + +all: $(BINARY) + +$(BINARY): $(OBJ) | $(BIN_DIR) + $(CC) -shared $(LDFLAGS) $^ $(LDLIBS) -o $@ + +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) + $(CC) $(CFLAGS) -c -fPIC $< -o $@ + +$(BIN_DIR) $(OBJ_DIR): + echo $(BIN_DIR) + mkdir -p $@ +clean: + $(RM) -rv $(BIN_DIR) $(OBJ_DIR) + $(RM) -rv .cache + $(RM) -rv connect.gdb + $(RM) -rv depend + +-include $(OBJ:.o=.d) diff --git a/text-viewer/include/font.h b/lib-gui/include/font.h similarity index 100% rename from text-viewer/include/font.h rename to lib-gui/include/font.h diff --git a/text-viewer/include/gui.h b/lib-gui/include/gui.h similarity index 100% rename from text-viewer/include/gui.h rename to lib-gui/include/gui.h diff --git a/text-viewer/include/gui_component_line.h b/lib-gui/include/gui_component_line.h similarity index 100% rename from text-viewer/include/gui_component_line.h rename to lib-gui/include/gui_component_line.h diff --git a/text-viewer/include/gui_component_text.h b/lib-gui/include/gui_component_text.h similarity index 100% rename from text-viewer/include/gui_component_text.h rename to lib-gui/include/gui_component_text.h diff --git a/text-viewer/include/gui_component_text_view.h b/lib-gui/include/gui_component_text_view.h similarity index 100% rename from text-viewer/include/gui_component_text_view.h rename to lib-gui/include/gui_component_text_view.h diff --git a/text-viewer/include/keyboard_const.h b/lib-gui/include/keyboard_const.h similarity index 100% rename from text-viewer/include/keyboard_const.h rename to lib-gui/include/keyboard_const.h diff --git a/text-viewer/include/renderer.h b/lib-gui/include/renderer.h similarity index 100% rename from text-viewer/include/renderer.h rename to lib-gui/include/renderer.h diff --git a/text-viewer/include/rotation_const.h b/lib-gui/include/rotation_const.h similarity index 100% rename from text-viewer/include/rotation_const.h rename to lib-gui/include/rotation_const.h diff --git a/text-viewer/src/font.c b/lib-gui/src/font.c similarity index 100% rename from text-viewer/src/font.c rename to lib-gui/src/font.c diff --git a/text-viewer/src/font_rom8x16.c b/lib-gui/src/font_rom8x16.c similarity index 100% rename from text-viewer/src/font_rom8x16.c rename to lib-gui/src/font_rom8x16.c diff --git a/text-viewer/src/gui.c b/lib-gui/src/gui.c similarity index 100% rename from text-viewer/src/gui.c rename to lib-gui/src/gui.c diff --git a/text-viewer/src/gui_component.c b/lib-gui/src/gui_component.c similarity index 100% rename from text-viewer/src/gui_component.c rename to lib-gui/src/gui_component.c diff --git a/text-viewer/src/gui_component_line.c b/lib-gui/src/gui_component_line.c similarity index 100% rename from text-viewer/src/gui_component_line.c rename to lib-gui/src/gui_component_line.c diff --git a/text-viewer/src/gui_component_text.c b/lib-gui/src/gui_component_text.c similarity index 100% rename from text-viewer/src/gui_component_text.c rename to lib-gui/src/gui_component_text.c diff --git a/text-viewer/src/gui_component_text_view.c b/lib-gui/src/gui_component_text_view.c similarity index 100% rename from text-viewer/src/gui_component_text_view.c rename to lib-gui/src/gui_component_text_view.c diff --git a/text-viewer/src/gui_container.c b/lib-gui/src/gui_container.c similarity index 100% rename from text-viewer/src/gui_container.c rename to lib-gui/src/gui_container.c diff --git a/text-viewer/src/gui_group_container.c b/lib-gui/src/gui_group_container.c similarity index 100% rename from text-viewer/src/gui_group_container.c rename to lib-gui/src/gui_group_container.c diff --git a/text-viewer/src/gui_one_container.c b/lib-gui/src/gui_one_container.c similarity index 100% rename from text-viewer/src/gui_one_container.c rename to lib-gui/src/gui_one_container.c diff --git a/text-viewer/src/gui_window.c b/lib-gui/src/gui_window.c similarity index 100% rename from text-viewer/src/gui_window.c rename to lib-gui/src/gui_window.c diff --git a/text-viewer/src/renderer.c b/lib-gui/src/renderer.c similarity index 100% rename from text-viewer/src/renderer.c rename to lib-gui/src/renderer.c diff --git a/lib-pheripherals/Makefile b/lib-pheripherals/Makefile index b2a268299702ab8df3410d114f3cbf914a8d1a69..71b852e878b046cf2902273d592bbb130c787ca1 100644 --- a/lib-pheripherals/Makefile +++ b/lib-pheripherals/Makefile @@ -21,7 +21,7 @@ else LDFLAGS = -lrt -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 endif -NAME=mzapo_pheripherals +NAME=mzapo-pheripherals BINARY=$(BIN_DIR)/lib$(NAME).so SRC=$(wildcard $(SRC_DIR)/*.c) diff --git a/text-viewer/Makefile b/text-viewer/Makefile index ff3540bf26eb5cd3d57956c7d5874e264ca09f22..d2351ab0160797fe9dbee229fc343813ede4841d 100644 --- a/text-viewer/Makefile +++ b/text-viewer/Makefile @@ -16,10 +16,10 @@ CFLAGS =-g -std=gnu99 -O1 -Wall -D ILI9481 CXXFLAGS = -g -std=gnu++11 -O1 -Wall ifdef COMPUTER -LDFLAGS = -lrt -lmzapo_pheripherals -lpthread -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image +LDFLAGS = -lrt -lmzapo-pheripherals -lmzapo-gui -lpthread -lmagic -ljpeg -lpng $(shell sdl2-config --libs) -lSDL2_image CFLAGS += -DCOMPUTER $(shell sdl2-config --cflags) else -LDFLAGS = -lrt -lmzapo_pheripherals -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 +LDFLAGS = -lrt -lmzapo-pheripherals -lmzapo-gui -lpthread -l :libmagic.so.1 -l :libjpeg.so.62 -l :libz.so -l :libpng16.so.16 endif LDFLAGS += -Wl,-rpath,'$${ORIGIN}' $(LIB_DIR)