-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbatch.cmd
73 lines (61 loc) · 2.16 KB
/
batch.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
@ECHO OFF
SET projectName=v8
SET projectPath=v8
SET sourcePath=src
SET includePath=include
SET branchName=master
SET depth=1
SET outputFile=true
ECHO. > config.txt
ECHO [Project] >> config.txt
ECHO projectName=%projectName% >> config.txt
IF DEFINED outputFile ECHO outputFile=Project-%projectName%.Project >> config.txt
ECHO exportFile=Project-%projectName%.project >> config.txt
CD %projectPath% >> NUL 2>&1
git checkout --quiet %branchName%
SET next_rev=
FOR /F %%i IN ('git rev-list -n %depth% %branchName%') DO CALL :REVISION %%i,next_rev
CD .. >> NUL 2>&1
EXIT /B 0
:REVISION
ECHO Building %projectName% revision %1
git checkout --quiet %1 >> NUL 2>&1
MD ..\%1 >> NUL 2>&1
CALL :XCOPY_DIR ..\%1,%sourcePath%
CALL :XCOPY_DIR ..\%1,%includePath%
ECHO. >> ..\config.txt
ECHO [ProjectVersion-%1] >> ..\config.txt
IF DEFINED outputFile ECHO outputFile=ProjectVersion-%1.ProjectVersion >> ..\config.txt
ECHO versionName=%projectName%-%1 >> ..\config.txt
ECHO projectRoot=%1 >> ..\config.txt
FOR /F %%j IN ('DIR ..\%1\%sourcePath% /s /b /a-d') DO CALL :ECHO_FIX_PATH %%j,%1,projectFile,..\config.txt
FOR /F %%j IN ('DIR ..\%1\%includePath% /s /b /ad') DO CALL :ECHO_FIX_PATH %%j,%1,includePath,..\config.txt
IF DEFINED %2 CALL :ECHO_LAST_REV %1,%2
SET "%2=%1"
EXIT /B 0
:XCOPY_DIR
MD %1\%2 >> NUL 2>&1
xcopy %2\*.c %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.cc %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.cpp %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.c++ %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.cxx %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.h %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.hh %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.hpp %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.h++ %1\%2 /s /y /q >> NUL 2>&1
xcopy %2\*.hxx %1\%2 /s /y /q >> NUL 2>&1
EXIT /B 0
:ECHO_LAST_REV
CALL SET "rev=%%%2%%%"
ECHO. >> ..\config.txt
ECHO [VersionDifference-%1-%rev%] >> ..\config.txt
IF DEFINED outputFile ECHO outputFile=VersionDifference-%1-%rev%.VersionDifference >> ..\config.txt
ECHO versionA=%projectName%-%1 >> ..\config.txt
ECHO versionB=%projectName%-%rev% >> ..\config.txt
EXIT /B 0
:ECHO_FIX_PATH
SET fix_path=%1
CALL SET "fix_path=%%fix_path:*%2=%2%%%"
ECHO %3=%fix_path:\=\\% >> %4
EXIT /B 0