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