windows-msvc-ninja.bat 4.6 KB

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