Mercurial > dwindows
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) |