fix: win build error

This commit is contained in:
rankun 2020-02-22 02:15:12 +08:00
parent bcc86ef0e3
commit 3478dcaa98
2 changed files with 128 additions and 127 deletions

View file

@ -1,128 +1,129 @@
@echo off
echo=
echo=
echo ---------------------------------------------------------------
echo check ENV
echo ---------------------------------------------------------------
:: 从环境变量获取必要参数
:: 例如 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
set vcvarsall="%ENV_VCVARSALL%"
:: 例如 d:\a\QtScrcpy\Qt\5.12.7
set qt_msvc_path="%ENV_QT_PATH%"
echo ENV_VCVARSALL %ENV_VCVARSALL%
echo ENV_QT_PATH %ENV_QT_PATH%
:: 获取脚本绝对路径
set script_path=%~dp0
:: 进入脚本所在目录,因为这会影响脚本中执行的程序的工作目录
set old_cd=%cd%
cd /d %~dp0
:: 启动参数声明
set cpu_mode=x86
set build_mode=debug
set errno=1
echo=
echo=
echo ---------------------------------------------------------------
echo check build param[debug/release x86/x64]
echo ---------------------------------------------------------------
:: 编译参数检查 /i忽略大小写
if /i "%1"=="debug" (
set build_mode=debug
goto build_mode_ok
)
if /i "%1"=="release" (
set build_mode=release
goto build_mode_ok
)
echo error: unkonow build mode -- %1
goto return
:build_mode_ok
if /i "%2"=="x86" (
set cpu_mode=x86
)
if /i "%2"=="x64" (
set cpu_mode=x64
)
:: 提示
echo current build mode: %build_mode% %cpu_mode%
:: 环境变量设置
if /i %cpu_mode% == x86 (
set qt_msvc_path=%qt_msvc_path%\msvc2017\bin
) else (
set qt_msvc_path=%qt_msvc_path%\msvc2017_64\bin
)
set PATH=%qt_msvc_path%;%PATH%
:: 注册vc环境
if /i %cpu_mode% == x86 (
call %vcvarsall% %cpu_mode%
) else (
call %vcvarsall% %cpu_mode%
)
if not %errorlevel%==0 (
echo "vcvarsall not find"
goto return
)
echo=
echo=
echo ---------------------------------------------------------------
echo begin qmake build
echo ---------------------------------------------------------------
:: 删除输出目录
set output_path=%script_path%..\..\output\win\%cpu_mode%\%build_mode%
if exist %output_path% (
rmdir /q /s %output_path%
)
:: 删除临时目录
set temp_path=%script_path%..\temp
if exist %temp_path% (
rmdir /q /s %temp_path%
)
md %temp_path%
cd %temp_path%
set qmake_params=-spec win32-msvc
if /i %debug_mode% == "true" (
set qmake_params=%qmake_params% "CONFIG+=debug" "CONFIG+=qml_debug"
) else (
set qmake_params=%qmake_params% "CONFIG+=qtquickcompiler"
)
:: qmake ../../all.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
qmake ../../all.pro %qmake_params%
if not %errorlevel%==0 (
echo "qmake failed"
goto return
)
nmake
if not %errorlevel%==0 (
echo "nmake failed"
goto return
)
echo=
echo=
echo ---------------------------------------------------------------
echo finish!!!
echo ---------------------------------------------------------------
set errno=0
:return
cd %old_cd%
@echo off
echo=
echo=
echo ---------------------------------------------------------------
echo check ENV
echo ---------------------------------------------------------------
:: 从环境变量获取必要参数
:: 例如 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
set vcvarsall="%ENV_VCVARSALL%"
:: 例如 d:\a\QtScrcpy\Qt\5.12.7
set qt_msvc_path="%ENV_QT_PATH%"
echo ENV_VCVARSALL %ENV_VCVARSALL%
echo ENV_QT_PATH %ENV_QT_PATH%
:: 获取脚本绝对路径
set script_path=%~dp0
:: 进入脚本所在目录,因为这会影响脚本中执行的程序的工作目录
set old_cd=%cd%
cd /d %~dp0
:: 启动参数声明
set cpu_mode=x86
set build_mode=debug
set errno=1
echo=
echo=
echo ---------------------------------------------------------------
echo check build param[debug/release x86/x64]
echo ---------------------------------------------------------------
:: 编译参数检查 /i忽略大小写
if /i "%1"=="debug" (
set build_mode=debug
goto build_mode_ok
)
if /i "%1"=="release" (
set build_mode=release
goto build_mode_ok
)
echo error: unkonow build mode -- %1
goto return
:build_mode_ok
if /i "%2"=="x86" (
set cpu_mode=x86
)
if /i "%2"=="x64" (
set cpu_mode=x64
)
:: 提示
echo current build mode: %build_mode% %cpu_mode%
:: 环境变量设置
if /i %cpu_mode% == x86 (
set qt_msvc_path=%qt_msvc_path%\msvc2017\bin
) else (
set qt_msvc_path=%qt_msvc_path%\msvc2017_64\bin
)
set PATH=%qt_msvc_path%;%PATH%
:: 注册vc环境
if /i %cpu_mode% == x86 (
call %vcvarsall% %cpu_mode%
) else (
call %vcvarsall% %cpu_mode%
)
if not %errorlevel%==0 (
echo "vcvarsall not find"
goto return
)
echo=
echo=
echo ---------------------------------------------------------------
echo begin qmake build
echo ---------------------------------------------------------------
:: 删除输出目录
set output_path=%script_path%..\..\output\win\%cpu_mode%\%build_mode%
if exist %output_path% (
rmdir /q /s %output_path%
)
:: 删除临时目录
set temp_path=%script_path%..\temp
if exist %temp_path% (
rmdir /q /s %temp_path%
)
md %temp_path%
cd %temp_path%
set qmake_params=-spec win32-msvc
if /i %debug_mode% == "true" (
set qmake_params=%qmake_params% "CONFIG+=debug" "CONFIG+=qml_debug"
) else (
set qmake_params=%qmake_params% "CONFIG+=qtquickcompiler"
)
:: qmake ../../all.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
qmake ../../all.pro %qmake_params%
if not %errorlevel%==0 (
echo "qmake failed"
goto return
)
:: nmake
:: jom是qt的多线程nmake工具
jom -j8
if not %errorlevel%==0 (
echo "nmake failed"
goto return
)
echo=
echo=
echo ---------------------------------------------------------------
echo finish!!!
echo ---------------------------------------------------------------
set errno=0
:return
cd %old_cd%
exit /B %errno%

BIN
ci/win/jom.exe Executable file

Binary file not shown.