100 lines
2.3 KiB
Batchfile
100 lines
2.3 KiB
Batchfile
@echo off
|
||
|
||
@REM @REM 检查环境变量
|
||
call:check_path
|
||
|
||
@REM 判断第一个参数是否为rb
|
||
if "%1"=="rb" (
|
||
|
||
@REM 判断是否存在build文件夹,若存在就删除
|
||
call:remove_build_dir
|
||
|
||
@REM 编译生成Makefile
|
||
cmake -B build -G "MinGW Makefiles"
|
||
@REM 编译生成可执行程序
|
||
cmake --build build
|
||
|
||
@REM 判断第二个参数是否为e,如果有代表要执行编译好的可执行程序
|
||
if "%2"=="e" (
|
||
call:run_build_exe
|
||
)
|
||
)
|
||
|
||
@REM run.bat b : Build 编译,适用于已生成过Makefile且CMakeLists.txt没有变化,仅仅需要重新编译生成exe文件
|
||
@REM run.bat b e : Build Execute 从头编译并执行
|
||
|
||
@REM 判断第一个参数是否为rb
|
||
if "%1"=="b" (
|
||
|
||
|
||
|
||
@REM 编译生成可执行程序
|
||
cmake --build build
|
||
|
||
@REM 判断第二个参数是否为e,如果有代表要执行编译好的可执行程序
|
||
if "%2"=="e" (
|
||
call:run_build_exe
|
||
)
|
||
)
|
||
|
||
@REM run.bat e : Execute 运行可执行文件
|
||
if "%1"=="e" (
|
||
|
||
call:run_build_exe
|
||
|
||
)
|
||
|
||
|
||
|
||
|
||
@REM run.bat c : Clear 清理Build文件夹
|
||
if "%1"=="c" (
|
||
call:remove_build_dir
|
||
)
|
||
|
||
|
||
|
||
@REM run.bat e : 打包
|
||
if "%1"=="p" (
|
||
@REM 判断环境变量中是否存在编译所需要的文件夹,如果没有,就添加到环境变量
|
||
|
||
@REM 编译生成Makefile
|
||
cmake -B build -G "MinGW Makefiles"
|
||
@REM 编译生成可执行程序
|
||
cmake --build build
|
||
@REM 打包为安装包
|
||
cmake --build build --target package
|
||
)
|
||
|
||
|
||
@REM 在执行完过程后加上goto :eof跳到文件尾, 避免执行到文件结束才返回
|
||
goto :eof
|
||
|
||
|
||
:check_path
|
||
@REM 判断环境变量中是否存在编译所需要的文件夹,如果没有,就添加到环境变量
|
||
set Nowdir=%cd%
|
||
cd ../CompliteEnv
|
||
call set_temp_env.bat
|
||
cd %Nowdir%
|
||
set PATH=C:\Program Files\Common Files\Pleora\eBUS SDK;%cd%\lib;%PATH%
|
||
echo PATH is seted to %PATH%
|
||
goto:eof
|
||
|
||
|
||
:run_build_exe
|
||
echo Starting to run EXE files in build folder...
|
||
@REM 遍历build下的exe文件,并一个一个的执行(其实编译后只有一个可执行文件)
|
||
for /f %%i in ('dir /b build\*.exe') do .\build\%%i
|
||
echo Stoped runing EXE files...
|
||
goto:eof
|
||
|
||
:remove_build_dir
|
||
if exist build (
|
||
rd /s /Q build
|
||
echo "The build folder has been removed."
|
||
) else (
|
||
echo "The build folder does not exist."
|
||
)
|
||
|
||
goto:eof |