3 changed files with 172 additions and 66 deletions
@ -1,61 +1,159 @@ |
|||
@echo off |
|||
|
|||
REM Windows平台构建脚本 |
|||
|
|||
REM 配置参数 |
|||
set BUILD_DIR=build_windows |
|||
set CMAKE_GENERATOR="Visual Studio 17 2022" |
|||
set INSTALL_PREFIX=install |
|||
|
|||
REM 检查命令行参数 |
|||
:parse_args |
|||
if "%1"=="--clean" ( |
|||
echo Cleaning build directory... |
|||
if exist %BUILD_DIR% rmdir /s /q %BUILD_DIR% |
|||
if exist %INSTALL_PREFIX% rmdir /s /q %INSTALL_PREFIX% |
|||
shift |
|||
) |
|||
|
|||
REM 创建构建目录 |
|||
if not exist %BUILD_DIR% mkdir %BUILD_DIR% |
|||
|
|||
REM 运行CMake配置 |
|||
pushd %BUILD_DIR% |
|||
echo Running CMake configuration... |
|||
cmake .. -G %CMAKE_GENERATOR% -DCMAKE_INSTALL_PREFIX=../%INSTALL_PREFIX% |
|||
if %ERRORLEVEL% neq 0 ( |
|||
echo CMake configuration failed! |
|||
popd |
|||
exit /b 1 |
|||
) |
|||
|
|||
REM 构建项目 |
|||
echo Building project... |
|||
cmake --build . --config Release |
|||
if %ERRORLEVEL% neq 0 ( |
|||
echo Build failed! |
|||
popd |
|||
exit /b 1 |
|||
) |
|||
|
|||
REM 安装项目 |
|||
echo Installing project... |
|||
cmake --build . --config Release --target install |
|||
if %ERRORLEVEL% neq 0 ( |
|||
echo Installation failed! |
|||
popd |
|||
exit /b 1 |
|||
) |
|||
|
|||
popd |
|||
|
|||
echo Build completed successfully! |
|||
echo Server executable: %INSTALL_PREFIX%\bin\rpc_server.exeecho Client executable: %INSTALL_PREFIX%\bin\rpc_client.exe |
|||
echo |
|||
echo To run the server: |
|||
cd %INSTALL_PREFIX%\bin |
|||
echo rpc_server.exe |
|||
|
|||
echo |
|||
echo Then in another terminal: |
|||
echo rpc_client.exe |
|||
REM 输出utf8编码 |
|||
chcp 65001 |
|||
|
|||
@echo off |
|||
REM Windows平台构建脚本 - 优化版 |
|||
setlocal enabledelayedexpansion |
|||
|
|||
REM 配置参数 |
|||
set BUILD_DIR=build_windows |
|||
set CMAKE_GENERATOR="Visual Studio 17 2022" |
|||
set INSTALL_PREFIX=install |
|||
set BUILD_TYPE=Release |
|||
set NUM_JOBS=%NUMBER_OF_PROCESSORS% |
|||
set CLEAN_BUILD=0 |
|||
set ONLY_CONFIG=0 |
|||
set ONLY_BUILD=0 |
|||
set SKIP_INSTALL=0 |
|||
|
|||
REM 检查命令行参数 |
|||
:parse_args |
|||
if "%~1"=="" goto end_parse_args |
|||
|
|||
if "%~1"=="--clean" ( |
|||
set CLEAN_BUILD=1 |
|||
shift |
|||
goto parse_args |
|||
) |
|||
|
|||
if "%~1"=="--config-only" ( |
|||
set ONLY_CONFIG=1 |
|||
shift |
|||
goto parse_args |
|||
) |
|||
|
|||
if "%~1"=="--build-only" ( |
|||
set ONLY_BUILD=1 |
|||
shift |
|||
goto parse_args |
|||
) |
|||
|
|||
if "%~1"=="--skip-install" ( |
|||
set SKIP_INSTALL=1 |
|||
shift |
|||
goto parse_args |
|||
) |
|||
|
|||
if "%~1"=="--debug" ( |
|||
set BUILD_TYPE=Debug |
|||
shift |
|||
goto parse_args |
|||
) |
|||
|
|||
if "%~1"=="--jobs" ( |
|||
if not "%~2"=="" ( |
|||
set NUM_JOBS=%~2 |
|||
shift |
|||
shift |
|||
goto parse_args |
|||
) |
|||
) |
|||
|
|||
echo 未知参数: %~1 |
|||
:end_parse_args |
|||
|
|||
REM 显示配置信息 |
|||
cls |
|||
echo ==================================================== |
|||
echo Windows平台构建脚本 - RPC项目 |
|||
echo ==================================================== |
|||
echo 构建目录: %BUILD_DIR% |
|||
echo 生成器: %CMAKE_GENERATOR% |
|||
echo 安装前缀: %INSTALL_PREFIX% |
|||
echo 构建类型: %BUILD_TYPE% |
|||
echo 并行任务数: %NUM_JOBS% |
|||
echo 清理构建: %CLEAN_BUILD% |
|||
echo ==================================================== |
|||
|
|||
REM 清理构建目录(如果需要) |
|||
if %CLEAN_BUILD% equ 1 ( |
|||
echo 正在清理构建目录... |
|||
if exist %BUILD_DIR% ( |
|||
rmdir /s /q %BUILD_DIR% >nul 2>&1 |
|||
if errorlevel 1 ( |
|||
echo 清理构建目录失败,请确保没有进程正在使用该目录。 |
|||
exit /b 1 |
|||
) |
|||
) |
|||
if exist %INSTALL_PREFIX% ( |
|||
rmdir /s /q %INSTALL_PREFIX% >nul 2>&1 |
|||
if errorlevel 1 ( |
|||
echo 清理安装目录失败,请确保没有进程正在使用该目录。 |
|||
exit /b 1 |
|||
) |
|||
) |
|||
) |
|||
|
|||
REM 创建构建目录 |
|||
if not exist %BUILD_DIR% ( |
|||
mkdir %BUILD_DIR% >nul 2>&1 |
|||
if errorlevel 1 ( |
|||
echo 创建构建目录失败。 |
|||
exit /b 1 |
|||
) |
|||
) |
|||
|
|||
REM 运行CMake配置 |
|||
pushd %BUILD_DIR% >nul 2>&1 |
|||
|
|||
if %ONLY_BUILD% equ 0 ( |
|||
echo 正在运行CMake配置... |
|||
cmake .. -G %CMAKE_GENERATOR% -DCMAKE_INSTALL_PREFIX=../%INSTALL_PREFIX% |
|||
if errorlevel 1 ( |
|||
echo CMake配置失败! |
|||
popd >nul 2>&1 |
|||
exit /b 1 |
|||
) |
|||
echo CMake配置成功。 |
|||
|
|||
if %ONLY_CONFIG% equ 1 ( |
|||
echo 已完成配置,跳过构建和安装步骤。 |
|||
popd >nul 2>&1 |
|||
exit /b 0 |
|||
) |
|||
) |
|||
|
|||
REM 构建项目 |
|||
if %SKIP_INSTALL% equ 0 ( |
|||
echo 正在构建项目... [%BUILD_TYPE%] |
|||
cmake --build . --config %BUILD_TYPE% --parallel %NUM_JOBS% |
|||
if errorlevel 1 ( |
|||
echo 构建失败! |
|||
popd >nul 2>&1 |
|||
exit /b 1 |
|||
) |
|||
echo 项目构建成功。 |
|||
|
|||
REM 安装项目 |
|||
echo 正在安装项目... |
|||
cmake --build . --config %BUILD_TYPE% --target install |
|||
if errorlevel 1 ( |
|||
echo 安装失败! |
|||
popd >nul 2>&1 |
|||
exit /b 1 |
|||
) |
|||
echo 项目安装成功。 |
|||
) else ( |
|||
echo 已跳过安装步骤。 |
|||
) |
|||
|
|||
popd >nul 2>&1 |
|||
|
|||
REM 显示构建结果 |
|||
echo ==================================================== |
|||
echo 构建完成! |
|||
echo 服务器可执行文件: %INSTALL_PREFIX%\bin\rpc_server.exe |
|||
echo 客户端可执行文件: %INSTALL_PREFIX%\bin\rpc_client.exe |
|||
echo ==================================================== |
|||
|
|||
exit /b 0 |
|||
Loading…
Reference in new issue