config: drop custom INI parser; migrate to TOML configurations
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I6eabda96988b987d7397d6fc3cd47f2f6a6a6964
This commit is contained in:
parent
c84819b3e8
commit
40227627c1
2 changed files with 209 additions and 390 deletions
21
Makefile
21
Makefile
|
|
@ -1,5 +1,5 @@
|
|||
PROJECT_NAME = chroma
|
||||
VERSION = 1.1.0
|
||||
VERSION = 2.0.0
|
||||
|
||||
# Directories
|
||||
SRCDIR = src
|
||||
|
|
@ -14,6 +14,9 @@ PREFIX ?= /usr/local
|
|||
BINDIR_INSTALL = $(PREFIX)/bin
|
||||
SYSTEMD_INSTALL = $(HOME)/.config/systemd/user
|
||||
|
||||
# Config file
|
||||
CONFIG_FILE_NAME = chroma.toml
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CFLAGS = -std=c11 -Wall -Wextra -Werror -pedantic -O2 -g
|
||||
|
|
@ -46,8 +49,11 @@ LDFLAGS += -lm -ldl
|
|||
|
||||
# Source files (excluding generated protocol files)
|
||||
SOURCES = $(filter-out $(PROTOCOL_SOURCES), $(wildcard $(SRCDIR)/*.c))
|
||||
VENDOR_SOURCES = $(INCDIR)/vendor/tomlc17.c
|
||||
OBJECTS = $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o) $(PROTOCOL_OBJECTS)
|
||||
DEPENDS = $(OBJECTS:.o=.d)
|
||||
VENDOR_OBJECTS = $(VENDOR_SOURCES:$(INCDIR)/vendor/%.c=$(OBJDIR)/%.o)
|
||||
ALL_OBJECTS = $(OBJECTS) $(VENDOR_OBJECTS)
|
||||
DEPENDS = $(ALL_OBJECTS:.o=.d)
|
||||
|
||||
# Override object files for image.c and render.c to suppress third-party warnings
|
||||
OBJECTS := $(filter-out $(OBJDIR)/image.o $(OBJDIR)/render.o,$(OBJECTS))
|
||||
|
|
@ -78,9 +84,9 @@ $(INCDIR):
|
|||
@mkdir -p $(INCDIR)
|
||||
|
||||
# Build main executable
|
||||
$(TARGET): version-header $(PROTOCOL_HEADERS) $(OBJECTS) | $(BINDIR)
|
||||
$(TARGET): version-header $(PROTOCOL_HEADERS) $(ALL_OBJECTS) | $(BINDIR)
|
||||
@echo " LINK $@"
|
||||
@$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
|
||||
@$(CC) $(ALL_OBJECTS) -o $@ $(LDFLAGS)
|
||||
|
||||
# Compile source files
|
||||
$(OBJDIR)/%.o: $(SRCDIR)/%.c $(PROTOCOL_HEADERS) | $(OBJDIR)
|
||||
|
|
@ -95,6 +101,11 @@ $(OBJDIR)/render.o: $(SRCDIR)/render.c $(PROTOCOL_HEADERS) | $(OBJDIR)
|
|||
@echo " CC $<"
|
||||
@$(CC) $(CPPFLAGS) $(CFLAGS) -Wno-sign-conversion -Wno-double-promotion -Wno-conversion -MMD -MP -Wno-error -c $< -o $@
|
||||
|
||||
# Compile vendor files
|
||||
$(OBJDIR)/%.o: $(INCDIR)/vendor/%.c | $(OBJDIR)
|
||||
@echo " CC $<"
|
||||
@$(CC) $(CPPFLAGS) $(CFLAGS) -w -MMD -MP -c $< -o $@
|
||||
|
||||
# Debug build
|
||||
debug: CFLAGS = $(DEBUG_CFLAGS)
|
||||
debug: $(TARGET)
|
||||
|
|
@ -145,7 +156,7 @@ systemd-service: $(SYSTEMD_DIR)/$(PROJECT_NAME).service
|
|||
# Create sample configuration file
|
||||
sample-config:
|
||||
@echo "Creating sample configuration..."
|
||||
@cp chroma.conf.sample $(CONFIG_FILE_NAME)
|
||||
@cp chroma.toml.sample $(CONFIG_FILE_NAME)
|
||||
@echo "Sample configuration created at $(CONFIG_FILE_NAME)"
|
||||
|
||||
# Clean build artifacts
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue