185 lines
8.7 KiB
Plaintext
185 lines
8.7 KiB
Plaintext
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Should only be running on Windows.
|
|
assert(is_win)
|
|
|
|
# Setup the Visual Studio state.
|
|
#
|
|
# Its argument is the location to write the environment files.
|
|
# It will write "environment.x86" and "environment.x64" to this directory,
|
|
# and return a list to us.
|
|
#
|
|
# The list contains the include path as its only element. (I'm expecting to
|
|
# add more so it's currently a list inside a list.)
|
|
msvc_config = [["foo"]]
|
|
#exec_script("get_msvc_config.py",
|
|
# [relative_root_output_dir],
|
|
# "value")
|
|
|
|
# 32-bit toolchain -------------------------------------------------------------
|
|
|
|
toolchain("32") {
|
|
tool("cc") {
|
|
command = "ninja -t msvc -e \$arch -- cl.exe /nologo /showIncludes /FC @\$out.rsp /c \$in /Fo\$out /Fd\$pdbname"
|
|
description = "CC \$out"
|
|
rspfile = "\$out.rsp"
|
|
rspfile_content = "\$defines \$includes \$cflags \$cflags_c"
|
|
deps = "msvc"
|
|
}
|
|
tool("cxx") {
|
|
command = "ninja -t msvc -e \$arch -- cl.exe /nologo /showIncludes /FC @\$out.rsp /c \$in /Fo\$out /Fd\$pdbname"
|
|
description = "CXX \$out"
|
|
rspfile = "\$out.rsp"
|
|
rspfile_content = "\$defines \$includes \$cflags \$cflags_cc"
|
|
deps = "msvc"
|
|
}
|
|
#tool("idl") {
|
|
# command = $python_path gyp-win-tool midl-wrapper \$arch \$outdir \$tlb \$h \$dlldata \$iid \$
|
|
# \$proxy \$in \$idlflags
|
|
# description = IDL \$in
|
|
#}
|
|
#tool("rc") {
|
|
# command = $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$defines \$includes \$rcflags \$
|
|
# /fo\$out \$in
|
|
# description = RC \$in
|
|
#}
|
|
#tool("asm") {
|
|
# command = $python_path gyp-win-tool asm-wrapper \$arch ml.exe \$defines \$includes /c /Fo \$
|
|
# \$out \$in
|
|
# description = ASM \$in
|
|
#}
|
|
tool("alink") {
|
|
command = "$python_path gyp-win-tool link-wrapper \$arch lib.exe /nologo /ignore:4221 /OUT:\$out @\$out.rsp"
|
|
description = "LIB \$out"
|
|
rspfile = "\$out.rsp"
|
|
rspfile_content = "\$in_newline \$libflags"
|
|
}
|
|
#tool("solink_embed_inc") {
|
|
# 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 && $python_path gyp-win-tool manifest-to-rc \$arch \$dll.manifest \$
|
|
# \$dll.manifest.rc 2 && $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$
|
|
# \$dll.manifest.rc && $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$
|
|
# \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp \$dll.manifest.res
|
|
# description = LINK_EMBED_INC(DLL) \$dll
|
|
# restat = 1
|
|
# rspfile = \$dll.rsp
|
|
# rspfile_content = \$libs \$in_newline \$ldflags
|
|
#}
|
|
#tool("solink_module_embed_inc") {
|
|
# 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 && $python_path gyp-win-tool manifest-to-rc \$arch \$dll.manifest \$
|
|
# \$dll.manifest.rc 2 && $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$
|
|
# \$dll.manifest.rc && $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo \$
|
|
# \$implibflag /DLL /OUT:\$dll /PDB:\$dll.pdb @\$dll.rsp \$dll.manifest.res
|
|
# description = LINK_EMBED_INC(DLL) \$dll
|
|
# restat = 1
|
|
# rspfile = \$dll.rsp
|
|
# rspfile_content = \$libs \$in_newline \$ldflags
|
|
#}
|
|
#rule link_embed_inc
|
|
# 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 && \$
|
|
# $python_path gyp-win-tool manifest-to-rc \$arch \$out.manifest \$out.manifest.rc 1 && \$
|
|
# $python_path gyp-win-tool rc-wrapper \$arch rc.exe \$out.manifest.rc && \$
|
|
# $python_path gyp-win-tool link-wrapper \$arch link.exe /nologo /OUT:\$out /PDB:\$out.pdb \$
|
|
# @\$out.rsp \$out.manifest.res
|
|
# description = LINK_EMBED_INC \$out
|
|
# rspfile = \$out.rsp
|
|
# rspfile_content = \$in_newline \$libs \$ldflags
|
|
#rule solink_embed
|
|
# 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 \$
|
|
# -outputresource:\$dll;2
|
|
# description = LINK_EMBED(DLL) \$dll
|
|
# restat = 1
|
|
# rspfile = \$dll.rsp
|
|
# rspfile_content = \$libs \$in_newline \$ldflags
|
|
#rule solink_module_embed
|
|
# 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 \$
|
|
# -outputresource:\$dll;2
|
|
# description = LINK_EMBED(DLL) \$dll
|
|
# restat = 1
|
|
# rspfile = \$dll.rsp
|
|
# rspfile_content = \$libs \$in_newline \$ldflags
|
|
#rule link_embed
|
|
# 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 -outputresource:\$out;1
|
|
# description = LINK_EMBED \$out
|
|
# rspfile = \$out.rsp
|
|
# rspfile_content = \$in_newline \$libs \$ldflags
|
|
tool("solink") {
|
|
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"
|
|
description = "LINK(DLL) \$dll"
|
|
restat = "1"
|
|
rspfile = "\$dll.rsp"
|
|
rspfile_content = "\$libs \$in_newline \$ldflags"
|
|
}
|
|
tool("solink_module") {
|
|
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"
|
|
description = "LINK(DLL) \$dll"
|
|
restat = "1"
|
|
rspfile = "\$dll.rsp"
|
|
rspfile_content = "\$libs \$in_newline \$ldflags"
|
|
}
|
|
tool("link") {
|
|
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"
|
|
description = "LINK \$out"
|
|
rspfile = "\$out.rsp"
|
|
rspfile_content = "\$in_newline \$libs \$ldflags"
|
|
}
|
|
tool("stamp") {
|
|
command = "$python_path gyp-win-tool stamp \$out"
|
|
description = "STAMP \$out"
|
|
}
|
|
tool("copy") {
|
|
command = "$python_path gyp-win-tool recursive-mirror \$in \$out"
|
|
description = "COPY \$in \$out"
|
|
}
|
|
}
|
|
|
|
# 64-bit toolchain -------------------------------------------------------------
|
|
|
|
toolchain("64") {
|
|
}
|
|
|
|
# SDK setup --------------------------------------------------------------------
|
|
|
|
config("sdk") {
|
|
# The include path is the stuff returned by the script plus out own WTL
|
|
# checkout.
|
|
# TODO(brettw) should adding WTL be at this level or should it be more on
|
|
# a per-project basis?
|
|
includes = msvc_config[0] + "../../third_party/wtl/include"
|
|
|
|
defines = [
|
|
"_ATL_NO_OPENGL",
|
|
"_SECURE_ATL",
|
|
"_WIN32_WINNT=0x0602",
|
|
"_WINDOWS",
|
|
"CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
|
|
"NOMINMAX",
|
|
"NTDDI_VERSION=0x06020000",
|
|
"PSAPI_VERSION=1",
|
|
"WIN32",
|
|
"WIN32_LEAN_AND_MEAN",
|
|
"WINVER=0x0602",
|
|
]
|
|
}
|