-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.bat
77 lines (63 loc) · 2.04 KB
/
build.bat
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
74
75
76
:: MSVC
:: --------------------
@ECHO off
cl > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 (
ECHO Setting up the MSVC environment
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 > NUL 2>&1
)
cl > NUL 2>&1
IF %ERRORLEVEL% NEQ 0 (
ECHO MSVC environment is not functional
GOTO :early_exit
)
SETLOCAL
SET base_dir=%cd%
SET hoc_dir=%base_dir%\hoc
SET src_dir=%base_dir%\src
:: /wd4706 - assignment within conditional expression
:: /wd4013 - undefined function (missing forward declaration)
:: /wd4211 - nonstandard extension used (related to wd4013)
:: /wd4306 - 'type cast' : conversion from 'uint8' to 'int32 *' of greater size
:: /wd4459 - declaration hides global declaration
:: /wd4456 - declaration hides previous local declaration
:: /wd4533 - initialization of '..' is skipped by 'goto ..'
:: /wd4458 - declaration of '..' hides class member
:: /FC - display full path of source code files passed to cl.exe in diagnostic text
:: /Fo:<path> - compile to object file
:: /Fe:<path> - compile to executable
:: /c - compile without linking
:: /EHa- - disable exceptions
:: /GR- - disable RTTI
:: /GS- - disable buffer security check
:: /W{n} - warning output level (/W0 disable all warnings)
:: /Wall - display all warnings
SET C_flags=/Od /MTd /W4 /Zo /Zi /Gm- /GS- /GR- /EHa- /FC /nologo /D_CRT_SECURE_NO_WARNINGS ^
/wd4201 /wd4127 /wd4100 /wd4706 /wd4211 /wd4306 /wd4459 /wd4456 /wd4533 /wd4458
SET L_flags=/incremental:no /opt:ref /subsystem:console
IF NOT EXIST .\bin (
ECHO Creating the .\bin directory
mkdir .\bin
)
PUSHD .\bin
::..\ctime -begin hocc.ctm
cl %C_flags% %src_dir%\hocc.c /link %L_flags%
::..\ctime -end hocc.ctm
IF %ERRORLEVEL% NEQ 0 (
GOTO :end
)
hocc %hoc_dir%\test.hoc
IF %ERRORLEVEL% NEQ 0 (
GOTO :end
)
hocc %hoc_dir%\test-0_2.hoc
IF %ERRORLEVEL% NEQ 0 (
GOTO :end
)
hocc %hoc_dir%\sloc.hoc
IF %ERRORLEVEL% NEQ 0 (
GOTO :end
)
:end
POPD
:early_exit