#!/bin/bash # Butchunker GTK Entry Script # This script sets up the environment and generates .clangd configuration SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" # Get GTK include paths GTK_INCLUDE_PATHS="" if pkg-config --exists gtk+-3.0; then # Get include paths from pkg-config and split them GTK_INCLUDE_PATHS=$(pkg-config --cflags-only-I gtk+-3.0) fi # Get Rust library include path RUST_INCLUDE_PATH="$PROJECT_ROOT/../../.temp/target/release" # Generate .clangd configuration file CLANGD_CONTENT="CompileFlags: CompilationDatabase: build/ Add: - -I\${workspaceFolder}/include" # Add GTK include paths if [ -n "$GTK_INCLUDE_PATHS" ]; then # Process each -I flag separately for flag in $GTK_INCLUDE_PATHS; do if [[ "$flag" == -I* ]]; then path="${flag#-I}" CLANGD_CONTENT="$CLANGD_CONTENT - -I$path" fi done fi # Add Rust include path CLANGD_CONTENT="$CLANGD_CONTENT - -I\${workspaceFolder}/../../.temp/target/release Remove: [] Diagnostics: ClangTidy: Add: - \"*\" Remove: - modernize-use-trailing-return-type UnusedIncludes: Strict Index: Background: Build " # Write .clangd file CLANGD_PATH="$PROJECT_ROOT/.clangd" echo "$CLANGD_CONTENT" > "$CLANGD_PATH" echo "Generated .clangd configuration at: $CLANGD_PATH" # Source common functions if exists if [ -f "$SCRIPT_DIR/_common.sh" ]; then source "$SCRIPT_DIR/_common.sh" fi # Default action ACTION="${1:-help}" case "$ACTION" in "build") echo "Building Butchunker GTK..." "$SCRIPT_DIR/build.sh" ;; "clean") echo "Cleaning Butchunker GTK..." "$SCRIPT_DIR/clean.sh" ;; "run") echo "Running Butchunker GTK..." "$SCRIPT_DIR/run.sh" ;; "help"|*) echo "Butchunker GTK Build System" echo "Usage: $0 [build|clean|run]" echo "" echo "Commands:" echo " build - Build the project" echo " clean - Clean build directory" echo " run - Run the application" exit 0 ;; esac