1d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# Copyright (c) 2013 The Chromium Authors. All rights reserved.
2d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# Use of this source code is governed by a BSD-style license that can be
3d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# found in the LICENSE file.
4d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
5d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# Should only be running on Windows.
6d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochassert(is_win)
7d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
8d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# Setup the Visual Studio state.
9d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch#
10d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# Its argument is the location to write the environment files.
11d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# It will write "environment.x86" and "environment.x64" to this directory,
12d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# and return a list to us.
13d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch#
14d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# The list contains the include path as its only element. (I'm expecting to
15d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# add more so it's currently a list inside a list.)
16d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochmsvc_config = [["foo"]]
17d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch#exec_script("get_msvc_config.py",
18d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch                     #     [relative_root_output_dir],
19d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch                     #     "value")
20d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
21d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# 32-bit toolchain -------------------------------------------------------------
22d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
23d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochtoolchain("32") {
24d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("cc") {
25d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "ninja -t msvc -e \$arch -- cl.exe /nologo /showIncludes /FC @\$out.rsp /c \$in /Fo\$out /Fd\$pdbname"
26d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "CC \$out"
27d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$out.rsp"
28d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$defines \$includes \$cflags \$cflags_c"
29d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    deps = "msvc"
30d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
31d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("cxx") {
32d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "ninja -t msvc -e \$arch -- cl.exe /nologo /showIncludes /FC @\$out.rsp /c \$in /Fo\$out /Fd\$pdbname"
33d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "CXX \$out"
34d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$out.rsp"
35d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$defines \$includes \$cflags \$cflags_cc"
36d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    deps = "msvc"
37d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
38d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #tool("idl") {
39d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = $python_path gyp-win-tool midl-wrapper \$arch \$outdir \$tlb \$h \$dlldata \$iid \$
40d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$proxy \$in \$idlflags
41d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = IDL \$in
42d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #}
43d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #tool("rc") {
44d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$defines \$includes \$rcflags \$
45d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /fo\$out \$in
46d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = RC \$in
47d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #}
48d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #tool("asm") {
49d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = $python_path gyp-win-tool asm-wrapper \$arch ml.exe \$defines \$includes /c /Fo \$
50d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$out \$in
51d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = ASM \$in
52d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #}
53d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("alink") {
54d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "$python_path gyp-win-tool link-wrapper \$arch lib.exe /nologo /ignore:4221 /OUT:\$out @\$out.rsp"
55d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "LIB \$out"
56d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$out.rsp"
57d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$in_newline \$libflags"
58d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
59d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #tool("solink_embed_inc") {
60d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag \$
61d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool \$
62d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && \$
63d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests \$
64d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      -out:\$dll.manifest && $python_path gyp-win-tool manifest-to-rc \$arch \$dll.manifest \$
65d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$dll.manifest.rc 2 && $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$
66d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$dll.manifest.rc && $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$
67d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp \$dll.manifest.res
68d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED_INC(DLL) \$dll
69d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  restat = 1
70d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$dll.rsp
71d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$libs \$in_newline \$ldflags
72d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #}
73d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #tool("solink_module_embed_inc") {
74d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag \$
75d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool \$
76d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && \$
77d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests \$
78d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      -out:\$dll.manifest && $python_path gyp-win-tool manifest-to-rc \$arch \$dll.manifest \$
79d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$dll.manifest.rc 2 && $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$
80d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$dll.manifest.rc && $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$
81d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp \$dll.manifest.res
82d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED_INC(DLL) \$dll
83d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  restat = 1
84d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$dll.rsp
85d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$libs \$in_newline \$ldflags
86d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #}
87d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #rule link_embed_inc
88d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo /OUT:\$out \$
89d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /PDB:\$out.pdb @\$out.rsp && $python_path gyp-win-tool manifest-wrapper \$arch cmd /c \$
90d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      if exist \$out.manifest del \$out.manifest && $python_path gyp-win-tool \$
91d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests -out:\$out.manifest && \$
92d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool manifest-to-rc \$arch \$out.manifest \$out.manifest.rc 1 && \$
93d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$out.manifest.rc && \$
94d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo /OUT:\$out /PDB:\$out.pdb \$
95d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      @\$out.rsp \$out.manifest.res
96d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED_INC \$out
97d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$out.rsp
98d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$in_newline \$libs \$ldflags
99d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #rule solink_embed
100d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag \$
101d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool \$
102d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && \$
103d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests \$
104d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      -outputresource:\$dll;2
105d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED(DLL) \$dll
106d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  restat = 1
107d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$dll.rsp
108d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$libs \$in_newline \$ldflags
109d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #rule solink_module_embed
110d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag \$
111d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool \$
112d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && \$
113d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests \$
114d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      -outputresource:\$dll;2
115d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED(DLL) \$dll
116d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  restat = 1
117d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$dll.rsp
118d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$libs \$in_newline \$ldflags
119d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #rule link_embed
120d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  command = cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo /OUT:\$out \$
121d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      /PDB:\$out.pdb @\$out.rsp && $python_path gyp-win-tool manifest-wrapper \$arch cmd /c \$
122d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      if exist \$out.manifest del \$out.manifest && $python_path gyp-win-tool \$
123d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #      manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests -outputresource:\$out;1
124d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  description = LINK_EMBED \$out
125d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile = \$out.rsp
126d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  #  rspfile_content = \$in_newline \$libs \$ldflags
127d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("solink") {
128d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests -out:\$dll.manifest"
129d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "LINK(DLL) \$dll"
130d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    restat = "1"
131d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$dll.rsp"
132d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$libs \$in_newline \$ldflags"
133d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
134d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("solink_module") {
135d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp && $python_path gyp-win-tool manifest-wrapper \$arch cmd /c if exist \$dll.manifest del \$dll.manifest && $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests -out:\$dll.manifet"
136d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "LINK(DLL) \$dll"
137d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    restat = "1"
138d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$dll.rsp"
139d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$libs \$in_newline \$ldflags"
140d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
141d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("link") {
142d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "cmd /c $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo /OUT:\$out /PDB:\$out.pdb @\$out.rsp && $python_path gyp-win-tool manifest-wrapper \$arch cmd /c if exist \$out.manifest del \$out.manifest && $python_path gyp-win-tool manifest-wrapper \$arch mt.exe -nologo -manifest \$manifests -out:\$out.manifest"
143d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "LINK \$out"
144d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile = "\$out.rsp"
145d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    rspfile_content = "\$in_newline \$libs \$ldflags"
146d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
147d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("stamp") {
148d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "$python_path gyp-win-tool stamp \$out"
149d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "STAMP \$out"
150d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
151d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  tool("copy") {
152d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    command = "$python_path gyp-win-tool recursive-mirror \$in \$out"
153d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    description = "COPY \$in \$out"
154d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  }
155d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
156d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
157d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# 64-bit toolchain -------------------------------------------------------------
158d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
159d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochtoolchain("64") {
160d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
161d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
162d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch# SDK setup --------------------------------------------------------------------
163d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
164d3868032626d59662ff73b372b5d584c1d144c53Ben Murdochconfig("sdk") {
165d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  # The include path is the stuff returned by the script plus out own WTL
166d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  # checkout.
167d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  # TODO(brettw) should adding WTL be at this level or should it be more on
168d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  # a per-project basis?
169d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  includes = msvc_config[0] + "../../third_party/wtl/include"
170d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch
171d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  defines = [
172d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "_ATL_NO_OPENGL",
173d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "_SECURE_ATL",
174d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "_WIN32_WINNT=0x0602",
175d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "_WINDOWS",
176d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
177d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "NOMINMAX",
178d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "NTDDI_VERSION=0x06020000",
179d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "PSAPI_VERSION=1",
180d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "WIN32",
181d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "WIN32_LEAN_AND_MEAN",
182d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch    "WINVER=0x0602",
183d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch  ]
184d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch}
185