-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.bat
75 lines (60 loc) · 2.95 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
@echo off
set SHARED_FLAGS=/nologo /Zo /Zi /Oi /GR- /EHa- /WX /W4 /wd4201 /fp:fast /fp:except- -DUNICODE=1 -D_CRT_SECURE_NO_WARNINGS /Iexternal /std:c++17
set MSVC_FLAGS=-DCOMPILER_MSVC=1
set LLVM_FLAGS=-Wno-missing-field-initializers -Wno-unused-variable -Wno-unused-function -Wno-deprecated-declarations -Wno-writable-strings -Wno-missing-field-initializers -Wno-missing-braces -Wno-char-subscripts -Wno-invalid-offsetof -DCOMPILER_LLVM=1 -maes
set SANITIZE_FLAGS=/Od /MT -DTEXTIT_INTERNAL=1 -DTEXTIT_SLOW=1 -fsanitize=address
set DEBUG_FLAGS=/Od /MTd -DTEXTIT_INTERNAL=1 -DTEXTIT_SLOW=1
set RELEASE_FLAGS=/O2 /MT -DTEXTIT_INTERNAL=0 -DTEXTIT_SLOW=0
set LINKER_FLAGS=/opt:ref /incremental:no
set LINKER_LIBRARIES=user32.lib gdi32.lib dwmapi.lib d3d11.lib d3dcompiler.lib
set FLAGS=%SHARED_FLAGS%
rem echo]
rem if "%1" equ "release" (
rem echo ------------------------------------------
rem echo *** BUILDING RELEASE BUILD FROM SOURCE ***
rem echo ------------------------------------------
rem set FLAGS=%FLAGS% %RELEASE_FLAGS%
rem ) else if "%1" equ "sanitize" (
rem echo --------------------------------------------
rem echo *** BUILDING SANITIZED BUILD FROM SOURCE ***
rem echo --------------------------------------------
rem set FLAGS=%FLAGS% %SANITIZE_FLAGS%
rem ) else (
rem echo ----------------------------------------
rem echo *** BUILDING DEBUG BUILD FROM SOURCE ***
rem echo ----------------------------------------
rem set FLAGS=%FLAGS% %DEBUG_FLAGS%
rem )
if not exist ctm mkdir ctm
echo I'm here to be depressed and I'm not out of that at all > textit_lock.temp
if not exist build mkdir build
if "%TEXTIT_USE_LLVM%" equ "1" goto build_llvm
:build_msvc
misc\ctime.exe -begin ctm\textit_msvc_debug.ctm
echo COMPILER: CL
cl code\textit.cpp -DTEXTIT_BUILD_DLL=1 %FLAGS% %DEBUG_FLAGS% %MSVC_FLAGS% /Fe"textit.dll" /LD /link %LINKER_FLAGS%
if NOT '%ERRORLEVEL%' == '0' goto build_aborted
cl code\win32_textit.cpp -DTEXTIT_BUILD_DLL=1 %FLAGS% %DEBUG_FLAGS% %MSVC_FLAGS% /Fe"win32_textit_msvc_debug.exe" %LINKER_LIBRARIES%
if NOT '%ERRORLEVEL%' == '0' goto build_aborted
misc\ctime.exe -end ctm\textit_msvc_debug.ctm
echo built win32_textit_msvc_debug.exe
del textit_lock.temp
misc\ctime.exe -begin ctm\textit_msvc_release.ctm
cl code\win32_textit.cpp code\textit.cpp %FLAGS% %RELEASE_FLAGS% %MSVC_FLAGS% /Fe"win32_textit_msvc_release.exe" /link %LINKER_FLAGS% %LINKER_LIBRARIES%
misc\ctime.exe -end ctm\textit_msvc_release.ctm %ERRORLEVEL%
echo built win32_textit_msvc_release.exe
goto build_finished
:build_llvm
echo COMPILER: CLANG-CL
clang-cl code\textit.cpp -DTEXTIT_BUILD_DLL=1 %FLAGS% %LLVM_FLAGS% /Fe"textit.dll" /LD /link %LINKER_FLAGS%
clang-cl code\win32_textit.cpp %FLAGS% %LLVM_FLAGS% /Fe"win32_textit.exe" %LINKER_LIBRARIES%
goto build_finished
:build_aborted
misc\ctime.exe -end ctm\textit_msvc_debug.ctm %ERRORLEVEL%
:build_finished
set LAST_ERROR=%ERRORLEVEL%
del *.lib
del *.obj
del *.ilk
del *.exp
del temp_textit_*.dll