# Add exiv2 to the pkg-config calls
CXXFLAGS = -std=c++17 -Wall -Wextra `pkg-config --cflags gtkmm-3.0 exiv2`
LDFLAGS = `pkg-config --libs gtkmm-3.0 exiv2`

# Target Executable Name
TARGET = visual-renamer

# Directories
SRC_DIR = src
OBJ_DIR = obj

# Source and Object Files
SOURCES = $(wildcard $(SRC_DIR)/*.cpp)
OBJECTS = $(SOURCES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)

# Default Rule
all: $(TARGET)

# Link the executable
$(TARGET): $(OBJECTS)
	@echo "Linking $@..."
	$(CXX) -o $@ $(OBJECTS) $(LDFLAGS)

# Compile source files to object files
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR)
	@echo "Compiling $<..."
	$(CXX) $(CXXFLAGS) -c $< -o $@

# Create object directory if it doesn't exist
$(OBJ_DIR):
	mkdir -p $(OBJ_DIR)

# Clean build artifacts
clean:
	@echo "Cleaning up..."
	rm -rf $(OBJ_DIR) $(TARGET)

# Phonies
.PHONY: all clean
