windows-msvc-ninja.bat 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. :: windows-msvc-ninja.bat
  2. :: Windows MSVC - 通用 Windows 平台 MSVC 构建方案
  3. :: 此文件需以 GBK 方案保存,并在 PowerShell 中运行
  4. @echo off
  5. :: 预固化配置
  6. set builddir=build/windows-universal
  7. set installdir=%builddir%/install
  8. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  9. :: ::
  10. :: !!! 定制: 指向用于构建时引用的 MSVC Qt 库位置!!! ::
  11. set QT_MSVC_PREFIX_DIR=C:\Qt\Qt5.14.2\5.14.2\msvc2017_64
  12. :: ::
  13. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  14. :: 构建选项预定义
  15. set CMAKE_OPTIONS=
  16. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -G Ninja
  17. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_PREFIX_PATH=%QT_MSVC_PREFIX_DIR%
  18. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Debug
  19. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_WINDOWS_UNIVERSAL=ON
  20. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT=ON
  21. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT5=ON
  22. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT6=ON
  23. @REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_QT6=ON
  24. :: 在配置时 installdir 表示将要安装的路径
  25. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_INSTALL_PREFIX=%installdir%
  26. :: --------------------------------------------------- ::
  27. :: 检查可用配置接收参数
  28. if "%1" == "run" (
  29. :: 此处 \ 与 / 相反
  30. build\windows-universal\windows-deployqt\Notepad--.app\bin\Notepad--.exe
  31. goto :finish
  32. )
  33. :: --------------------------------------------------- ::
  34. @echo ---- 即将构建 Notepad-- 项目 ----
  35. :: 1. 询问构建的类型
  36. @echo 1. 构建 Debug(默认), 2. 构建 Release
  37. set /p chose="请输入序号: "
  38. if "%chose%" == "2" (
  39. set CMAKE_BUILD_TYPE=Relase
  40. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Relase
  41. ) else (
  42. set CMAKE_BUILD_TYPE=Debug
  43. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Debug
  44. )
  45. :: 2. 询问 QSci 构建的类型
  46. @echo ---- 是否指定 QScint 构建为动态库? 默认(OFF) ----
  47. set /p useshare=输入(on):
  48. if "%useshare%" == "on" (
  49. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DNOTEPAD_BUILD_BY_SHARED=ON
  50. )
  51. :: 3. 询问配置 USE_WINDOWS_UNIVERSAL
  52. @echo ---- 是否配置 USE_WINDOWS_UNIVERSAL? 默认(ON) ----
  53. set /p universal=输入(n):
  54. if not "%universal%" == "n" (
  55. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_WINDOWS_UNIVERSAL=ON
  56. )
  57. :: 4. 询问配置 WINDOWS_DEPLOY_QT
  58. @echo ---- 是否配置 WINDOWS_DEPLOY_QT? 默认(ON) ----
  59. set /p deployqt=输入(n):
  60. if not "%deployqt%" == "n" (
  61. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT=ON
  62. )
  63. :: 5. 询问配置 WINDOWS_DEPLOY_QT5 或 WINDOWS_DEPLOY_QT6 USE_QT6
  64. @echo ---- 是否配置 WINDOWS_DEPLOY_QT5 版本? 默认(5,可选6) ----
  65. set /p deployqt5=输入(6):
  66. if not "%deployqt5%" == "6" (
  67. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT5=ON
  68. ) else (
  69. set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DWINDOWS_DEPLOY_QT6=ON -DUSE_QT6=ON
  70. )
  71. :: ------------------------------------------------------------------- ::
  72. @echo ----------------------- 构建前配置预览 ---------------------------
  73. @echo "cmake -B%builddir% %CMAKE_OPTIONS% ."
  74. @echo "cmake --build %builddir% --config %CMAKE_BUILD_TYPE%"
  75. @echo "cmake --install %builddir% --prefix %installdir%"
  76. @echo "cmake --build %builddir% --target windows-deployqt"
  77. :: ------------------------------------------------------------------- ::
  78. :: 构建前配置 - 寻找硬盘中的 msvc 环境配置
  79. @echo ---- 寻找硬盘中的 msvc 环境配置 ----
  80. set vcvars=
  81. for %%d in (C: D: E: F: G: H:) do (
  82. if exist %%d (
  83. @echo 正在查找硬盘 %%d 中的 VC 配置环境...
  84. pushd %%d\
  85. for /r %%p in (*vcvars64.bat) do (
  86. @echo 发现配置文件: %%p
  87. set vcvars=%%p
  88. popd
  89. goto :set_vcvars
  90. )
  91. popd
  92. )
  93. )
  94. :set_vcvars
  95. if "%vcvars%" == "" (
  96. @echo "could not found vcvars64.bat file"
  97. goto :finish
  98. ) else (
  99. @echo "config MSVC environment..."
  100. call "%vcvars%" amd64
  101. )
  102. :: 正式对项目进行配置、构建、安装、部署
  103. @echo ------------ 准备构建 ------------
  104. cmake -B%builddir% %CMAKE_OPTIONS% .
  105. cmake --build %builddir% --config %CMAKE_BUILD_TYPE%
  106. cmake --install %builddir% --prefix %installdir%
  107. cmake --build %builddir% --target windows-deployqt
  108. goto :finish
  109. :: 正常或异常退出的定位
  110. :finish
  111. pause
  112. :: 本配置模板可在 cmd 命令行 或 Powershell 中运行
  113. :: 本配置模板复制到项目根目录,并定制,可在 Windows 中双击运行
  114. :: 本配置可