System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 14e2f9e0819e97ae3bf73c6f47e72fbba8062e00:


0000: 40 45 43 48 4f 20 4f 46 46 0d 0a 0d 0a 3a 3a 0d  @ECHO OFF....::.
0010: 0a 3a 3a 20 62 75 69 6c 64 2e 62 61 74 20 2d 2d  .:: build.bat --
0020: 0d 0a 3a 3a 0d 0a 3a 3a 20 57 72 61 70 70 65 72  ..::..:: Wrapper
0030: 20 54 6f 6f 6c 20 66 6f 72 20 4d 53 42 75 69 6c   Tool for MSBuil
0040: 64 0d 0a 3a 3a 0d 0a 3a 3a 20 57 72 69 74 74 65  d..::..:: Writte
0050: 6e 20 62 79 20 4a 6f 65 20 4d 69 73 74 61 63 68  n by Joe Mistach
0060: 6b 69 6e 2e 0d 0a 3a 3a 20 52 65 6c 65 61 73 65  kin...:: Release
0070: 64 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20  d to the public 
0080: 64 6f 6d 61 69 6e 2c 20 75 73 65 20 61 74 20 79  domain, use at y
0090: 6f 75 72 20 6f 77 6e 20 72 69 73 6b 21 0d 0a 3a  our own risk!..:
00a0: 3a 0d 0a 0d 0a 53 45 54 4c 4f 43 41 4c 0d 0a 0d  :....SETLOCAL...
00b0: 0a 52 45 4d 20 53 45 54 20 5f 5f 45 43 48 4f 3d  .REM SET __ECHO=
00c0: 45 43 48 4f 0d 0a 52 45 4d 20 53 45 54 20 5f 5f  ECHO..REM SET __
00d0: 45 43 48 4f 32 3d 45 43 48 4f 0d 0a 52 45 4d 20  ECHO2=ECHO..REM 
00e0: 53 45 54 20 5f 5f 45 43 48 4f 33 3d 45 43 48 4f  SET __ECHO3=ECHO
00f0: 0d 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44  ..IF NOT DEFINED
0100: 20 5f 41 45 43 48 4f 20 28 53 45 54 20 5f 41 45   _AECHO (SET _AE
0110: 43 48 4f 3d 52 45 4d 29 0d 0a 49 46 20 4e 4f 54  CHO=REM)..IF NOT
0120: 20 44 45 46 49 4e 45 44 20 5f 43 45 43 48 4f 20   DEFINED _CECHO 
0130: 28 53 45 54 20 5f 43 45 43 48 4f 3d 52 45 4d 29  (SET _CECHO=REM)
0140: 0d 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44  ..IF NOT DEFINED
0150: 20 5f 56 45 43 48 4f 20 28 53 45 54 20 5f 56 45   _VECHO (SET _VE
0160: 43 48 4f 3d 52 45 4d 29 0d 0a 0d 0a 25 5f 41 45  CHO=REM)....%_AE
0170: 43 48 4f 25 20 52 75 6e 6e 69 6e 67 20 25 30 20  CHO% Running %0 
0180: 25 2a 0d 0a 0d 0a 53 45 54 20 44 55 4d 4d 59 32  %*....SET DUMMY2
0190: 3d 25 33 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45  =%3....IF DEFINE
01a0: 44 20 44 55 4d 4d 59 32 20 28 0d 0a 20 20 47 4f  D DUMMY2 (..  GO
01b0: 54 4f 20 75 73 61 67 65 0d 0a 29 0d 0a 0d 0a 53  TO usage..)....S
01c0: 45 54 20 52 4f 4f 54 3d 25 7e 64 70 30 5c 2e 2e  ET ROOT=%~dp0\..
01d0: 0d 0a 53 45 54 20 52 4f 4f 54 3d 25 52 4f 4f 54  ..SET ROOT=%ROOT
01e0: 3a 5c 5c 3d 5c 25 0d 0a 0d 0a 25 5f 56 45 43 48  :\\=\%....%_VECH
01f0: 4f 25 20 52 6f 6f 74 20 3d 20 27 25 52 4f 4f 54  O% Root = '%ROOT
0200: 25 27 0d 0a 0d 0a 53 45 54 20 43 4f 4e 46 49 47  %'....SET CONFIG
0210: 55 52 41 54 49 4f 4e 3d 25 31 0d 0a 0d 0a 49 46  URATION=%1....IF
0220: 20 44 45 46 49 4e 45 44 20 43 4f 4e 46 49 47 55   DEFINED CONFIGU
0230: 52 41 54 49 4f 4e 20 28 0d 0a 20 20 43 41 4c 4c  RATION (..  CALL
0240: 20 3a 66 6e 5f 55 6e 71 75 6f 74 65 56 61 72 69   :fn_UnquoteVari
0250: 61 62 6c 65 20 43 4f 4e 46 49 47 55 52 41 54 49  able CONFIGURATI
0260: 4f 4e 0d 0a 29 20 45 4c 53 45 20 28 0d 0a 20 20  ON..) ELSE (..  
0270: 25 5f 41 45 43 48 4f 25 20 4e 6f 20 63 6f 6e 66  %_AECHO% No conf
0280: 69 67 75 72 61 74 69 6f 6e 20 73 70 65 63 69 66  iguration specif
0290: 69 65 64 2c 20 75 73 69 6e 67 20 64 65 66 61 75  ied, using defau
02a0: 6c 74 2e 2e 2e 0d 0a 20 20 53 45 54 20 43 4f 4e  lt.....  SET CON
02b0: 46 49 47 55 52 41 54 49 4f 4e 3d 52 65 6c 65 61  FIGURATION=Relea
02c0: 73 65 0d 0a 29 0d 0a 0d 0a 25 5f 56 45 43 48 4f  se..)....%_VECHO
02d0: 25 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  % Configuration 
02e0: 3d 20 27 25 43 4f 4e 46 49 47 55 52 41 54 49 4f  = '%CONFIGURATIO
02f0: 4e 25 27 0d 0a 0d 0a 53 45 54 20 50 4c 41 54 46  N%'....SET PLATF
0300: 4f 52 4d 3d 25 32 0d 0a 0d 0a 49 46 20 44 45 46  ORM=%2....IF DEF
0310: 49 4e 45 44 20 50 4c 41 54 46 4f 52 4d 20 28 0d  INED PLATFORM (.
0320: 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 55 6e 71 75  .  CALL :fn_Unqu
0330: 6f 74 65 56 61 72 69 61 62 6c 65 20 50 4c 41 54  oteVariable PLAT
0340: 46 4f 52 4d 0d 0a 29 20 45 4c 53 45 20 28 0d 0a  FORM..) ELSE (..
0350: 20 20 25 5f 41 45 43 48 4f 25 20 4e 6f 20 70 6c    %_AECHO% No pl
0360: 61 74 66 6f 72 6d 20 73 70 65 63 69 66 69 65 64  atform specified
0370: 2c 20 75 73 69 6e 67 20 64 65 66 61 75 6c 74 2e  , using default.
0380: 2e 2e 0d 0a 20 20 53 45 54 20 50 4c 41 54 46 4f  ....  SET PLATFO
0390: 52 4d 3d 57 69 6e 33 32 0d 0a 29 0d 0a 0d 0a 25  RM=Win32..)....%
03a0: 5f 56 45 43 48 4f 25 20 50 6c 61 74 66 6f 72 6d  _VECHO% Platform
03b0: 20 3d 20 27 25 50 4c 41 54 46 4f 52 4d 25 27 0d   = '%PLATFORM%'.
03c0: 0a 0d 0a 53 45 54 20 42 41 53 45 5f 43 4f 4e 46  ...SET BASE_CONF
03d0: 49 47 55 52 41 54 49 4f 4e 3d 25 43 4f 4e 46 49  IGURATION=%CONFI
03e0: 47 55 52 41 54 49 4f 4e 25 0d 0a 53 45 54 20 42  GURATION%..SET B
03f0: 41 53 45 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f  ASE_CONFIGURATIO
0400: 4e 3d 25 42 41 53 45 5f 43 4f 4e 46 49 47 55 52  N=%BASE_CONFIGUR
0410: 41 54 49 4f 4e 3a 4d 61 6e 61 67 65 64 4f 6e 6c  ATION:ManagedOnl
0420: 79 3d 25 0d 0a 53 45 54 20 42 41 53 45 5f 43 4f  y=%..SET BASE_CO
0430: 4e 46 49 47 55 52 41 54 49 4f 4e 3d 25 42 41 53  NFIGURATION=%BAS
0440: 45 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f 4e 3a  E_CONFIGURATION:
0450: 4e 61 74 69 76 65 4f 6e 6c 79 3d 25 0d 0a 0d 0a  NativeOnly=%....
0460: 25 5f 56 45 43 48 4f 25 20 42 61 73 65 43 6f 6e  %_VECHO% BaseCon
0470: 66 69 67 75 72 61 74 69 6f 6e 20 3d 20 27 25 42  figuration = '%B
0480: 41 53 45 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f  ASE_CONFIGURATIO
0490: 4e 25 27 0d 0a 0d 0a 53 45 54 20 54 4f 4f 4c 53  N%'....SET TOOLS
04a0: 3d 25 7e 64 70 30 0d 0a 53 45 54 20 54 4f 4f 4c  =%~dp0..SET TOOL
04b0: 53 3d 25 54 4f 4f 4c 53 3a 7e 30 2c 2d 31 25 0d  S=%TOOLS:~0,-1%.
04c0: 0a 0d 0a 25 5f 56 45 43 48 4f 25 20 54 6f 6f 6c  ...%_VECHO% Tool
04d0: 73 20 3d 20 27 25 54 4f 4f 4c 53 25 27 0d 0a 0d  s = '%TOOLS%'...
04e0: 0a 49 46 20 45 58 49 53 54 20 22 25 54 4f 4f 4c  .IF EXIST "%TOOL
04f0: 53 25 5c 73 65 74 5f 25 43 4f 4e 46 49 47 55 52  S%\set_%CONFIGUR
0500: 41 54 49 4f 4e 25 5f 25 50 4c 41 54 46 4f 52 4d  ATION%_%PLATFORM
0510: 25 2e 62 61 74 22 20 28 0d 0a 20 20 43 41 4c 4c  %.bat" (..  CALL
0520: 20 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72 4c   :fn_ResetErrorL
0530: 65 76 65 6c 0d 0a 0d 0a 20 20 25 5f 41 45 43 48  evel....  %_AECH
0540: 4f 25 20 52 75 6e 6e 69 6e 67 20 22 25 54 4f 4f  O% Running "%TOO
0550: 4c 53 25 5c 73 65 74 5f 25 43 4f 4e 46 49 47 55  LS%\set_%CONFIGU
0560: 52 41 54 49 4f 4e 25 5f 25 50 4c 41 54 46 4f 52  RATION%_%PLATFOR
0570: 4d 25 2e 62 61 74 22 2e 2e 2e 0d 0a 20 20 25 5f  M%.bat".....  %_
0580: 5f 45 43 48 4f 33 25 20 43 41 4c 4c 20 22 25 54  _ECHO3% CALL "%T
0590: 4f 4f 4c 53 25 5c 73 65 74 5f 25 43 4f 4e 46 49  OOLS%\set_%CONFI
05a0: 47 55 52 41 54 49 4f 4e 25 5f 25 50 4c 41 54 46  GURATION%_%PLATF
05b0: 4f 52 4d 25 2e 62 61 74 22 0d 0a 0d 0a 20 20 49  ORM%.bat"....  I
05c0: 46 20 45 52 52 4f 52 4c 45 56 45 4c 20 31 20 28  F ERRORLEVEL 1 (
05d0: 0d 0a 20 20 20 20 45 43 48 4f 20 46 69 6c 65 20  ..    ECHO File 
05e0: 22 25 54 4f 4f 4c 53 25 5c 73 65 74 5f 25 43 4f  "%TOOLS%\set_%CO
05f0: 4e 46 49 47 55 52 41 54 49 4f 4e 25 5f 25 50 4c  NFIGURATION%_%PL
0600: 41 54 46 4f 52 4d 25 2e 62 61 74 22 20 66 61 69  ATFORM%.bat" fai
0610: 6c 65 64 2e 0d 0a 20 20 20 20 47 4f 54 4f 20 65  led...    GOTO e
0620: 72 72 6f 72 73 0d 0a 20 20 29 0d 0a 29 0d 0a 0d  rrors..  )..)...
0630: 0a 49 46 20 45 58 49 53 54 20 22 25 54 4f 4f 4c  .IF EXIST "%TOOL
0640: 53 25 5c 73 65 74 5f 75 73 65 72 5f 25 55 53 45  S%\set_user_%USE
0650: 52 4e 41 4d 45 25 5f 25 42 41 53 45 5f 43 4f 4e  RNAME%_%BASE_CON
0660: 46 49 47 55 52 41 54 49 4f 4e 25 5f 25 50 4c 41  FIGURATION%_%PLA
0670: 54 46 4f 52 4d 25 2e 62 61 74 22 20 28 0d 0a 20  TFORM%.bat" (.. 
0680: 20 43 41 4c 4c 20 3a 66 6e 5f 52 65 73 65 74 45   CALL :fn_ResetE
0690: 72 72 6f 72 4c 65 76 65 6c 0d 0a 0d 0a 20 20 25  rrorLevel....  %
06a0: 5f 41 45 43 48 4f 25 20 52 75 6e 6e 69 6e 67 20  _AECHO% Running 
06b0: 22 25 54 4f 4f 4c 53 25 5c 73 65 74 5f 75 73 65  "%TOOLS%\set_use
06c0: 72 5f 25 55 53 45 52 4e 41 4d 45 25 5f 25 42 41  r_%USERNAME%_%BA
06d0: 53 45 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f 4e  SE_CONFIGURATION
06e0: 25 5f 25 50 4c 41 54 46 4f 52 4d 25 2e 62 61 74  %_%PLATFORM%.bat
06f0: 22 2e 2e 2e 0d 0a 20 20 25 5f 5f 45 43 48 4f 33  ".....  %__ECHO3
0700: 25 20 43 41 4c 4c 20 22 25 54 4f 4f 4c 53 25 5c  % CALL "%TOOLS%\
0710: 73 65 74 5f 75 73 65 72 5f 25 55 53 45 52 4e 41  set_user_%USERNA
0720: 4d 45 25 5f 25 42 41 53 45 5f 43 4f 4e 46 49 47  ME%_%BASE_CONFIG
0730: 55 52 41 54 49 4f 4e 25 5f 25 50 4c 41 54 46 4f  URATION%_%PLATFO
0740: 52 4d 25 2e 62 61 74 22 0d 0a 0d 0a 20 20 49 46  RM%.bat"....  IF
0750: 20 45 52 52 4f 52 4c 45 56 45 4c 20 31 20 28 0d   ERRORLEVEL 1 (.
0760: 0a 20 20 20 20 45 43 48 4f 20 46 69 6c 65 20 22  .    ECHO File "
0770: 25 54 4f 4f 4c 53 25 5c 73 65 74 5f 75 73 65 72  %TOOLS%\set_user
0780: 5f 25 55 53 45 52 4e 41 4d 45 25 5f 25 42 41 53  _%USERNAME%_%BAS
0790: 45 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f 4e 25  E_CONFIGURATION%
07a0: 5f 25 50 4c 41 54 46 4f 52 4d 25 2e 62 61 74 22  _%PLATFORM%.bat"
07b0: 20 66 61 69 6c 65 64 2e 0d 0a 20 20 20 20 47 4f   failed...    GO
07c0: 54 4f 20 65 72 72 6f 72 73 0d 0a 20 20 29 0d 0a  TO errors..  )..
07d0: 29 0d 0a 0d 0a 49 46 20 45 58 49 53 54 20 22 25  )....IF EXIST "%
07e0: 54 4f 4f 4c 53 25 5c 73 65 74 5f 75 73 65 72 5f  TOOLS%\set_user_
07f0: 25 55 53 45 52 4e 41 4d 45 25 5f 25 42 41 53 45  %USERNAME%_%BASE
0800: 5f 43 4f 4e 46 49 47 55 52 41 54 49 4f 4e 25 2e  _CONFIGURATION%.
0810: 62 61 74 22 20 28 0d 0a 20 20 43 41 4c 4c 20 3a  bat" (..  CALL :
0820: 66 6e 5f 52 65 73 65 74 45 72 72 6f 72 4c 65 76  fn_ResetErrorLev
0830: 65 6c 0d 0a 0d 0a 20 20 25 5f 41 45 43 48 4f 25  el....  %_AECHO%
0840: 20 52 75 6e 6e 69 6e 67 20 22 25 54 4f 4f 4c 53   Running "%TOOLS
0850: 25 5c 73 65 74 5f 75 73 65 72 5f 25 55 53 45 52  %\set_user_%USER
0860: 4e 41 4d 45 25 5f 25 42 41 53 45 5f 43 4f 4e 46  NAME%_%BASE_CONF
0870: 49 47 55 52 41 54 49 4f 4e 25 2e 62 61 74 22 2e  IGURATION%.bat".
0880: 2e 2e 0d 0a 20 20 25 5f 5f 45 43 48 4f 33 25 20  ....  %__ECHO3% 
0890: 43 41 4c 4c 20 22 25 54 4f 4f 4c 53 25 5c 73 65  CALL "%TOOLS%\se
08a0: 74 5f 75 73 65 72 5f 25 55 53 45 52 4e 41 4d 45  t_user_%USERNAME
08b0: 25 5f 25 42 41 53 45 5f 43 4f 4e 46 49 47 55 52  %_%BASE_CONFIGUR
08c0: 41 54 49 4f 4e 25 2e 62 61 74 22 0d 0a 0d 0a 20  ATION%.bat".... 
08d0: 20 49 46 20 45 52 52 4f 52 4c 45 56 45 4c 20 31   IF ERRORLEVEL 1
08e0: 20 28 0d 0a 20 20 20 20 45 43 48 4f 20 46 69 6c   (..    ECHO Fil
08f0: 65 20 22 25 54 4f 4f 4c 53 25 5c 73 65 74 5f 75  e "%TOOLS%\set_u
0900: 73 65 72 5f 25 55 53 45 52 4e 41 4d 45 25 5f 25  ser_%USERNAME%_%
0910: 42 41 53 45 5f 43 4f 4e 46 49 47 55 52 41 54 49  BASE_CONFIGURATI
0920: 4f 4e 25 2e 62 61 74 22 20 66 61 69 6c 65 64 2e  ON%.bat" failed.
0930: 0d 0a 20 20 20 20 47 4f 54 4f 20 65 72 72 6f 72  ..    GOTO error
0940: 73 0d 0a 20 20 29 0d 0a 29 0d 0a 0d 0a 49 46 20  s..  )..)....IF 
0950: 45 58 49 53 54 20 22 25 54 4f 4f 4c 53 25 5c 73  EXIST "%TOOLS%\s
0960: 65 74 5f 75 73 65 72 5f 25 55 53 45 52 4e 41 4d  et_user_%USERNAM
0970: 45 25 2e 62 61 74 22 20 28 0d 0a 20 20 43 41 4c  E%.bat" (..  CAL
0980: 4c 20 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72  L :fn_ResetError
0990: 4c 65 76 65 6c 0d 0a 0d 0a 20 20 25 5f 41 45 43  Level....  %_AEC
09a0: 48 4f 25 20 52 75 6e 6e 69 6e 67 20 22 25 54 4f  HO% Running "%TO
09b0: 4f 4c 53 25 5c 73 65 74 5f 75 73 65 72 5f 25 55  OLS%\set_user_%U
09c0: 53 45 52 4e 41 4d 45 25 2e 62 61 74 22 2e 2e 2e  SERNAME%.bat"...
09d0: 0d 0a 20 20 25 5f 5f 45 43 48 4f 33 25 20 43 41  ..  %__ECHO3% CA
09e0: 4c 4c 20 22 25 54 4f 4f 4c 53 25 5c 73 65 74 5f  LL "%TOOLS%\set_
09f0: 75 73 65 72 5f 25 55 53 45 52 4e 41 4d 45 25 2e  user_%USERNAME%.
0a00: 62 61 74 22 0d 0a 0d 0a 20 20 49 46 20 45 52 52  bat"....  IF ERR
0a10: 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20  ORLEVEL 1 (..   
0a20: 20 45 43 48 4f 20 46 69 6c 65 20 22 25 54 4f 4f   ECHO File "%TOO
0a30: 4c 53 25 5c 73 65 74 5f 75 73 65 72 5f 25 55 53  LS%\set_user_%US
0a40: 45 52 4e 41 4d 45 25 2e 62 61 74 22 20 66 61 69  ERNAME%.bat" fai
0a50: 6c 65 64 2e 0d 0a 20 20 20 20 47 4f 54 4f 20 65  led...    GOTO e
0a60: 72 72 6f 72 73 0d 0a 20 20 29 0d 0a 29 0d 0a 0d  rrors..  )..)...
0a70: 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20  .IF NOT DEFINED 
0a80: 4d 53 42 55 49 4c 44 20 28 0d 0a 20 20 53 45 54  MSBUILD (..  SET
0a90: 20 4d 53 42 55 49 4c 44 3d 4d 53 42 75 69 6c 64   MSBUILD=MSBuild
0aa0: 2e 65 78 65 0d 0a 29 0d 0a 0d 0a 25 5f 56 45 43  .exe..)....%_VEC
0ab0: 48 4f 25 20 4d 73 42 75 69 6c 64 20 3d 20 27 25  HO% MsBuild = '%
0ac0: 4d 53 42 55 49 4c 44 25 27 0d 0a 0d 0a 49 46 20  MSBUILD%'....IF 
0ad0: 4e 4f 54 20 44 45 46 49 4e 45 44 20 43 53 43 20  NOT DEFINED CSC 
0ae0: 28 0d 0a 20 20 53 45 54 20 43 53 43 3d 63 73 63  (..  SET CSC=csc
0af0: 2e 65 78 65 0d 0a 29 0d 0a 0d 0a 25 5f 56 45 43  .exe..)....%_VEC
0b00: 48 4f 25 20 43 73 63 20 3d 20 27 25 43 53 43 25  HO% Csc = '%CSC%
0b10: 27 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44 20  '....IF DEFINED 
0b20: 4e 45 54 46 58 32 30 4f 4e 4c 59 20 28 0d 0a 20  NETFX20ONLY (.. 
0b30: 20 25 5f 41 45 43 48 4f 25 20 46 6f 72 63 69 6e   %_AECHO% Forcin
0b40: 67 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65  g the use of the
0b50: 20 2e 4e 45 54 20 46 72 61 6d 65 77 6f 72 6b 20   .NET Framework 
0b60: 32 2e 30 2e 2e 2e 0d 0a 20 20 53 45 54 20 59 45  2.0.....  SET YE
0b70: 41 52 3d 32 30 30 35 0d 0a 20 20 43 41 4c 4c 20  AR=2005..  CALL 
0b80: 3a 66 6e 5f 43 68 65 63 6b 46 72 61 6d 65 77 6f  :fn_CheckFramewo
0b90: 72 6b 20 76 32 2e 30 2e 35 30 37 32 37 0d 0a 20  rk v2.0.50727.. 
0ba0: 20 47 4f 54 4f 20 73 6b 69 70 5f 6e 65 74 46 78   GOTO skip_netFx
0bb0: 43 68 65 63 6b 0d 0a 29 0d 0a 0d 0a 49 46 20 44  Check..)....IF D
0bc0: 45 46 49 4e 45 44 20 4e 45 54 46 58 33 35 4f 4e  EFINED NETFX35ON
0bd0: 4c 59 20 28 0d 0a 20 20 25 5f 41 45 43 48 4f 25  LY (..  %_AECHO%
0be0: 20 46 6f 72 63 69 6e 67 20 74 68 65 20 75 73 65   Forcing the use
0bf0: 20 6f 66 20 74 68 65 20 2e 4e 45 54 20 46 72 61   of the .NET Fra
0c00: 6d 65 77 6f 72 6b 20 33 2e 35 2e 2e 2e 0d 0a 20  mework 3.5..... 
0c10: 20 53 45 54 20 59 45 41 52 3d 32 30 30 38 0d 0a   SET YEAR=2008..
0c20: 20 20 43 41 4c 4c 20 3a 66 6e 5f 43 68 65 63 6b    CALL :fn_Check
0c30: 46 72 61 6d 65 77 6f 72 6b 20 76 33 2e 35 0d 0a  Framework v3.5..
0c40: 20 20 47 4f 54 4f 20 73 6b 69 70 5f 6e 65 74 46    GOTO skip_netF
0c50: 78 43 68 65 63 6b 0d 0a 29 0d 0a 0d 0a 49 46 20  xCheck..)....IF 
0c60: 44 45 46 49 4e 45 44 20 4e 45 54 46 58 34 30 4f  DEFINED NETFX40O
0c70: 4e 4c 59 20 28 0d 0a 20 20 25 5f 41 45 43 48 4f  NLY (..  %_AECHO
0c80: 25 20 46 6f 72 63 69 6e 67 20 74 68 65 20 75 73  % Forcing the us
0c90: 65 20 6f 66 20 74 68 65 20 2e 4e 45 54 20 46 72  e of the .NET Fr
0ca0: 61 6d 65 77 6f 72 6b 20 34 2e 30 2e 2e 2e 0d 0a  amework 4.0.....
0cb0: 20 20 53 45 54 20 59 45 41 52 3d 32 30 31 30 0d    SET YEAR=2010.
0cc0: 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 43 68 65 63  .  CALL :fn_Chec
0cd0: 6b 46 72 61 6d 65 77 6f 72 6b 20 76 34 2e 30 2e  kFramework v4.0.
0ce0: 33 30 33 31 39 0d 0a 20 20 47 4f 54 4f 20 73 6b  30319..  GOTO sk
0cf0: 69 70 5f 6e 65 74 46 78 43 68 65 63 6b 0d 0a 29  ip_netFxCheck..)
0d00: 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44 20 4e  ....IF DEFINED N
0d10: 45 54 46 58 34 35 4f 4e 4c 59 20 28 0d 0a 20 20  ETFX45ONLY (..  
0d20: 25 5f 41 45 43 48 4f 25 20 46 6f 72 63 69 6e 67  %_AECHO% Forcing
0d30: 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20   the use of the 
0d40: 2e 4e 45 54 20 46 72 61 6d 65 77 6f 72 6b 20 34  .NET Framework 4
0d50: 2e 35 2e 2e 2e 0d 0a 20 20 53 45 54 20 59 45 41  .5.....  SET YEA
0d60: 52 3d 32 30 31 32 0d 0a 20 20 43 41 4c 4c 20 3a  R=2012..  CALL :
0d70: 66 6e 5f 43 68 65 63 6b 46 72 61 6d 65 77 6f 72  fn_CheckFramewor
0d80: 6b 20 76 34 2e 30 2e 33 30 33 31 39 0d 0a 20 20  k v4.0.30319..  
0d90: 47 4f 54 4f 20 73 6b 69 70 5f 6e 65 74 46 78 43  GOTO skip_netFxC
0da0: 68 65 63 6b 0d 0a 29 0d 0a 0d 0a 49 46 20 44 45  heck..)....IF DE
0db0: 46 49 4e 45 44 20 4e 45 54 46 58 34 35 31 4f 4e  FINED NETFX451ON
0dc0: 4c 59 20 28 0d 0a 20 20 25 5f 41 45 43 48 4f 25  LY (..  %_AECHO%
0dd0: 20 46 6f 72 63 69 6e 67 20 74 68 65 20 75 73 65   Forcing the use
0de0: 20 6f 66 20 74 68 65 20 2e 4e 45 54 20 46 72 61   of the .NET Fra
0df0: 6d 65 77 6f 72 6b 20 34 2e 35 2e 31 2e 2e 2e 0d  mework 4.5.1....
0e00: 0a 20 20 53 45 54 20 59 45 41 52 3d 32 30 31 33  .  SET YEAR=2013
0e10: 0d 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 43 68 65  ..  CALL :fn_Che
0e20: 63 6b 46 72 61 6d 65 77 6f 72 6b 20 76 34 2e 30  ckFramework v4.0
0e30: 2e 33 30 33 31 39 0d 0a 20 20 47 4f 54 4f 20 73  .30319..  GOTO s
0e40: 6b 69 70 5f 6e 65 74 46 78 43 68 65 63 6b 0d 0a  kip_netFxCheck..
0e50: 29 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44 20  )....IF DEFINED 
0e60: 46 52 41 4d 45 57 4f 52 4b 44 49 52 20 28 0d 0a  FRAMEWORKDIR (..
0e70: 20 20 49 46 20 4e 4f 54 20 45 58 49 53 54 20 22    IF NOT EXIST "
0e80: 25 46 52 41 4d 45 57 4f 52 4b 44 49 52 25 22 20  %FRAMEWORKDIR%" 
0e90: 28 0d 0a 20 20 20 20 43 41 4c 4c 20 3a 66 6e 5f  (..    CALL :fn_
0ea0: 55 6e 73 65 74 56 61 72 69 61 62 6c 65 20 46 52  UnsetVariable FR
0eb0: 41 4d 45 57 4f 52 4b 44 49 52 0d 0a 20 20 29 0d  AMEWORKDIR..  ).
0ec0: 0a 29 0d 0a 0d 0a 49 46 20 44 45 46 49 4e 45 44  .)....IF DEFINED
0ed0: 20 46 52 41 4d 45 57 4f 52 4b 44 49 52 20 28 0d   FRAMEWORKDIR (.
0ee0: 0a 20 20 49 46 20 4e 4f 54 20 45 58 49 53 54 20  .  IF NOT EXIST 
0ef0: 22 25 46 52 41 4d 45 57 4f 52 4b 44 49 52 25 5c  "%FRAMEWORKDIR%\
0f00: 25 4d 53 42 55 49 4c 44 25 22 20 28 0d 0a 20 20  %MSBUILD%" (..  
0f10: 20 20 43 41 4c 4c 20 3a 66 6e 5f 55 6e 73 65 74    CALL :fn_Unset
0f20: 56 61 72 69 61 62 6c 65 20 46 52 41 4d 45 57 4f  Variable FRAMEWO
0f30: 52 4b 44 49 52 0d 0a 20 20 29 0d 0a 20 20 49 46  RKDIR..  )..  IF
0f40: 20 4e 4f 54 20 45 58 49 53 54 20 22 25 46 52 41   NOT EXIST "%FRA
0f50: 4d 45 57 4f 52 4b 44 49 52 25 5c 25 43 53 43 25  MEWORKDIR%\%CSC%
0f60: 22 20 28 0d 0a 20 20 20 20 43 41 4c 4c 20 3a 66  " (..    CALL :f
0f70: 6e 5f 55 6e 73 65 74 56 61 72 69 61 62 6c 65 20  n_UnsetVariable 
0f80: 46 52 41 4d 45 57 4f 52 4b 44 49 52 0d 0a 20 20  FRAMEWORKDIR..  
0f90: 29 0d 0a 29 0d 0a 0d 0a 49 46 20 4e 4f 54 20 44  )..)....IF NOT D
0fa0: 45 46 49 4e 45 44 20 46 52 41 4d 45 57 4f 52 4b  EFINED FRAMEWORK
0fb0: 44 49 52 20 28 0d 0a 20 20 25 5f 41 45 43 48 4f  DIR (..  %_AECHO
0fc0: 25 20 43 68 65 63 6b 69 6e 67 20 66 6f 72 20 74  % Checking for t
0fd0: 68 65 20 2e 4e 45 54 20 46 72 61 6d 65 77 6f 72  he .NET Framewor
0fe0: 6b 20 34 2e 30 2e 2e 2e 0d 0a 20 20 53 45 54 20  k 4.0.....  SET 
0ff0: 59 45 41 52 3d 32 30 31 30 0d 0a 20 20 43 41 4c  YEAR=2010..  CAL
1000: 4c 20 3a 66 6e 5f 43 68 65 63 6b 46 72 61 6d 65  L :fn_CheckFrame
1010: 77 6f 72 6b 20 76 34 2e 30 2e 33 30 33 31 39 0d  work v4.0.30319.
1020: 0a 29 0d 0a 0d 0a 49 46 20 4e 4f 54 20 45 58 49  .)....IF NOT EXI
1030: 53 54 20 22 25 46 52 41 4d 45 57 4f 52 4b 44 49  ST "%FRAMEWORKDI
1040: 52 25 22 20 28 0d 0a 20 20 25 5f 41 45 43 48 4f  R%" (..  %_AECHO
1050: 25 20 43 68 65 63 6b 69 6e 67 20 66 6f 72 20 74  % Checking for t
1060: 68 65 20 2e 4e 45 54 20 46 72 61 6d 65 77 6f 72  he .NET Framewor
1070: 6b 20 33 2e 35 2e 2e 2e 0d 0a 20 20 53 45 54 20  k 3.5.....  SET 
1080: 59 45 41 52 3d 32 30 30 38 0d 0a 20 20 43 41 4c  YEAR=2008..  CAL
1090: 4c 20 3a 66 6e 5f 43 68 65 63 6b 46 72 61 6d 65  L :fn_CheckFrame
10a0: 77 6f 72 6b 20 76 33 2e 35 0d 0a 29 0d 0a 0d 0a  work v3.5..)....
10b0: 49 46 20 4e 4f 54 20 45 58 49 53 54 20 22 25 46  IF NOT EXIST "%F
10c0: 52 41 4d 45 57 4f 52 4b 44 49 52 25 22 20 28 0d  RAMEWORKDIR%" (.
10d0: 0a 20 20 25 5f 41 45 43 48 4f 25 20 43 68 65 63  .  %_AECHO% Chec
10e0: 6b 69 6e 67 20 66 6f 72 20 74 68 65 20 2e 4e 45  king for the .NE
10f0: 54 20 46 72 61 6d 65 77 6f 72 6b 20 32 2e 30 2e  T Framework 2.0.
1100: 2e 2e 0d 0a 20 20 53 45 54 20 59 45 41 52 3d 32  ....  SET YEAR=2
1110: 30 30 35 0d 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f  005..  CALL :fn_
1120: 43 68 65 63 6b 46 72 61 6d 65 77 6f 72 6b 20 76  CheckFramework v
1130: 32 2e 30 2e 35 30 37 32 37 0d 0a 29 0d 0a 0d 0a  2.0.50727..)....
1140: 3a 73 6b 69 70 5f 6e 65 74 46 78 43 68 65 63 6b  :skip_netFxCheck
1150: 0d 0a 0d 0a 25 5f 56 45 43 48 4f 25 20 59 65 61  ....%_VECHO% Yea
1160: 72 20 3d 20 27 25 59 45 41 52 25 27 0d 0a 25 5f  r = '%YEAR%'..%_
1170: 56 45 43 48 4f 25 20 46 72 61 6d 65 77 6f 72 6b  VECHO% Framework
1180: 44 69 72 20 3d 20 27 25 46 52 41 4d 45 57 4f 52  Dir = '%FRAMEWOR
1190: 4b 44 49 52 25 27 0d 0a 0d 0a 49 46 20 4e 4f 54  KDIR%'....IF NOT
11a0: 20 44 45 46 49 4e 45 44 20 46 52 41 4d 45 57 4f   DEFINED FRAMEWO
11b0: 52 4b 44 49 52 20 28 0d 0a 20 20 45 43 48 4f 2e  RKDIR (..  ECHO.
11c0: 0d 0a 20 20 45 43 48 4f 20 54 68 65 20 2e 4e 45  ..  ECHO The .NE
11d0: 54 20 46 72 61 6d 65 77 6f 72 6b 20 64 69 72 65  T Framework dire
11e0: 63 74 6f 72 79 20 22 46 52 41 4d 45 57 4f 52 4b  ctory "FRAMEWORK
11f0: 44 49 52 22 20 69 73 20 6e 6f 74 20 64 65 66 69  DIR" is not defi
1200: 6e 65 64 2e 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20  ned...  ECHO... 
1210: 20 45 43 48 4f 20 50 6c 65 61 73 65 20 69 6e 73   ECHO Please ins
1220: 74 61 6c 6c 20 74 68 65 20 2e 4e 45 54 20 46 72  tall the .NET Fr
1230: 61 6d 65 77 6f 72 6b 20 6f 72 20 73 65 74 20 74  amework or set t
1240: 68 65 20 22 46 52 41 4d 45 57 4f 52 4b 44 49 52  he "FRAMEWORKDIR
1250: 22 0d 0a 20 20 45 43 48 4f 20 65 6e 76 69 72 6f  "..  ECHO enviro
1260: 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 74  nment variable t
1270: 6f 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77  o the location w
1280: 68 65 72 65 20 69 74 20 69 73 20 69 6e 73 74 61  here it is insta
1290: 6c 6c 65 64 2e 0d 0a 20 20 45 43 48 4f 2e 0d 0a  lled...  ECHO...
12a0: 20 20 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29    GOTO errors..)
12b0: 0d 0a 0d 0a 49 46 20 4e 4f 54 20 45 58 49 53 54  ....IF NOT EXIST
12c0: 20 22 25 46 52 41 4d 45 57 4f 52 4b 44 49 52 25   "%FRAMEWORKDIR%
12d0: 22 20 28 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20  " (..  ECHO...  
12e0: 45 43 48 4f 20 54 68 65 20 2e 4e 45 54 20 46 72  ECHO The .NET Fr
12f0: 61 6d 65 77 6f 72 6b 20 64 69 72 65 63 74 6f 72  amework director
1300: 79 20 22 25 46 52 41 4d 45 57 4f 52 4b 44 49 52  y "%FRAMEWORKDIR
1310: 25 22 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64  %" was not found
1320: 2e 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20 45 43  ...  ECHO...  EC
1330: 48 4f 20 50 6c 65 61 73 65 20 69 6e 73 74 61 6c  HO Please instal
1340: 6c 20 74 68 65 20 2e 4e 45 54 20 46 72 61 6d 65  l the .NET Frame
1350: 77 6f 72 6b 20 6f 72 20 73 65 74 20 74 68 65 20  work or set the 
1360: 22 46 52 41 4d 45 57 4f 52 4b 44 49 52 22 0d 0a  "FRAMEWORKDIR"..
1370: 20 20 45 43 48 4f 20 65 6e 76 69 72 6f 6e 6d 65    ECHO environme
1380: 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 74  nt variable to t
1390: 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72  he location wher
13a0: 65 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65  e it is installe
13b0: 64 2e 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20 47  d...  ECHO...  G
13c0: 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a 0d  OTO errors..)...
13d0: 0a 43 41 4c 4c 20 3a 66 6e 5f 52 65 73 65 74 45  .CALL :fn_ResetE
13e0: 72 72 6f 72 4c 65 76 65 6c 0d 0a 0d 0a 25 5f 5f  rrorLevel....%__
13f0: 45 43 48 4f 32 25 20 50 55 53 48 44 20 22 25 52  ECHO2% PUSHD "%R
1400: 4f 4f 54 25 22 0d 0a 0d 0a 49 46 20 45 52 52 4f  OOT%"....IF ERRO
1410: 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 45 43  RLEVEL 1 (..  EC
1420: 48 4f 20 43 6f 75 6c 64 20 6e 6f 74 20 63 68 61  HO Could not cha
1430: 6e 67 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f  nge directory to
1440: 20 22 25 52 4f 4f 54 25 22 2e 0d 0a 20 20 47 4f   "%ROOT%"...  GO
1450: 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a 0d 0a  TO errors..)....
1460: 53 45 54 20 50 41 54 48 3d 25 46 52 41 4d 45 57  SET PATH=%FRAMEW
1470: 4f 52 4b 44 49 52 25 3b 25 50 41 54 48 25 0d 0a  ORKDIR%;%PATH%..
1480: 0d 0a 25 5f 56 45 43 48 4f 25 20 50 61 74 68 20  ..%_VECHO% Path 
1490: 3d 20 27 25 50 41 54 48 25 27 0d 0a 0d 0a 49 46  = '%PATH%'....IF
14a0: 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 53 4f 4c   NOT DEFINED SOL
14b0: 55 54 49 4f 4e 20 28 0d 0a 20 20 25 5f 41 45 43  UTION (..  %_AEC
14c0: 48 4f 25 20 42 75 69 6c 64 69 6e 67 20 61 6c 6c  HO% Building all
14d0: 20 70 72 6f 6a 65 63 74 73 2e 2e 2e 0d 0a 20 20   projects.....  
14e0: 53 45 54 20 53 4f 4c 55 54 49 4f 4e 3d 2e 5c 53  SET SOLUTION=.\S
14f0: 51 4c 69 74 65 2e 4e 45 54 2e 25 59 45 41 52 25  QLite.NET.%YEAR%
1500: 2e 4d 53 42 75 69 6c 64 2e 73 6c 6e 0d 0a 29 0d  .MSBuild.sln..).
1510: 0a 0d 0a 49 46 20 4e 4f 54 20 45 58 49 53 54 20  ...IF NOT EXIST 
1520: 22 25 53 4f 4c 55 54 49 4f 4e 25 22 20 28 0d 0a  "%SOLUTION%" (..
1530: 20 20 25 5f 41 45 43 48 4f 25 20 42 75 69 6c 64    %_AECHO% Build
1540: 69 6e 67 20 61 6c 6c 20 70 72 6f 6a 65 63 74 73  ing all projects
1550: 2e 2e 2e 0d 0a 20 20 53 45 54 20 53 4f 4c 55 54  .....  SET SOLUT
1560: 49 4f 4e 3d 2e 5c 53 51 4c 69 74 65 2e 4e 45 54  ION=.\SQLite.NET
1570: 2e 25 59 45 41 52 25 2e 73 6c 6e 0d 0a 29 0d 0a  .%YEAR%.sln..)..
1580: 0d 0a 25 5f 56 45 43 48 4f 25 20 53 6f 6c 75 74  ..%_VECHO% Solut
1590: 69 6f 6e 20 3d 20 27 25 53 4f 4c 55 54 49 4f 4e  ion = '%SOLUTION
15a0: 25 27 0d 0a 0d 0a 49 46 20 4e 4f 54 20 44 45 46  %'....IF NOT DEF
15b0: 49 4e 45 44 20 54 41 52 47 45 54 20 28 0d 0a 20  INED TARGET (.. 
15c0: 20 53 45 54 20 54 41 52 47 45 54 3d 52 65 62 75   SET TARGET=Rebu
15d0: 69 6c 64 0d 0a 29 0d 0a 0d 0a 25 5f 56 45 43 48  ild..)....%_VECH
15e0: 4f 25 20 54 61 72 67 65 74 20 3d 20 27 25 54 41  O% Target = '%TA
15f0: 52 47 45 54 25 27 0d 0a 0d 0a 49 46 20 4e 4f 54  RGET%'....IF NOT
1600: 20 44 45 46 49 4e 45 44 20 54 45 4d 50 20 28 0d   DEFINED TEMP (.
1610: 0a 20 20 45 43 48 4f 20 54 65 6d 70 6f 72 61 72  .  ECHO Temporar
1620: 79 20 64 69 72 65 63 74 6f 72 79 20 6d 75 73 74  y directory must
1630: 20 62 65 20 64 65 66 69 6e 65 64 2e 0d 0a 20 20   be defined...  
1640: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a  GOTO errors..)..
1650: 0d 0a 25 5f 56 45 43 48 4f 25 20 54 65 6d 70 20  ..%_VECHO% Temp 
1660: 3d 20 27 25 54 45 4d 50 25 27 0d 0a 0d 0a 49 46  = '%TEMP%'....IF
1670: 20 4e 4f 54 20 44 45 46 49 4e 45 44 20 4c 4f 47   NOT DEFINED LOG
1680: 44 49 52 20 28 0d 0a 20 20 53 45 54 20 4c 4f 47  DIR (..  SET LOG
1690: 44 49 52 3d 25 54 45 4d 50 25 0d 0a 29 0d 0a 0d  DIR=%TEMP%..)...
16a0: 0a 25 5f 56 45 43 48 4f 25 20 4c 6f 67 44 69 72  .%_VECHO% LogDir
16b0: 20 3d 20 27 25 4c 4f 47 44 49 52 25 27 0d 0a 0d   = '%LOGDIR%'...
16c0: 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20  .IF NOT DEFINED 
16d0: 4c 4f 47 50 52 45 46 49 58 20 28 0d 0a 20 20 53  LOGPREFIX (..  S
16e0: 45 54 20 4c 4f 47 50 52 45 46 49 58 3d 53 79 73  ET LOGPREFIX=Sys
16f0: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e  tem.Data.SQLite.
1700: 42 75 69 6c 64 0d 0a 29 0d 0a 0d 0a 25 5f 56 45  Build..)....%_VE
1710: 43 48 4f 25 20 4c 6f 67 50 72 65 66 69 78 20 3d  CHO% LogPrefix =
1720: 20 27 25 4c 4f 47 50 52 45 46 49 58 25 27 0d 0a   '%LOGPREFIX%'..
1730: 0d 0a 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44  ..IF NOT DEFINED
1740: 20 4c 4f 47 53 55 46 46 49 58 20 28 0d 0a 20 20   LOGSUFFIX (..  
1750: 53 45 54 20 4c 4f 47 53 55 46 46 49 58 3d 55 6e  SET LOGSUFFIX=Un
1760: 6b 6e 6f 77 6e 0d 0a 29 0d 0a 0d 0a 25 5f 56 45  known..)....%_VE
1770: 43 48 4f 25 20 4c 6f 67 53 75 66 66 69 78 20 3d  CHO% LogSuffix =
1780: 20 27 25 4c 4f 47 53 55 46 46 49 58 25 27 0d 0a   '%LOGSUFFIX%'..
1790: 0d 0a 49 46 20 44 45 46 49 4e 45 44 20 4c 4f 47  ..IF DEFINED LOG
17a0: 47 49 4e 47 20 47 4f 54 4f 20 73 6b 69 70 5f 73  GING GOTO skip_s
17b0: 65 74 4c 6f 67 67 69 6e 67 0d 0a 49 46 20 44 45  etLogging..IF DE
17c0: 46 49 4e 45 44 20 4e 4f 4c 4f 47 20 47 4f 54 4f  FINED NOLOG GOTO
17d0: 20 73 6b 69 70 5f 73 65 74 4c 6f 67 67 69 6e 67   skip_setLogging
17e0: 0d 0a 0d 0a 53 45 54 20 4c 4f 47 47 49 4e 47 3d  ....SET LOGGING=
17f0: 22 2f 6c 6f 67 67 65 72 3a 46 69 6c 65 4c 6f 67  "/logger:FileLog
1800: 67 65 72 2c 4d 69 63 72 6f 73 6f 66 74 2e 42 75  ger,Microsoft.Bu
1810: 69 6c 64 2e 45 6e 67 69 6e 65 3b 4c 6f 67 66 69  ild.Engine;Logfi
1820: 6c 65 3d 25 4c 4f 47 44 49 52 25 5c 25 4c 4f 47  le=%LOGDIR%\%LOG
1830: 50 52 45 46 49 58 25 5f 25 43 4f 4e 46 49 47 55  PREFIX%_%CONFIGU
1840: 52 41 54 49 4f 4e 25 5f 25 50 4c 41 54 46 4f 52  RATION%_%PLATFOR
1850: 4d 25 5f 25 59 45 41 52 25 5f 25 4c 4f 47 53 55  M%_%YEAR%_%LOGSU
1860: 46 46 49 58 25 2e 6c 6f 67 3b 56 65 72 62 6f 73  FFIX%.log;Verbos
1870: 69 74 79 3d 64 69 61 67 6e 6f 73 74 69 63 22 0d  ity=diagnostic".
1880: 0a 0d 0a 3a 73 6b 69 70 5f 73 65 74 4c 6f 67 67  ...:skip_setLogg
1890: 69 6e 67 0d 0a 0d 0a 49 46 20 4e 4f 54 20 44 45  ing....IF NOT DE
18a0: 46 49 4e 45 44 20 4e 4f 50 52 4f 50 53 20 28 0d  FINED NOPROPS (.
18b0: 0a 20 20 49 46 20 45 58 49 53 54 20 45 78 74 65  .  IF EXIST Exte
18c0: 72 6e 61 6c 73 5c 45 61 67 6c 65 5c 62 69 6e 5c  rnals\Eagle\bin\
18d0: 45 61 67 6c 65 53 68 65 6c 6c 2e 65 78 65 20 28  EagleShell.exe (
18e0: 0d 0a 20 20 20 20 49 46 20 44 45 46 49 4e 45 44  ..    IF DEFINED
18f0: 20 49 4e 54 45 52 4f 50 5f 45 58 54 52 41 5f 50   INTEROP_EXTRA_P
1900: 52 4f 50 53 5f 46 49 4c 45 20 28 0d 0a 20 20 20  ROPS_FILE (..   
1910: 20 20 20 52 45 4d 0d 0a 20 20 20 20 20 20 52 45     REM..      RE
1920: 4d 20 48 41 43 4b 3a 20 54 68 69 73 20 69 73 20  M HACK: This is 
1930: 75 73 65 64 20 74 6f 20 77 6f 72 6b 20 61 72 6f  used to work aro
1940: 75 6e 64 20 61 20 6c 69 6d 69 74 61 74 69 6f 6e  und a limitation
1950: 20 6f 66 20 56 69 73 75 61 6c 20 53 74 75 64 69   of Visual Studi
1960: 6f 20 32 30 30 35 0d 0a 20 20 20 20 20 20 52 45  o 2005..      RE
1970: 4d 20 20 20 20 20 20 20 61 6e 64 20 32 30 30 38  M       and 2008
1980: 20 74 68 61 74 20 70 72 65 76 65 6e 74 73 20 74   that prevents t
1990: 68 65 20 22 49 6e 68 65 72 69 74 65 64 50 72 6f  he "InheritedPro
19a0: 70 65 72 74 79 53 68 65 65 74 73 22 20 61 74 74  pertySheets" att
19b0: 72 69 62 75 74 65 0d 0a 20 20 20 20 20 20 52 45  ribute..      RE
19c0: 4d 20 20 20 20 20 20 20 76 61 6c 75 65 20 66 72  M       value fr
19d0: 6f 6d 20 77 6f 72 6b 69 6e 67 20 63 6f 72 72 65  om working corre
19e0: 63 74 6c 79 20 77 68 65 6e 20 69 74 20 72 65 66  ctly when it ref
19f0: 65 72 73 20 74 6f 20 61 20 70 72 6f 70 65 72 74  ers to a propert
1a00: 79 20 74 68 61 74 0d 0a 20 20 20 20 20 20 52 45  y that..      RE
1a10: 4d 20 20 20 20 20 20 20 65 76 61 6c 75 61 74 65  M       evaluate
1a20: 73 20 74 6f 20 61 6e 20 65 6d 70 74 79 20 73 74  s to an empty st
1a30: 72 69 6e 67 2e 0d 0a 20 20 20 20 20 20 52 45 4d  ring...      REM
1a40: 0d 0a 20 20 20 20 20 20 25 5f 5f 45 43 48 4f 25  ..      %__ECHO%
1a50: 20 45 78 74 65 72 6e 61 6c 73 5c 45 61 67 6c 65   Externals\Eagle
1a60: 5c 62 69 6e 5c 45 61 67 6c 65 53 68 65 6c 6c 2e  \bin\EagleShell.
1a70: 65 78 65 20 2d 65 76 61 6c 75 61 74 65 20 22 73  exe -evaluate "s
1a80: 65 74 20 66 69 6c 65 4e 61 6d 65 20 7b 53 51 4c  et fileName {SQL
1a90: 69 74 65 2e 49 6e 74 65 72 6f 70 2f 70 72 6f 70  ite.Interop/prop
1aa0: 73 2f 69 6e 63 6c 75 64 65 2e 76 73 70 72 6f 70  s/include.vsprop
1ab0: 73 7d 3b 20 73 65 74 20 64 61 74 61 20 5b 72 65  s}; set data [re
1ac0: 61 64 46 69 6c 65 20 24 66 69 6c 65 4e 61 6d 65  adFile $fileName
1ad0: 5d 3b 20 72 65 67 73 75 62 20 2d 2d 20 7b 09 49  ]; regsub -- {.I
1ae0: 6e 68 65 72 69 74 65 64 50 72 6f 70 65 72 74 79  nheritedProperty
1af0: 53 68 65 65 74 73 3d 5c 22 5c 22 7d 20 24 64 61  Sheets=\"\"} $da
1b00: 74 61 20 7b 09 49 6e 68 65 72 69 74 65 64 50 72  ta {.InheritedPr
1b10: 6f 70 65 72 74 79 53 68 65 65 74 73 3d 5c 22 24  opertySheets=\"$
1b20: 5e 28 49 4e 54 45 52 4f 50 5f 45 58 54 52 41 5f  ^(INTEROP_EXTRA_
1b30: 50 52 4f 50 53 5f 46 49 4c 45 5e 29 5c 22 7d 20  PROPS_FILE^)\"} 
1b40: 64 61 74 61 3b 20 77 72 69 74 65 46 69 6c 65 20  data; writeFile 
1b50: 24 66 69 6c 65 4e 61 6d 65 20 24 64 61 74 61 22  $fileName $data"
1b60: 0d 0a 0d 0a 20 20 20 20 20 20 49 46 20 45 52 52  ....      IF ERR
1b70: 4f 52 4c 45 56 45 4c 20 31 20 28 0d 0a 20 20 20  ORLEVEL 1 (..   
1b80: 20 20 20 20 20 45 43 48 4f 20 50 72 6f 70 65 72       ECHO Proper
1b90: 74 79 20 66 69 6c 65 20 6d 6f 64 69 66 69 63 61  ty file modifica
1ba0: 74 69 6f 6e 20 6f 66 20 22 53 51 4c 69 74 65 2e  tion of "SQLite.
1bb0: 49 6e 74 65 72 6f 70 5c 70 72 6f 70 73 5c 69 6e  Interop\props\in
1bc0: 63 6c 75 64 65 2e 76 73 70 72 6f 70 73 22 20 66  clude.vsprops" f
1bd0: 61 69 6c 65 64 2e 0d 0a 20 20 20 20 20 20 20 20  ailed...        
1be0: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 20 20 20  GOTO errors..   
1bf0: 20 20 20 29 20 45 4c 53 45 20 28 0d 0a 20 20 20     ) ELSE (..   
1c00: 20 20 20 20 20 45 43 48 4f 20 50 72 6f 70 65 72       ECHO Proper
1c10: 74 79 20 66 69 6c 65 20 6d 6f 64 69 66 69 63 61  ty file modifica
1c20: 74 69 6f 6e 20 73 75 63 63 65 73 73 66 75 6c 2e  tion successful.
1c30: 0d 0a 20 20 20 20 20 20 29 0d 0a 20 20 20 20 29  ..      )..    )
1c40: 0d 0a 20 20 29 20 45 4c 53 45 20 28 0d 0a 20 20  ..  ) ELSE (..  
1c50: 20 20 45 43 48 4f 20 57 41 52 4e 49 4e 47 3a 20    ECHO WARNING: 
1c60: 50 72 6f 70 65 72 74 79 20 66 69 6c 65 20 6d 6f  Property file mo
1c70: 64 69 66 69 63 61 74 69 6f 6e 20 73 6b 69 70 70  dification skipp
1c80: 65 64 2c 20 45 61 67 6c 65 20 62 69 6e 61 72 69  ed, Eagle binari
1c90: 65 73 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c  es are not avail
1ca0: 61 62 6c 65 2e 0d 0a 20 20 29 0d 0a 29 20 45 4c  able...  )..) EL
1cb0: 53 45 20 28 0d 0a 20 20 45 43 48 4f 20 57 41 52  SE (..  ECHO WAR
1cc0: 4e 49 4e 47 3a 20 50 72 6f 70 65 72 74 79 20 66  NING: Property f
1cd0: 69 6c 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e  ile modification
1ce0: 20 73 6b 69 70 70 65 64 2c 20 64 69 73 61 62 6c   skipped, disabl
1cf0: 65 64 20 76 69 61 20 4e 4f 50 52 4f 50 53 20 65  ed via NOPROPS e
1d00: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61  nvironment varia
1d10: 62 6c 65 2e 0d 0a 29 0d 0a 0d 0a 49 46 20 4e 4f  ble...)....IF NO
1d20: 54 20 44 45 46 49 4e 45 44 20 4e 4f 54 41 47 20  T DEFINED NOTAG 
1d30: 28 0d 0a 20 20 49 46 20 45 58 49 53 54 20 45 78  (..  IF EXIST Ex
1d40: 74 65 72 6e 61 6c 73 5c 45 61 67 6c 65 5c 62 69  ternals\Eagle\bi
1d50: 6e 5c 45 61 67 6c 65 53 68 65 6c 6c 2e 65 78 65  n\EagleShell.exe
1d60: 20 28 0d 0a 20 20 20 20 25 5f 5f 45 43 48 4f 25   (..    %__ECHO%
1d70: 20 45 78 74 65 72 6e 61 6c 73 5c 45 61 67 6c 65   Externals\Eagle
1d80: 5c 62 69 6e 5c 45 61 67 6c 65 53 68 65 6c 6c 2e  \bin\EagleShell.
1d90: 65 78 65 20 2d 66 69 6c 65 20 53 65 74 75 70 5c  exe -file Setup\
1da0: 73 6f 75 72 63 65 54 61 67 2e 65 61 67 6c 65 20  sourceTag.eagle 
1db0: 53 6f 75 72 63 65 49 64 4d 6f 64 65 20 53 51 4c  SourceIdMode SQL
1dc0: 69 74 65 2e 49 6e 74 65 72 6f 70 5c 73 72 63 5c  ite.Interop\src\
1dd0: 77 69 6e 5c 69 6e 74 65 72 6f 70 2e 68 0d 0a 0d  win\interop.h...
1de0: 0a 20 20 20 20 49 46 20 45 52 52 4f 52 4c 45 56  .    IF ERRORLEV
1df0: 45 4c 20 31 20 28 0d 0a 20 20 20 20 20 20 45 43  EL 1 (..      EC
1e00: 48 4f 20 53 6f 75 72 63 65 20 74 61 67 67 69 6e  HO Source taggin
1e10: 67 20 6f 66 20 22 53 51 4c 69 74 65 2e 49 6e 74  g of "SQLite.Int
1e20: 65 72 6f 70 5c 73 72 63 5c 77 69 6e 5c 69 6e 74  erop\src\win\int
1e30: 65 72 6f 70 2e 68 22 20 66 61 69 6c 65 64 2e 0d  erop.h" failed..
1e40: 0a 20 20 20 20 20 20 47 4f 54 4f 20 65 72 72 6f  .      GOTO erro
1e50: 72 73 0d 0a 20 20 20 20 29 0d 0a 0d 0a 20 20 20  rs..    )....   
1e60: 20 25 5f 5f 45 43 48 4f 25 20 45 78 74 65 72 6e   %__ECHO% Extern
1e70: 61 6c 73 5c 45 61 67 6c 65 5c 62 69 6e 5c 45 61  als\Eagle\bin\Ea
1e80: 67 6c 65 53 68 65 6c 6c 2e 65 78 65 20 2d 66 69  gleShell.exe -fi
1e90: 6c 65 20 53 65 74 75 70 5c 73 6f 75 72 63 65 54  le Setup\sourceT
1ea0: 61 67 2e 65 61 67 6c 65 20 53 6f 75 72 63 65 49  ag.eagle SourceI
1eb0: 64 4d 6f 64 65 20 53 79 73 74 65 6d 2e 44 61 74  dMode System.Dat
1ec0: 61 2e 53 51 4c 69 74 65 5c 53 51 4c 69 74 65 50  a.SQLite\SQLiteP
1ed0: 61 74 63 68 4c 65 76 65 6c 2e 63 73 0d 0a 0d 0a  atchLevel.cs....
1ee0: 20 20 20 20 49 46 20 45 52 52 4f 52 4c 45 56 45      IF ERRORLEVE
1ef0: 4c 20 31 20 28 0d 0a 20 20 20 20 20 20 45 43 48  L 1 (..      ECH
1f00: 4f 20 53 6f 75 72 63 65 20 74 61 67 67 69 6e 67  O Source tagging
1f10: 20 6f 66 20 22 53 79 73 74 65 6d 2e 44 61 74 61   of "System.Data
1f20: 2e 53 51 4c 69 74 65 5c 53 51 4c 69 74 65 50 61  .SQLite\SQLitePa
1f30: 74 63 68 4c 65 76 65 6c 2e 63 73 22 20 66 61 69  tchLevel.cs" fai
1f40: 6c 65 64 2e 0d 0a 20 20 20 20 20 20 47 4f 54 4f  led...      GOTO
1f50: 20 65 72 72 6f 72 73 0d 0a 20 20 20 20 29 0d 0a   errors..    )..
1f60: 20 20 29 20 45 4c 53 45 20 28 0d 0a 20 20 20 20    ) ELSE (..    
1f70: 45 43 48 4f 20 57 41 52 4e 49 4e 47 3a 20 53 6f  ECHO WARNING: So
1f80: 75 72 63 65 20 74 61 67 67 69 6e 67 20 73 6b 69  urce tagging ski
1f90: 70 70 65 64 2c 20 45 61 67 6c 65 20 62 69 6e 61  pped, Eagle bina
1fa0: 72 69 65 73 20 61 72 65 20 6e 6f 74 20 61 76 61  ries are not ava
1fb0: 69 6c 61 62 6c 65 2e 0d 0a 20 20 29 0d 0a 29 20  ilable...  )..) 
1fc0: 45 4c 53 45 20 28 0d 0a 20 20 45 43 48 4f 20 57  ELSE (..  ECHO W
1fd0: 41 52 4e 49 4e 47 3a 20 53 6f 75 72 63 65 20 74  ARNING: Source t
1fe0: 61 67 67 69 6e 67 20 73 6b 69 70 70 65 64 2c 20  agging skipped, 
1ff0: 64 69 73 61 62 6c 65 64 20 76 69 61 20 4e 4f 54  disabled via NOT
2000: 41 47 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76  AG environment v
2010: 61 72 69 61 62 6c 65 2e 0d 0a 29 0d 0a 0d 0a 25  ariable...)....%
2020: 5f 56 45 43 48 4f 25 20 4c 6f 67 67 69 6e 67 20  _VECHO% Logging 
2030: 3d 20 27 25 4c 4f 47 47 49 4e 47 25 27 0d 0a 25  = '%LOGGING%'..%
2040: 5f 56 45 43 48 4f 25 20 42 75 69 6c 64 41 72 67  _VECHO% BuildArg
2050: 73 20 3d 20 27 25 42 55 49 4c 44 5f 41 52 47 53  s = '%BUILD_ARGS
2060: 25 27 0d 0a 25 5f 56 45 43 48 4f 25 20 4d 73 42  %'..%_VECHO% MsB
2070: 75 69 6c 64 41 72 67 73 20 3d 20 27 25 4d 53 42  uildArgs = '%MSB
2080: 55 49 4c 44 5f 41 52 47 53 25 27 0d 0a 0d 0a 25  UILD_ARGS%'....%
2090: 5f 5f 45 43 48 4f 25 20 22 25 4d 53 42 55 49 4c  __ECHO% "%MSBUIL
20a0: 44 25 22 20 22 25 53 4f 4c 55 54 49 4f 4e 25 22  D%" "%SOLUTION%"
20b0: 20 22 2f 74 61 72 67 65 74 3a 25 54 41 52 47 45   "/target:%TARGE
20c0: 54 25 22 20 22 2f 70 72 6f 70 65 72 74 79 3a 43  T%" "/property:C
20d0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3d 25 43 4f  onfiguration=%CO
20e0: 4e 46 49 47 55 52 41 54 49 4f 4e 25 22 20 22 2f  NFIGURATION%" "/
20f0: 70 72 6f 70 65 72 74 79 3a 50 6c 61 74 66 6f 72  property:Platfor
2100: 6d 3d 25 50 4c 41 54 46 4f 52 4d 25 22 20 25 4c  m=%PLATFORM%" %L
2110: 4f 47 47 49 4e 47 25 20 25 42 55 49 4c 44 5f 41  OGGING% %BUILD_A
2120: 52 47 53 25 20 25 4d 53 42 55 49 4c 44 5f 41 52  RGS% %MSBUILD_AR
2130: 47 53 25 0d 0a 0d 0a 49 46 20 45 52 52 4f 52 4c  GS%....IF ERRORL
2140: 45 56 45 4c 20 31 20 28 0d 0a 20 20 45 43 48 4f  EVEL 1 (..  ECHO
2150: 20 42 75 69 6c 64 20 66 61 69 6c 65 64 2e 0d 0a   Build failed...
2160: 20 20 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29    GOTO errors..)
2170: 0d 0a 0d 0a 25 5f 5f 45 43 48 4f 32 25 20 50 4f  ....%__ECHO2% PO
2180: 50 44 0d 0a 0d 0a 49 46 20 45 52 52 4f 52 4c 45  PD....IF ERRORLE
2190: 56 45 4c 20 31 20 28 0d 0a 20 20 45 43 48 4f 20  VEL 1 (..  ECHO 
21a0: 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 74 6f 72  Could not restor
21b0: 65 20 64 69 72 65 63 74 6f 72 79 2e 0d 0a 20 20  e directory...  
21c0: 47 4f 54 4f 20 65 72 72 6f 72 73 0d 0a 29 0d 0a  GOTO errors..)..
21d0: 0d 0a 47 4f 54 4f 20 6e 6f 5f 65 72 72 6f 72 73  ..GOTO no_errors
21e0: 0d 0a 0d 0a 3a 66 6e 5f 43 68 65 63 6b 46 72 61  ....:fn_CheckFra
21f0: 6d 65 77 6f 72 6b 0d 0a 20 20 53 45 54 20 46 52  mework..  SET FR
2200: 41 4d 45 57 4f 52 4b 56 45 52 3d 25 31 0d 0a 20  AMEWORKVER=%1.. 
2210: 20 49 46 20 4e 4f 54 20 44 45 46 49 4e 45 44 20   IF NOT DEFINED 
2220: 46 52 41 4d 45 57 4f 52 4b 56 45 52 20 47 4f 54  FRAMEWORKVER GOT
2230: 4f 20 3a 45 4f 46 0d 0a 20 20 49 46 20 44 45 46  O :EOF..  IF DEF
2240: 49 4e 45 44 20 4e 4f 4d 53 42 55 49 4c 44 36 34  INED NOMSBUILD64
2250: 20 28 0d 0a 20 20 20 20 25 5f 41 45 43 48 4f 25   (..    %_AECHO%
2260: 20 46 6f 72 63 65 64 20 69 6e 74 6f 20 75 73 69   Forced into usi
2270: 6e 67 20 33 32 2d 62 69 74 20 76 65 72 73 69 6f  ng 32-bit versio
2280: 6e 20 6f 66 20 4d 53 42 75 69 6c 64 2e 2e 2e 0d  n of MSBuild....
2290: 0a 20 20 20 20 53 45 54 20 46 52 41 4d 45 57 4f  .    SET FRAMEWO
22a0: 52 4b 44 49 52 3d 25 77 69 6e 64 69 72 25 5c 4d  RKDIR=%windir%\M
22b0: 69 63 72 6f 73 6f 66 74 2e 4e 45 54 5c 46 72 61  icrosoft.NET\Fra
22c0: 6d 65 77 6f 72 6b 5c 25 46 52 41 4d 45 57 4f 52  mework\%FRAMEWOR
22d0: 4b 56 45 52 25 0d 0a 20 20 20 20 47 4f 54 4f 20  KVER%..    GOTO 
22e0: 3a 45 4f 46 0d 0a 20 20 29 0d 0a 20 20 49 46 20  :EOF..  )..  IF 
22f0: 4e 4f 54 20 22 25 50 52 4f 43 45 53 53 4f 52 5f  NOT "%PROCESSOR_
2300: 41 52 43 48 49 54 45 43 54 55 52 45 25 22 20 3d  ARCHITECTURE%" =
2310: 3d 20 22 78 38 36 22 20 28 0d 0a 20 20 20 20 25  = "x86" (..    %
2320: 5f 41 45 43 48 4f 25 20 54 68 65 20 6f 70 65 72  _AECHO% The oper
2330: 61 74 69 6e 67 20 73 79 73 74 65 6d 20 61 70 70  ating system app
2340: 65 61 72 73 20 74 6f 20 62 65 20 36 34 2d 62 69  ears to be 64-bi
2350: 74 2e 0d 0a 20 20 20 20 49 46 20 45 58 49 53 54  t...    IF EXIST
2360: 20 22 25 77 69 6e 64 69 72 25 5c 4d 69 63 72 6f   "%windir%\Micro
2370: 73 6f 66 74 2e 4e 45 54 5c 46 72 61 6d 65 77 6f  soft.NET\Framewo
2380: 72 6b 36 34 5c 25 46 52 41 4d 45 57 4f 52 4b 56  rk64\%FRAMEWORKV
2390: 45 52 25 22 20 28 0d 0a 20 20 20 20 20 20 49 46  ER%" (..      IF
23a0: 20 45 58 49 53 54 20 22 25 77 69 6e 64 69 72 25   EXIST "%windir%
23b0: 5c 4d 69 63 72 6f 73 6f 66 74 2e 4e 45 54 5c 46  \Microsoft.NET\F
23c0: 72 61 6d 65 77 6f 72 6b 36 34 5c 25 46 52 41 4d  ramework64\%FRAM
23d0: 45 57 4f 52 4b 56 45 52 25 5c 25 4d 53 42 55 49  EWORKVER%\%MSBUI
23e0: 4c 44 25 22 20 28 0d 0a 20 20 20 20 20 20 20 20  LD%" (..        
23f0: 49 46 20 45 58 49 53 54 20 22 25 77 69 6e 64 69  IF EXIST "%windi
2400: 72 25 5c 4d 69 63 72 6f 73 6f 66 74 2e 4e 45 54  r%\Microsoft.NET
2410: 5c 46 72 61 6d 65 77 6f 72 6b 36 34 5c 25 46 52  \Framework64\%FR
2420: 41 4d 45 57 4f 52 4b 56 45 52 25 5c 25 43 53 43  AMEWORKVER%\%CSC
2430: 25 22 20 28 0d 0a 20 20 20 20 20 20 20 20 20 20  %" (..          
2440: 25 5f 41 45 43 48 4f 25 20 55 73 69 6e 67 20 36  %_AECHO% Using 6
2450: 34 2d 62 69 74 20 76 65 72 73 69 6f 6e 20 6f 66  4-bit version of
2460: 20 4d 53 42 75 69 6c 64 2e 2e 2e 0d 0a 20 20 20   MSBuild.....   
2470: 20 20 20 20 20 20 20 53 45 54 20 46 52 41 4d 45         SET FRAME
2480: 57 4f 52 4b 44 49 52 3d 25 77 69 6e 64 69 72 25  WORKDIR=%windir%
2490: 5c 4d 69 63 72 6f 73 6f 66 74 2e 4e 45 54 5c 46  \Microsoft.NET\F
24a0: 72 61 6d 65 77 6f 72 6b 36 34 5c 25 46 52 41 4d  ramework64\%FRAM
24b0: 45 57 4f 52 4b 56 45 52 25 0d 0a 20 20 20 20 20  EWORKVER%..     
24c0: 20 20 20 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a       GOTO :EOF..
24d0: 20 20 20 20 20 20 20 20 29 20 45 4c 53 45 20 28          ) ELSE (
24e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 25 5f 41 45  ..          %_AE
24f0: 43 48 4f 25 20 4d 69 73 73 69 6e 67 20 36 34 2d  CHO% Missing 64-
2500: 62 69 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 22  bit version of "
2510: 25 43 53 43 25 22 2e 0d 0a 20 20 20 20 20 20 20  %CSC%"...       
2520: 20 29 0d 0a 20 20 20 20 20 20 29 20 45 4c 53 45   )..      ) ELSE
2530: 20 28 0d 0a 20 20 20 20 20 20 20 20 25 5f 41 45   (..        %_AE
2540: 43 48 4f 25 20 4d 69 73 73 69 6e 67 20 36 34 2d  CHO% Missing 64-
2550: 62 69 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 22  bit version of "
2560: 25 4d 53 42 55 49 4c 44 25 22 2e 0d 0a 20 20 20  %MSBUILD%"...   
2570: 20 20 20 29 0d 0a 20 20 20 20 29 20 45 4c 53 45     )..    ) ELSE
2580: 20 28 0d 0a 20 20 20 20 20 20 25 5f 41 45 43 48   (..      %_AECH
2590: 4f 25 20 4d 69 73 73 69 6e 67 20 36 34 2d 62 69  O% Missing 64-bi
25a0: 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 2e 4e 45  t version of .NE
25b0: 54 20 46 72 61 6d 65 77 6f 72 6b 20 22 25 46 52  T Framework "%FR
25c0: 41 4d 45 57 4f 52 4b 56 45 52 25 22 2e 0d 0a 20  AMEWORKVER%"... 
25d0: 20 20 20 29 0d 0a 20 20 29 20 45 4c 53 45 20 28     )..  ) ELSE (
25e0: 0d 0a 20 20 20 20 25 5f 41 45 43 48 4f 25 20 54  ..    %_AECHO% T
25f0: 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73  he operating sys
2600: 74 65 6d 20 61 70 70 65 61 72 73 20 74 6f 20 62  tem appears to b
2610: 65 20 33 32 2d 62 69 74 2e 0d 0a 20 20 29 0d 0a  e 32-bit...  )..
2620: 20 20 25 5f 41 45 43 48 4f 25 20 55 73 69 6e 67    %_AECHO% Using
2630: 20 33 32 2d 62 69 74 20 76 65 72 73 69 6f 6e 20   32-bit version 
2640: 6f 66 20 4d 53 42 75 69 6c 64 2e 2e 2e 0d 0a 20  of MSBuild..... 
2650: 20 53 45 54 20 46 52 41 4d 45 57 4f 52 4b 44 49   SET FRAMEWORKDI
2660: 52 3d 25 77 69 6e 64 69 72 25 5c 4d 69 63 72 6f  R=%windir%\Micro
2670: 73 6f 66 74 2e 4e 45 54 5c 46 72 61 6d 65 77 6f  soft.NET\Framewo
2680: 72 6b 5c 25 46 52 41 4d 45 57 4f 52 4b 56 45 52  rk\%FRAMEWORKVER
2690: 25 0d 0a 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a  %..  GOTO :EOF..
26a0: 0d 0a 3a 66 6e 5f 55 6e 71 75 6f 74 65 56 61 72  ..:fn_UnquoteVar
26b0: 69 61 62 6c 65 0d 0a 20 20 49 46 20 4e 4f 54 20  iable..  IF NOT 
26c0: 44 45 46 49 4e 45 44 20 25 31 20 47 4f 54 4f 20  DEFINED %1 GOTO 
26d0: 3a 45 4f 46 0d 0a 20 20 53 45 54 4c 4f 43 41 4c  :EOF..  SETLOCAL
26e0: 0d 0a 20 20 53 45 54 20 5f 5f 45 43 48 4f 5f 43  ..  SET __ECHO_C
26f0: 4d 44 3d 45 43 48 4f 20 25 25 25 31 25 25 0d 0a  MD=ECHO %%%1%%..
2700: 20 20 46 4f 52 20 2f 46 20 22 64 65 6c 69 6d 73    FOR /F "delims
2710: 3d 22 20 25 25 56 20 49 4e 20 28 27 25 5f 5f 45  =" %%V IN ('%__E
2720: 43 48 4f 5f 43 4d 44 25 27 29 20 44 4f 20 28 0d  CHO_CMD%') DO (.
2730: 0a 20 20 20 20 53 45 54 20 56 41 4c 55 45 3d 25  .    SET VALUE=%
2740: 25 56 0d 0a 20 20 29 0d 0a 20 20 53 45 54 20 56  %V..  )..  SET V
2750: 41 4c 55 45 3d 25 56 41 4c 55 45 3a 22 3d 25 0d  ALUE=%VALUE:"=%.
2760: 0a 20 20 52 45 4d 20 22 0d 0a 20 20 45 4e 44 4c  .  REM "..  ENDL
2770: 4f 43 41 4c 20 26 26 20 53 45 54 20 25 31 3d 25  OCAL && SET %1=%
2780: 56 41 4c 55 45 25 0d 0a 20 20 47 4f 54 4f 20 3a  VALUE%..  GOTO :
2790: 45 4f 46 0d 0a 0d 0a 3a 66 6e 5f 55 6e 73 65 74  EOF....:fn_Unset
27a0: 56 61 72 69 61 62 6c 65 0d 0a 20 20 49 46 20 4e  Variable..  IF N
27b0: 4f 54 20 22 25 31 22 20 3d 3d 20 22 22 20 28 0d  OT "%1" == "" (.
27c0: 0a 20 20 20 20 53 45 54 20 25 31 3d 0d 0a 20 20  .    SET %1=..  
27d0: 20 20 43 41 4c 4c 20 3a 66 6e 5f 52 65 73 65 74    CALL :fn_Reset
27e0: 45 72 72 6f 72 4c 65 76 65 6c 0d 0a 20 20 29 0d  ErrorLevel..  ).
27f0: 0a 20 20 47 4f 54 4f 20 3a 45 4f 46 0d 0a 0d 0a  .  GOTO :EOF....
2800: 3a 66 6e 5f 52 65 73 65 74 45 72 72 6f 72 4c 65  :fn_ResetErrorLe
2810: 76 65 6c 0d 0a 20 20 56 45 52 49 46 59 20 3e 20  vel..  VERIFY > 
2820: 4e 55 4c 0d 0a 20 20 47 4f 54 4f 20 3a 45 4f 46  NUL..  GOTO :EOF
2830: 0d 0a 0d 0a 3a 66 6e 5f 53 65 74 45 72 72 6f 72  ....:fn_SetError
2840: 4c 65 76 65 6c 0d 0a 20 20 56 45 52 49 46 59 20  Level..  VERIFY 
2850: 4d 41 59 42 45 20 32 3e 20 4e 55 4c 0d 0a 20 20  MAYBE 2> NUL..  
2860: 47 4f 54 4f 20 3a 45 4f 46 0d 0a 0d 0a 3a 75 73  GOTO :EOF....:us
2870: 61 67 65 0d 0a 20 20 45 43 48 4f 2e 0d 0a 20 20  age..  ECHO...  
2880: 45 43 48 4f 20 55 73 61 67 65 3a 20 25 7e 6e 78  ECHO Usage: %~nx
2890: 30 20 5b 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  0 [configuration
28a0: 5d 20 5b 70 6c 61 74 66 6f 72 6d 5d 0d 0a 20 20  ] [platform]..  
28b0: 45 43 48 4f 2e 0d 0a 20 20 47 4f 54 4f 20 65 72  ECHO...  GOTO er
28c0: 72 6f 72 73 0d 0a 0d 0a 3a 65 72 72 6f 72 73 0d  rors....:errors.
28d0: 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 53 65 74 45  .  CALL :fn_SetE
28e0: 72 72 6f 72 4c 65 76 65 6c 0d 0a 20 20 45 4e 44  rrorLevel..  END
28f0: 4c 4f 43 41 4c 0d 0a 20 20 45 43 48 4f 2e 0d 0a  LOCAL..  ECHO...
2900: 20 20 45 43 48 4f 20 42 75 69 6c 64 20 66 61 69    ECHO Build fai
2910: 6c 75 72 65 2c 20 65 72 72 6f 72 73 20 77 65 72  lure, errors wer
2920: 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0d 0a  e encountered...
2930: 20 20 47 4f 54 4f 20 65 6e 64 5f 6f 66 5f 66 69    GOTO end_of_fi
2940: 6c 65 0d 0a 0d 0a 3a 6e 6f 5f 65 72 72 6f 72 73  le....:no_errors
2950: 0d 0a 20 20 43 41 4c 4c 20 3a 66 6e 5f 52 65 73  ..  CALL :fn_Res
2960: 65 74 45 72 72 6f 72 4c 65 76 65 6c 0d 0a 20 20  etErrorLevel..  
2970: 45 4e 44 4c 4f 43 41 4c 0d 0a 20 20 45 43 48 4f  ENDLOCAL..  ECHO
2980: 2e 0d 0a 20 20 45 43 48 4f 20 42 75 69 6c 64 20  ...  ECHO Build 
2990: 73 75 63 63 65 73 73 2c 20 6e 6f 20 65 72 72 6f  success, no erro
29a0: 72 73 20 77 65 72 65 20 65 6e 63 6f 75 6e 74 65  rs were encounte
29b0: 72 65 64 2e 0d 0a 20 20 47 4f 54 4f 20 65 6e 64  red...  GOTO end
29c0: 5f 6f 66 5f 66 69 6c 65 0d 0a 0d 0a 3a 65 6e 64  _of_file....:end
29d0: 5f 6f 66 5f 66 69 6c 65 0d 0a 25 5f 5f 45 43 48  _of_file..%__ECH
29e0: 4f 25 20 45 58 49 54 20 2f 42 20 25 45 52 52 4f  O% EXIT /B %ERRO
29f0: 52 4c 45 56 45 4c 25 0d 0a                       RLEVEL%..