#!/usr/bin/env perl
# ========================================================================
# Latexmk configuration for dissertation template
# ========================================================================
# This file works with both local builds (VimTeX, CLI) and Overleaf.
# Overleaf automatically detects and uses .latexmkrc files.
#
# Usage:
#   latexmk main.tex          -- build
#   latexmk -c main.tex       -- clean auxiliary files
#   latexmk -C main.tex       -- clean everything including PDF
# ========================================================================

# Use pdflatex by default (change to 'xelatex' or 'lualatex' if needed)
$pdf_mode = 1;

# Number of compilation passes
$max_repeat = 5;

# Enable shell escape (needed by some packages)
$pdflatex = 'pdflatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S';

# BibLaTeX / Biber support
$biber = 'biber %O %S';

# Glossaries / makeglossaries support
# This rule runs makeglossaries when .glo or .acn files change
add_cus_dep('glo', 'gls', 0, 'makeglossaries');
add_cus_dep('acn', 'acr', 0, 'makeglossaries');

sub makeglossaries {
    my ($base_name, $path) = fileparse( $_[0] );
    my @args = ("makeglossaries", "-d", "$path", "$base_name");
    system @args;
}

# Custom dependency for nomenclature (if used)
add_cus_dep('nlo', 'nls', 0, 'makenlo2nls');
sub makenlo2nls {
    system("makeindex -s nomencl.ist -o '$_[0].nls' '$_[0].nlo'");
}

# Output directory for auxiliary files (keeps root clean)
# Uncomment the next line to use a build directory:
# $out_dir = 'build';

# PDF viewer settings (for local use)
# $pdf_previewer = 'start evince';

# Continuous preview mode (run 'latexmk -pvc main.tex')
# $preview_continuous_mode = 1;
