@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ================================
echo    XMake VS工程生成工具
echo ================================
echo.

:: 检查xmake是否安装
where xmake >nul 2>nul
if %errorlevel% equ 0 (
    echo [信息] 检测到xmake已安装
    goto :generate_project
) else (
    echo [警告] 未检测到xmake安装
)

:: 询问是否安装xmake
:ask_install
echo.
set /p install_choice="是否安装xmake?(y/n): "
if /i "%install_choice%"=="y" (
    goto :install_xmake
) else if /i "%install_choice%"=="n" (
    echo [错误] 用户选择不安装xmake,无法生成VS工程
    echo 按任意键退出...
    pause >nul
    exit /b 1
) else (
    echo 请输入 y 或 n
    goto :ask_install
)

:: 安装xmake
:install_xmake
echo.
echo [信息] 开始安装xmake...
echo 注意:安装过程可能需要管理员权限
echo.

:: 检查PowerShell是否可用
where powershell >nul 2>nul
if %errorlevel% neq 0 (
    echo [错误] 未找到PowerShell,无法安装xmake
    echo 请手动安装PowerShell后再运行此脚本
    pause >nul
    exit /b 1
)

:: 使用PowerShell执行安装命令
echo 正在执行安装命令...
powershell -Command "irm https://xmake.io/psget.text | iex"

:: 检查安装是否成功
where xmake >nul 2>nul
if %errorlevel% equ 0 (
    echo [成功] xmake安装完成
) else (
    echo [错误] xmake安装失败,请手动安装
    echo 可以访问 https://xmake.io 获取安装指南
    pause >nul
    exit /b 1
)

:: 生成VS工程
:generate_project
echo.
echo [信息] 开始生成VS工程...
echo 执行命令: 
echo xmake f --with_test=y 
echo xmake project -k vs
echo.

:: 检查当前目录是否有xmake.lua文件
if not exist "xmake.lua" (
    echo [警告] 当前目录未找到xmake.lua文件
    echo 请确保在包含xmake.lua的目录中运行此脚本
    set /p continue="是否继续?(y/n): "
    if /i not "!continue!"=="y" (
        exit /b 1
    )
)

:: 执行xmake命令生成VS工程
xmake f --with_test=y 
xmake project -k vs

:: 检查生成结果
if %errorlevel% equ 0 (
    echo.
    echo [成功] VS工程生成完成
    echo 生成的工程文件位于当前目录的vs20xx文件夹中
) else (
    echo.
    echo [错误] VS工程生成失败
    echo 请检查xmake配置和错误信息
)

echo.
echo 按任意键退出...
pause >nul