comparison makefile.vc @ 2167:da33732f182d

Win: Add support for building with Clang/LLVM on Windows. SET CLANG=Y Fix a few warnings generated by Clang on Windows.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 04 Oct 2020 21:09:02 +0000
parents 94ea915bd917
children b08df531fd71
comparison
equal deleted inserted replaced
2166:f98cecae5402 2167:da33732f182d
21 21
22 !if "$(DWDLLDIR)" == "" 22 !if "$(DWDLLDIR)" == ""
23 DWDLLDIR=.\dll 23 DWDLLDIR=.\dll
24 !endif 24 !endif
25 25
26 # Configure alternate compiler based on Clang/LLVM
27 !if "$(CLANG)" == "Y"
28 LIB=llvm-lib.exe
29 CC=clang-cl.exe
30 LINK=lld-link.exe
31 !else
32 LIB=lib.exe
33 CC=cl.exe
34 LINK=link.exe
35 !endif
36
26 # 37 #
27 # Configure settings for the target platform 38 # Configure settings for the target platform
28 # Default to x86 if not specified 39 # Default to x86 if not specified
29 # 40 #
30 !if "$(TARGET_CPU)" == "" 41 !if "$(TARGET_CPU)" == ""
51 # Settings for either debug or release 62 # Settings for either debug or release
52 # 63 #
53 !if "$(DEBUG)" == "Y" 64 !if "$(DEBUG)" == "Y"
54 # -D_CRT_SECURE_NO_WARNINGS disables unsafe string function warnings 65 # -D_CRT_SECURE_NO_WARNINGS disables unsafe string function warnings
55 # These can be perfectly safe if used properly but get enabled by -W3 66 # These can be perfectly safe if used properly but get enabled by -W3
56 CFLAGS_DEBUG = -DDEBUG -Z7 -W3 -Od -MTd -D_CRT_SECURE_NO_WARNINGS # was -Zi 67 CFLAGS_DEBUG = -DDEBUG -Z7 -W3 -Od -MTd # was -Zi
57 LINK_DEBUG = -debug 68 LINK_DEBUG = -debug
58 !else 69 !else
59 CFLAGS_DEBUG = -Ox -MT 70 CFLAGS_DEBUG = -Ox -MT
60 LINK_DEBUG = -release 71 LINK_DEBUG = -release
61 !endif 72 !endif
99 !if exists($(WINTOASTDIR)\src\wintoastlib.h) 110 !if exists($(WINTOASTDIR)\src\wintoastlib.h)
100 WINTOASTINC=-DBUILD_TOAST -I$(WINTOASTDIR)\src 111 WINTOASTINC=-DBUILD_TOAST -I$(WINTOASTDIR)\src
101 WINTOASTOBJ=wintoast.obj wintoastlib.obj 112 WINTOASTOBJ=wintoast.obj wintoastlib.obj
102 !endif 113 !endif
103 114
104 CC = cl 115 CFLAGS = -c $(PLATFORM_DEF) -D__WIN32__ -DMSVC -DTOOLBAR -DGDIPLUS -DAEROGLASS -D_UNICODE -DUNICODE -DBUILD_DLL -DISOLATION_AWARE_ENABLED=1 -I$(SRCDIR)\platform -I$(SRCDIR) $(WEBVIEW2INC) $(WINTOASTINC) $(SVNVERSION) -D_CRT_SECURE_NO_WARNINGS
105 CFLAGS = -c $(PLATFORM_DEF) -D__WIN32__ -DMSVC -DTOOLBAR -DGDIPLUS -DAEROGLASS -D_UNICODE -DUNICODE -DBUILD_DLL -DISOLATION_AWARE_ENABLED=1 -I$(SRCDIR)\platform -I$(SRCDIR) $(WEBVIEW2INC) $(WINTOASTINC) $(SVNVERSION)
106 LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib ole32.lib oleaut32.lib userenv.lib msimg32.lib gdiplus.lib $(WEBVIEW2LIB) 116 LIBS = wsock32.lib kernel32.lib user32.lib comctl32.lib gdi32.lib advapi32.lib shell32.lib comdlg32.lib ole32.lib oleaut32.lib userenv.lib msimg32.lib gdiplus.lib $(WEBVIEW2LIB)
107 RES = 117 RES =
108 LINKFLAGS = -machine:$(TARGET_CPU) -manifest $(LINK_DEBUG) 118 LINKFLAGS = -machine:$(TARGET_CPU) -manifest $(LINK_DEBUG)
109 DLLLINKFLAGS = -dll 119 DLLLINKFLAGS = -dll
110 LINK = link
111 DEFFILE = $(SRCDIR)\win\dw.def 120 DEFFILE = $(SRCDIR)\win\dw.def
112 DEFFILE2 = $(SRCDIR)\win\dwcompat.def 121 DEFFILE2 = $(SRCDIR)\win\dwcompat.def
113 122
114 OBJS = dw.obj browser.obj XBrowseForFolder.obj $(WEBVIEW2OBJ) $(WINTOASTOBJ) 123 OBJS = dw.obj browser.obj XBrowseForFolder.obj $(WEBVIEW2OBJ) $(WINTOASTOBJ)
115 124
141 -out:$(@) -def:$(DEFFILE) 150 -out:$(@) -def:$(DEFFILE)
142 $(LINKFLAGS) $(DLLLINKFLAGS) 151 $(LINKFLAGS) $(DLLLINKFLAGS)
143 $(OBJS) $(RES) 152 $(OBJS) $(RES)
144 $(LIBS) 153 $(LIBS)
145 << 154 <<
146 lib /def:$(DEFFILE) /machine:$(TARGET_CPU) /out:dw.lib 155 $(LIB) /def:$(DEFFILE) /machine:$(TARGET_CPU) /out:dw.lib
147 mt.exe /manifest dw.dll.manifest $(SRCDIR)\win\dw.dll.$(TARGET_CPU).manifest /outputresource:dw.dll;2 156 mt.exe /manifest dw.dll.manifest $(SRCDIR)\win\dw.dll.$(TARGET_CPU).manifest /outputresource:dw.dll;2
148 -erase dw.dll.manifest 157 -erase dw.dll.manifest
149 copy dw.lib $(DWLIBDIR)\dw.lib 158 copy dw.lib $(DWLIBDIR)\dw.lib
150 copy dw.dll $(DWDLLDIR)\dw.dll 159 copy dw.dll $(DWDLLDIR)\dw.dll
151 160
156 -out:$(@) -def:$(DEFFILE2) 165 -out:$(@) -def:$(DEFFILE2)
157 $(LINKFLAGS) $(DLLLINKFLAGS) 166 $(LINKFLAGS) $(DLLLINKFLAGS)
158 $(OBJS2) $(RES) 167 $(OBJS2) $(RES)
159 $(LIBS) 168 $(LIBS)
160 << 169 <<
161 lib /def:$(DEFFILE2) /machine:$(TARGET_CPU) /out:dwcompat.lib 170 $(LIB) /def:$(DEFFILE2) /machine:$(TARGET_CPU) /out:dwcompat.lib
162 mt.exe /manifest dwcompat.dll.manifest /outputresource:dwcompat.dll;2 171 mt.exe /manifest dwcompat.dll.manifest /outputresource:dwcompat.dll;2
163 -erase dwcompat.dll.manifest 172 -erase dwcompat.dll.manifest
164 copy dwcompat.lib $(DWLIBDIR)\dwcompat.lib 173 copy dwcompat.lib $(DWLIBDIR)\dwcompat.lib
165 copy dwcompat.dll $(DWDLLDIR)\dwcompat.dll 174 copy dwcompat.dll $(DWDLLDIR)\dwcompat.dll
166 !if exists($(WEBVIEW2DIR)\build\native\$(TARGET_CPU)\WebView2Loader.dll) 175 !if exists($(WEBVIEW2DIR)\build\native\$(TARGET_CPU)\WebView2Loader.dll)