// Native library detection - simple version that works without build tags
package main

import (
	"fmt"
	"os"
	"os/exec"
	"runtime"
	"strings"
)

func main() {
	fmt.Println("=== Native Library Detection ===")
	fmt.Printf("Go Version: %s\n", runtime.Version())
	fmt.Printf("Architecture: %s/%s\n", runtime.GOOS, runtime.GOARCH)
	fmt.Printf("CGO Enabled: %v\n", cgoEnabled())
	fmt.Println()

	// Check for native libraries
	checkNativeLibs()
}

func cgoEnabled() bool {
	// Try to detect CGO by checking if we can import runtime/cgo
	cmd := exec.Command("go", "env", "CGO_ENABLED")
	out, err := cmd.Output()
	if err != nil {
		return false
	}
	return strings.TrimSpace(string(out)) == "1"
}

func checkNativeLibs() {
	// Check for native library files
	libPaths := []string{
		"native/build/libdataset_hash.so",
		"native/build/libdataset_hash.dylib",
		"native/build/libdataset_hash.dll",
		"native/build/libqueue_index.so",
		"native/build/libartifact_scanner.so",
		"native/build/libstreaming_io.so",
	}

	found := false
	for _, path := range libPaths {
		if _, err := os.Stat(path); err == nil {
			fmt.Printf("Found: %s\n", path)
			found = true
		}
	}

	if !found {
		fmt.Println("✗ No native libraries found in native/build/")
		fmt.Println()
		fmt.Println("To use native libraries:")
		fmt.Println("  1. Build native libs: cd native && mkdir -p build && cd build && cmake .. && make")
		fmt.Println("  2. Build Go with native: go build -tags native_libs ./...")
		fmt.Println()
		fmt.Println("Current implementation: Go standard library")
	}
}
