buildwin.cmd 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem
  4. rem buildwin.cmd
  5. rem
  6. rem POCO C++ Libraries command-line build script
  7. rem for MS Visual Studio 2008 to 2013
  8. rem
  9. rem Copyright (c) 2006-2017 by Applied Informatics Software Engineering GmbH
  10. rem and Contributors.
  11. rem
  12. rem Original version by Aleksandar Fabijanic.
  13. rem Modified by Guenter Obiltschnig.
  14. rem
  15. rem Usage:
  16. rem ------
  17. rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
  18. rem VS_VERSION: 90|100|110|120|140|150
  19. rem ACTION: build|rebuild|clean
  20. rem LINKMODE: static_mt|static_md|shared|all
  21. rem CONFIGURATION: release|debug|both
  22. rem PLATFORM: Win32|x64|WinCE|WEC2013
  23. rem SAMPLES: samples|nosamples
  24. rem TESTS: tests|notests
  25. rem TOOL: devenv|vcexpress|wdexpress|msbuild
  26. rem
  27. rem VS_VERSION is required argument. Default is build all.
  28. rem Change OPENSSL_DIR to match your setup
  29. set OPENSSL_DIR=C:\OpenSSL
  30. set OPENSSL_INCLUDE=%OPENSSL_DIR%\include
  31. set OPENSSL_LIB=%OPENSSL_DIR%\lib;%OPENSSL_DIR%\lib\VC
  32. set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
  33. set LIB=%LIB%;%OPENSSL_LIB%
  34. rem Change MYSQL_DIR to match your setup
  35. set MYSQL_DIR=C:\PROGRA~1\MySQL\MYSQLS~1.5
  36. set MYSQL_INCLUDE=%MYSQL_DIR%\include
  37. set MYSQL_LIB=%MYSQL_DIR%\lib
  38. set INCLUDE=%INCLUDE%;%MYSQL_INCLUDE%
  39. set LIB=%LIB%;%MYSQL_LIB%
  40. set POCO_BASE=%CD%
  41. set PATH=%POCO_BASE%\bin64;%POCO_BASE%\bin;%PATH%
  42. rem VS_VERSION {90 | 100 | 110 | 120 | 140 | 150}
  43. if "%1"=="" goto usage
  44. set VS_VERSION=vs%1
  45. if %VS_VERSION%==vs150 (
  46. set VS_VARSALL=..\..\VC\Auxiliary\Build\vcvarsall.bat
  47. ) else (
  48. set VS_VARSALL=..\..\VC\vcvarsall.bat
  49. )
  50. rem PLATFORM [Win32|x64|WinCE|WEC2013]
  51. set PLATFORM=%5
  52. if "%PLATFORM%"=="" (set PLATFORM=Win32)
  53. if not "%PLATFORM%"=="Win32" (
  54. if not "%PLATFORM%"=="x64" (
  55. if not "%PLATFORM%"=="WinCE" (
  56. if not "%PLATFORM%"=="WEC2013" goto usage)))
  57. if not defined VCINSTALLDIR (
  58. if %VS_VERSION%==vs90 (
  59. if %PLATFORM%==x64 (
  60. call "%VS90COMNTOOLS%%VS_VARSALL%" amd64
  61. ) else (
  62. call "%VS90COMNTOOLS%%VS_VARSALL%" x86
  63. )
  64. ) else (
  65. if %VS_VERSION%==vs100 (
  66. if %PLATFORM%==x64 (
  67. call "%VS100COMNTOOLS%%VS_VARSALL%" amd64
  68. ) else (
  69. call "%VS100COMNTOOLS%%VS_VARSALL%" x86
  70. )
  71. ) else (
  72. if %VS_VERSION%==vs110 (
  73. if %PLATFORM%==x64 (
  74. call "%VS110COMNTOOLS%%VS_VARSALL%" amd64
  75. ) else (
  76. call "%VS110COMNTOOLS%%VS_VARSALL%" x86
  77. )
  78. ) else (
  79. if %VS_VERSION%==vs120 (
  80. if %PLATFORM%==x64 (
  81. call "%VS120COMNTOOLS%%VS_VARSALL%" amd64
  82. ) else (
  83. call "%VS120COMNTOOLS%%VS_VARSALL%" x86
  84. )
  85. ) else (
  86. if %VS_VERSION%==vs140 (
  87. if %PLATFORM%==x64 (
  88. call "%VS140COMNTOOLS%%VS_VARSALL%" amd64
  89. ) else (
  90. call "%VS140COMNTOOLS%%VS_VARSALL%" x86
  91. )
  92. ) else (
  93. if %VS_VERSION%==vs150 (
  94. if %PLATFORM%==x64 (
  95. call "%VS150COMNTOOLS%%VS_VARSALL%" amd64
  96. ) else (
  97. call "%VS150COMNTOOLS%%VS_VARSALL%" x86
  98. )
  99. )
  100. )
  101. )
  102. )
  103. )
  104. )
  105. )
  106. if not defined VSINSTALLDIR (
  107. echo Error: No Visual C++ environment found.
  108. echo Please run this script from a Visual Studio Command Prompt
  109. echo or run "%%VSnnCOMNTOOLS%%\vsvars32.bat" first.
  110. goto :EOF
  111. )
  112. set VCPROJ_EXT=vcproj
  113. if %VS_VERSION%==vs100 (set VCPROJ_EXT=vcxproj)
  114. if %VS_VERSION%==vs110 (set VCPROJ_EXT=vcxproj)
  115. if %VS_VERSION%==vs120 (set VCPROJ_EXT=vcxproj)
  116. if %VS_VERSION%==vs140 (set VCPROJ_EXT=vcxproj)
  117. if %VS_VERSION%==vs150 (set VCPROJ_EXT=vcxproj)
  118. if "%8"=="" goto use_devenv
  119. set BUILD_TOOL=%8
  120. goto use_custom
  121. :use_devenv
  122. set BUILD_TOOL=devenv
  123. if "%VS_VERSION%"=="vs100" (set BUILD_TOOL=msbuild)
  124. if "%VS_VERSION%"=="vs110" (set BUILD_TOOL=msbuild)
  125. if "%VS_VERSION%"=="vs120" (set BUILD_TOOL=msbuild)
  126. if "%VS_VERSION%"=="vs140" (set BUILD_TOOL=msbuild)
  127. if "%VS_VERSION%"=="vs150" (set BUILD_TOOL=msbuild)
  128. :use_custom
  129. if not "%BUILD_TOOL%"=="msbuild" (set USEENV=/useenv)
  130. if "%BUILD_TOOL%"=="msbuild" (
  131. set ACTIONSW=/t:
  132. set CONFIGSW=/p:Configuration=
  133. set EXTRASW=/m
  134. set USEENV=/p:UseEnv=true
  135. )
  136. if not "%BUILD_TOOL%"=="msbuild" (
  137. set ACTIONSW=/
  138. )
  139. if "%VS_VERSION%"=="vs100" (goto msbuildok)
  140. if "%VS_VERSION%"=="vs110" (goto msbuildok)
  141. if "%VS_VERSION%"=="vs120" (goto msbuildok)
  142. if "%VS_VERSION%"=="vs140" (goto msbuildok)
  143. if "%VS_VERSION%"=="vs150" (goto msbuildok)
  144. if "%BUILD_TOOL%"=="msbuild" (
  145. echo "Cannot use msbuild with Visual Studio 2008 or earlier."
  146. exit /b 2
  147. )
  148. :msbuildok
  149. rem ACTION [build|rebuild|clean]
  150. set ACTION=%2
  151. if "%ACTION%"=="" (set ACTION=build)
  152. if not "%ACTION%"=="build" (
  153. if not "%ACTION%"=="rebuild" (
  154. if not "%ACTION%"=="clean" goto usage))
  155. rem LINKMODE [static_mt|static_md|shared|all]
  156. set LINK_MODE=%3
  157. if "%LINK_MODE%"=="" (set LINK_MODE=all)
  158. if not "%LINK_MODE%"=="static_mt" (
  159. if not "%LINK_MODE%"=="static_md" (
  160. if not "%LINK_MODE%"=="shared" (
  161. if not "%LINK_MODE%"=="all" goto usage)))
  162. rem CONFIGURATION [release|debug|both]
  163. set CONFIGURATION=%4
  164. if "%CONFIGURATION%"=="" (set CONFIGURATION=both)
  165. if not "%CONFIGURATION%"=="release" (
  166. if not "%CONFIGURATION%"=="debug" (
  167. if not "%CONFIGURATION%"=="both" goto usage))
  168. if "%PLATFORM%"=="Win32" (set PLATFORM_SUFFIX=) else (
  169. if "%PLATFORM%"=="x64" (set PLATFORM_SUFFIX=_x64) else (
  170. if "%PLATFORM%"=="WinCE" (set PLATFORM_SUFFIX=_CE) else (
  171. if "%PLATFORM%"=="WEC2013" (set PLATFORM_SUFFIX=_WEC2013))))
  172. if "%PLATFORM%"=="WEC2013" (
  173. if "%WEC2013_PLATFORM%"=="" (
  174. echo WEC2013_PLATFORM not set. Exiting.
  175. exit /b 1
  176. )
  177. set PLATFORMSW=/p:Platform=%WEC2013_PLATFORM%
  178. set USEENV=
  179. if %VS_VERSION%==vs110 (set EXTRASW=/m /p:VisualStudioVersion=11.0)
  180. if %VS_VERSION%==vs120 (set EXTRASW=/m /p:VisualStudioVersion=12.0)
  181. if %VS_VERSION%==vs140 (set EXTRASW=/m /p:VisualStudioVersion=14.0)
  182. if %VS_VERSION%==vs150 (set EXTRASW=/m /p:VisualStudioVersion=15.0)
  183. )
  184. rem SAMPLES [samples|nosamples]
  185. set SAMPLES=%6
  186. if "%SAMPLES%"=="" (set SAMPLES=samples)
  187. rem TESTS [tests|notests]
  188. set TESTS=%7
  189. if "%TESTS%"=="" (set TESTS=notests)
  190. set DEBUG_SHARED=0
  191. set RELEASE_SHARED=0
  192. set DEBUG_STATIC_MT=0
  193. set RELEASE_STATIC_MT=0
  194. set DEBUG_STATIC_MD=0
  195. set RELEASE_STATIC_MD=0
  196. if %LINK_MODE%==shared (
  197. if %CONFIGURATION%==release (set RELEASE_SHARED=1) else (
  198. if %CONFIGURATION%==both (set RELEASE_SHARED=1) else (
  199. if "%CONFIGURATION%"=="" (set RELEASE_SHARED=1))))
  200. if %LINK_MODE%==shared (
  201. if %CONFIGURATION%==debug (set DEBUG_SHARED=1) else (
  202. if %CONFIGURATION%==both (set DEBUG_SHARED=1) else (
  203. if "%CONFIGURATION%"=="" (set DEBUG_SHARED=1))))
  204. if %LINK_MODE%==static_mt (
  205. if %CONFIGURATION%==release (set RELEASE_STATIC_MT=1) else (
  206. if %CONFIGURATION%==both (set RELEASE_STATIC_MT=1) else (
  207. if "%CONFIGURATION%"=="" (set RELEASE_STATIC_MT=1))))
  208. if %LINK_MODE%==static_md (
  209. if %CONFIGURATION%==release (set RELEASE_STATIC_MD=1) else (
  210. if %CONFIGURATION%==both (set RELEASE_STATIC_MD=1) else (
  211. if "%CONFIGURATION%"=="" (set RELEASE_STATIC_MD=1))))
  212. if %LINK_MODE%==static_mt (
  213. if %CONFIGURATION%==debug (set DEBUG_STATIC_MT=1) else (
  214. if %CONFIGURATION%==both (set DEBUG_STATIC_MT=1) else (
  215. if "%CONFIGURATION%"=="" (set DEBUG_STATIC_MT=1))))
  216. if %LINK_MODE%==static_md (
  217. if %CONFIGURATION%==debug (set DEBUG_STATIC_MD=1) else (
  218. if %CONFIGURATION%==both (set DEBUG_STATIC_MD=1) else (
  219. if "%CONFIGURATION%"=="" (set DEBUG_STATIC_MD=1))))
  220. if %LINK_MODE%==all (
  221. if %CONFIGURATION%==debug (
  222. set DEBUG_STATIC_MT=1
  223. set DEBUG_STATIC_MD=1
  224. set DEBUG_SHARED=1) else (
  225. if %CONFIGURATION%==release (
  226. set RELEASE_STATIC_MT=1
  227. set RELEASE_STATIC_MD=1
  228. set RELEASE_SHARED=1) else (
  229. if %CONFIGURATION%==both (
  230. set DEBUG_STATIC_MT=1
  231. set DEBUG_STATIC_MD=1
  232. set DEBUG_SHARED=1
  233. set RELEASE_STATIC_MT=1
  234. set RELEASE_STATIC_MD=1
  235. set RELEASE_SHARED=1) else (
  236. if "%CONFIGURATION%"=="" (
  237. set DEBUG_STATIC_MT=1
  238. set DEBUG_STATIC_MD=1
  239. set DEBUG_SHARED=1
  240. set RELEASE_STATIC_MT=1
  241. set RELEASE_STATIC_MD=1
  242. set RELEASE_SHARED=1)))))
  243. if "%LINK_MODE%"=="" (
  244. if %CONFIGURATION%==debug (
  245. set DEBUG_STATIC_MT=1
  246. set DEBUG_STATIC_MD=1
  247. set DEBUG_SHARED=1) else (
  248. if %CONFIGURATION%==release (
  249. set RELEASE_STATIC_MT=1
  250. set RELEASE_STATIC_MD=1
  251. set RELEASE_SHARED=1) else (
  252. if %CONFIGURATION%==both (
  253. set DEBUG_STATIC_MT=1
  254. set DEBUG_STATIC_MD=1
  255. set DEBUG_SHARED=1
  256. set RELEASE_STATIC_MT=1
  257. set RELEASE_STATIC_MD=1
  258. set RELEASE_SHARED=1) else (
  259. if "%CONFIGURATION%"=="" (
  260. set DEBUG_STATIC_MT=1
  261. set DEBUG_STATIC_MD=1
  262. set DEBUG_SHARED=1
  263. set RELEASE_STATIC_MT=1
  264. set RELEASE_STATIC_MD=1
  265. set RELEASE_SHARED=1)))))
  266. echo.
  267. echo.
  268. echo ########################################################################
  269. echo ####
  270. echo #### STARTING VISUAL STUDIO BUILD (%VS_VERSION%, %PLATFORM%)
  271. echo ####
  272. echo ########################################################################
  273. echo.
  274. echo.
  275. echo The following configurations will be built:
  276. if %DEBUG_SHARED%==1 (echo debug_shared)
  277. if %RELEASE_SHARED%==1 (echo release_shared)
  278. if %DEBUG_STATIC_MT%==1 (echo debug_static_mt)
  279. if %DEBUG_STATIC_MD%==1 (echo debug_static_md)
  280. if %RELEASE_STATIC_MT%==1 (echo release_static_mt)
  281. if %RELEASE_STATIC_MD%==1 (echo release_static_md)
  282. rem build for up to 4 levels deep
  283. for /f %%G in ('findstr /R "." components') do (
  284. if exist %%G (
  285. cd %%G
  286. for /f "tokens=1,2,3,4 delims=/" %%Q in ("%%G") do (
  287. set PROJECT_FILE=%%Q%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT%
  288. set TEST_PROJECT_FILE=testsuite/TestSuite%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT%
  289. if exist !PROJECT_FILE! (
  290. call :build %%G
  291. if ERRORLEVEL 1 goto buildfailed
  292. )
  293. set PROJECT_FILE=%%R%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT%
  294. if exist !PROJECT_FILE! (
  295. call :build %%G
  296. if ERRORLEVEL 1 goto buildfailed
  297. )
  298. set PROJECT_FILE=%%S%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT%
  299. if exist !PROJECT_FILE! (
  300. call :build %%G
  301. if ERRORLEVEL 1 goto buildfailed
  302. )
  303. set PROJECT_FILE=%%T%PLATFORM_SUFFIX%_%VS_VERSION%.%VCPROJ_EXT%
  304. if exist !PROJECT_FILE! (
  305. call :build %%G
  306. if ERRORLEVEL 1 goto buildfailed
  307. )
  308. )
  309. )
  310. cd "%POCO_BASE%"
  311. )
  312. goto samples
  313. rem ////////////////////
  314. rem / build subroutine /
  315. rem ////////////////////
  316. :build
  317. echo.
  318. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  319. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  320. echo ++++ Building [!PROJECT_FILE!]
  321. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  322. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  323. echo.
  324. if %DEBUG_SHARED%==1 (
  325. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !PROJECT_FILE!
  326. if ERRORLEVEL 1 exit /b 1
  327. echo. && echo. && echo.
  328. if %TESTS%==tests (
  329. if exist !TEST_PROJECT_FILE! (
  330. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !TEST_PROJECT_FILE!
  331. if ERRORLEVEL 1 exit /b 1
  332. echo. && echo. && echo.
  333. )
  334. )
  335. )
  336. if %RELEASE_SHARED%==1 (
  337. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !PROJECT_FILE!
  338. if ERRORLEVEL 1 exit /b 1
  339. echo. && echo. && echo.
  340. if %TESTS%==tests (
  341. if exist !TEST_PROJECT_FILE! (
  342. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !TEST_PROJECT_FILE!
  343. if ERRORLEVEL 1 exit /b 1
  344. echo. && echo. && echo.
  345. )
  346. )
  347. )
  348. if %DEBUG_STATIC_MT%==1 (
  349. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !PROJECT_FILE!
  350. if ERRORLEVEL 1 exit /b 1
  351. echo. && echo. && echo.
  352. if %TESTS%==tests (
  353. if exist !TEST_PROJECT_FILE! (
  354. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !TEST_PROJECT_FILE!
  355. if ERRORLEVEL 1 exit /b 1
  356. echo. && echo. && echo.
  357. )
  358. )
  359. )
  360. if %RELEASE_STATIC_MT%==1 (
  361. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !PROJECT_FILE!
  362. if ERRORLEVEL 1 exit /b 1
  363. echo. && echo. && echo.
  364. if %TESTS%==tests (
  365. if exist !TEST_PROJECT_FILE! (
  366. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !TEST_PROJECT_FILE!
  367. if ERRORLEVEL 1 exit /b 1
  368. echo. && echo. && echo.
  369. )
  370. )
  371. )
  372. if %DEBUG_STATIC_MD%==1 (
  373. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !PROJECT_FILE!
  374. if ERRORLEVEL 1 exit /b 1
  375. echo. && echo. && echo.
  376. if %TESTS%==tests (
  377. if exist !TEST_PROJECT_FILE! (
  378. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !TEST_PROJECT_FILE!
  379. if ERRORLEVEL 1 exit /b 1
  380. echo. && echo. && echo.
  381. )
  382. )
  383. )
  384. if %RELEASE_STATIC_MD%==1 (
  385. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !PROJECT_FILE!
  386. if ERRORLEVEL 1 exit /b 1
  387. echo. && echo. && echo.
  388. if %TESTS%==tests (
  389. if exist !TEST_PROJECT_FILE! (
  390. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !TEST_PROJECT_FILE!
  391. if ERRORLEVEL 1 exit /b 1
  392. echo. && echo. && echo.
  393. )
  394. )
  395. )
  396. echo.
  397. echo ------------------------------------------------------------------------
  398. echo ------------------------------------------------------------------------
  399. echo ---- Done building [!PROJECT_FILE!]
  400. echo ------------------------------------------------------------------------
  401. echo ------------------------------------------------------------------------
  402. echo.
  403. exit /b
  404. rem ////////////////////
  405. rem / build samples /
  406. rem ////////////////////
  407. :samples
  408. if %SAMPLES%==nosamples goto :EOF
  409. rem root level component samples
  410. for /f %%G in ('findstr /R "." components') do (
  411. if exist %%G\samples\samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
  412. cd %%G\samples
  413. echo.
  414. echo.
  415. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  416. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  417. echo ++++ Building [%%G/samples]
  418. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  419. echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  420. echo.
  421. set SOLUTION_FILE=samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln
  422. if %DEBUG_SHARED%==1 (
  423. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_shared %PLATFORMSW% !SOLUTION_FILE!
  424. if ERRORLEVEL 1 goto buildfailed
  425. echo. && echo. && echo.
  426. )
  427. if %RELEASE_SHARED%==1 (
  428. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_shared %PLATFORMSW% !SOLUTION_FILE!
  429. if ERRORLEVEL 1 goto buildfailed
  430. echo. && echo. && echo.
  431. )
  432. if %DEBUG_STATIC_MT%==1 (
  433. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_mt %PLATFORMSW% !SOLUTION_FILE!
  434. if ERRORLEVEL 1 goto buildfailed
  435. echo. && echo. && echo.
  436. )
  437. if %RELEASE_STATIC_MT%==1 (
  438. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_mt %PLATFORMSW% !SOLUTION_FILE!
  439. if ERRORLEVEL 1 goto buildfailed
  440. echo. && echo. && echo.
  441. )
  442. if %DEBUG_STATIC_MD%==1 (
  443. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%debug_static_md %PLATFORMSW% !SOLUTION_FILE!
  444. if ERRORLEVEL 1 goto buildfailed
  445. echo. && echo. && echo.
  446. )
  447. if %RELEASE_STATIC_MD%==1 (
  448. !BUILD_TOOL! %USEENV% %EXTRASW% %ACTIONSW%%ACTION% %CONFIGSW%release_static_md %PLATFORMSW% !SOLUTION_FILE!
  449. if ERRORLEVEL 1 goto buildfailed
  450. echo. && echo. && echo.
  451. )
  452. cd "%POCO_BASE%"
  453. echo.
  454. echo ------------------------------------------------------------------------
  455. echo ------------------------------------------------------------------------
  456. echo ---- Done building [%%G/samples]
  457. echo ------------------------------------------------------------------------
  458. echo ------------------------------------------------------------------------
  459. echo.
  460. )
  461. )
  462. echo.
  463. echo ------------------------------------------------------------------------
  464. echo ------------------------------------------------------------------------
  465. echo ---- Build completed.
  466. echo ------------------------------------------------------------------------
  467. echo ------------------------------------------------------------------------
  468. echo.
  469. goto :EOF
  470. rem ////////////////
  471. rem / build failed /
  472. rem ////////////////
  473. :buildfailed
  474. echo.
  475. echo.
  476. echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  477. echo XXX BUILD FAILED. EXITING. XXX
  478. echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  479. echo.
  480. echo.
  481. exit /b 1
  482. :usage
  483. echo Usage:
  484. echo ------
  485. echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
  486. echo VS_VERSION: "90|100|110|120|140|150"
  487. echo ACTION: "build|rebuild|clean"
  488. echo LINKMODE: "static_mt|static_md|shared|all"
  489. echo CONFIGURATION: "release|debug|both"
  490. echo PLATFORM: "Win32|x64|WinCE|WEC2013"
  491. echo SAMPLES: "samples|nosamples"
  492. echo TESTS: "tests|notests"
  493. echo TOOL: "devenv|vcexpress|wdexpress|msbuild"
  494. echo.
  495. echo Default is build all.
  496. endlocal