Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Releases/m71 #3

Open
wants to merge 61 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
8c55557
- applied m61 patch to m62
robin-raymond Oct 6, 2017
de13037
Updated vs_toolchain.py file to support VS2017
Oct 26, 2017
8b4c5bf
Set proper include paths for ninja files for x64 platform.
Oct 30, 2017
29c9904
Set proper include paths for ninja files for x86 platform.
Nov 1, 2017
acffe89
Changes to pass WACK and run on Xbox
Nov 7, 2017
9b0c7e4
Replaced usage of system drive with appropriate environment variables
Nov 7, 2017
b8cc22a
Added .gitignore
Jan 30, 2018
9851a7e
Sync chromium/build with changes to be upstreamed to google
robin-raymond Feb 13, 2018
64a61fb
- fixed incorrect comment regarding toolchain setup
robin-raymond Feb 15, 2018
179bc02
Sync with chromium code which reformated some of the upload to google…
robin-raymond Feb 16, 2018
6bbd16d
fix for broken prepare for x86 on linux.
vmancic Feb 20, 2018
8564530
Merge remote-tracking branch 'origin/Robin/m62-chromium-build' into r…
vmancic Mar 10, 2018
a1534f6
Fix for prepare issue on linux x86.
vmancic Mar 14, 2018
bb7e263
Created winuwp_arm64 toolchain
Mar 28, 2018
da87ccc
applied accepted chromium build changes to uwp build
robin-raymond Mar 28, 2018
8057d7a
applied accepted chromium build changes to uwp build
robin-raymond Mar 28, 2018
9603dd0
Added Microsoft ARM assembler for asm tool
Apr 4, 2018
698ec30
Updated input parameters for armasm compiler
Apr 11, 2018
dedb4ef
ATTENTION!!! host_toolchain is set to win:$host_cpu instead of win:$t…
Apr 18, 2018
feea555
fix for undefined identifier cflags_cc.
vmancic Apr 18, 2018
751c5ad
Fix for "Unresolved dependencies" during preparation phase of WebRTC …
vmancic Apr 24, 2018
e8c23ed
merged latest changes from google push to fixes branch
robin-raymond Apr 25, 2018
1fc19f3
Added armasm64 compiler for windows arm64 platform
Apr 26, 2018
45c72c4
merged latest changes from google push to fixes branch
robin-raymond Apr 30, 2018
dfa8786
Merge remote-tracking branch 'origin/Vladimir/test-second-m62-chromiu…
vmancic May 1, 2018
5b0d5bd
Merge commit 'dfa87867bab17cbac1e23af42831632147f89c15' into releases…
robin-raymond May 2, 2018
be194b2
Resolved winuwp arm build issues when used clang-cl. Pay attention on…
May 16, 2018
fae04de
Merge remote-tracking branch 'origin/releases/m62' into Sergej/201803…
May 17, 2018
2e8dba4
- reapply change to remove defines += [ "_USING_V110_SDK71_" ] for w…
robin-raymond Jun 23, 2018
c52de61
cannot build unless default libs are dynamicly link
robin-raymond Jun 23, 2018
d5a2139
compiling with C++17 enabled for WINUWP
robin-raymond Jun 24, 2018
542b170
- reapply change to remove defines += [ "_USING_V110_SDK71_" ] for w…
robin-raymond Jun 23, 2018
497094e
cannot build unless default libs are dynamicly link
robin-raymond Jun 23, 2018
914501a
compiling with C++17 enabled for WINUWP
robin-raymond Jun 24, 2018
c835c66
Merge remote-tracking branch 'origin/Robin/m62-msidl' into Robin/m66-…
robin-raymond Jun 25, 2018
813c5e3
SDK must use 17134
robin-raymond Jun 25, 2018
d357f52
Fix for AssertionError in ARM prepare phase
vmancic Jul 5, 2018
3579185
Fix for "Unexpected target_cpu value: arm"
vmancic Jul 6, 2018
b5211f9
Merge remote-tracking branch 'origin/Robin/m62-arm' into Vladimir/m66…
vmancic Jul 12, 2018
794296b
Merge remote-tracking branch 'origin/Vladimir/m66-arm' into Vladimir/…
vmancic Aug 2, 2018
4557dc7
Merge commit 'dfca77bb0d1aee2eb7ab15d1550d5c4821b48811' into releases…
robin-raymond Sep 27, 2018
cba7ef1
missing } in BUILD.GN
robin-raymond Oct 2, 2018
f0ce0a7
removed code for goma check that is no longer needed
robin-raymond Oct 2, 2018
9941608
support for arm build with win targets
robin-raymond Oct 2, 2018
170c225
removed ZW compilation option
robin-raymond Oct 2, 2018
0946a25
fixed uwp clang default toolchain
robin-raymond Oct 4, 2018
f80b444
cflag_cc - added /ZW when built for winuwp with ms compiler
Oct 11, 2018
8ba9407
Removed /ZW because winrt code is not supported anymore
Oct 11, 2018
b32cf47
Updated cc and ccx tools to support arm64.
Dec 27, 2018
9407778
Merge pull request #2 from webrtc-uwp/Sergej/20181206-m71-python
Jan 10, 2019
ffa7641
Fixed potential linker issue when for building is used Microsoft's cl…
Jan 18, 2019
a6ce039
Made changes based on comments for PRs:
Jan 22, 2019
4e120bb
Merge pull request #5 from webrtc-uwp/Sergej/20181206-m71-python
Jan 22, 2019
4ea2218
Update arm assembly build action in win build toolchain
Feb 19, 2019
0139ca4
Updated asm tool to support clang-cl and armasm.
Mar 22, 2019
916dd19
Merge pull request #6 from webrtc-uwp/Sergej/20190212-m71-arm
Mar 22, 2019
8d91370
added cpp17 flags to build engine
robin-raymond Mar 23, 2019
f0e0893
Merge remote-tracking branch 'origin/releases/m71' into Robin/m71-dot…
Mar 24, 2019
ce61deb
Merge pull request #7 from webrtc-uwp/Robin/m71-dot-net
Apr 15, 2019
5c4a1bc
Enable forcing `/std:c++17` via GN argument
djee-ms Jun 14, 2019
495bba6
Merge pull request #8 from djee-ms/stdcpp17
robin-raymond Jun 27, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion config/BUILDCONFIG.gn
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,11 @@ if (target_os == "android") {
# x86, x64 and arm are supported target CPUs.
assert(target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" ||
target_cpu == "arm64")
_default_toolchain = "//build/toolchain/win:uwp_$target_cpu"
if (is_clang) {
_default_toolchain = "//build/toolchain/win:uwp_clang_$target_cpu"
} else {
_default_toolchain = "//build/toolchain/win:uwp_$target_cpu"
}
} else if (target_os == "aix") {
_default_toolchain = "//build/toolchain/aix:$target_cpu"
} else {
Expand Down
12 changes: 8 additions & 4 deletions config/compiler/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -1147,7 +1147,7 @@ config("clang_revision") {
}

config("compiler_arm_fpu") {
if (current_cpu == "arm" && !is_ios && !is_nacl) {
if ((current_cpu == "arm" || current_cpu == "arm64") && !is_ios && !is_nacl && !is_win) {
cflags = [ "-mfpu=$arm_fpu" ]
asmflags = cflags
}
Expand Down Expand Up @@ -1781,7 +1781,7 @@ config("no_size_t_to_int_warning") {
# Code that currently generates warnings for this can include this
# config to disable them.
config("no_shorten_64_warnings") {
if (current_cpu == "x64") {
if (current_cpu == "x64" || current_cpu == "arm" || current_cpu == "arm64") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure about the "arm" -- seems to me this should only be arm64.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was added because of compiler warning 4267 (conversion from 'size_t' to 'type', possible loss of data). Warning is generated for arm and arm64 builds, so it should be added. It could be put in another config.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes but does it apply to arm? seems to me this is only arm64, no?

if (is_clang) {
cflags = [ "-Wno-shorten-64-to-32" ]
} else {
Expand Down Expand Up @@ -2194,9 +2194,13 @@ config("afdo") {
# Full symbols.
config("symbols") {
if (is_win) {
cflags = []
if (use_goma || is_clang) {
# Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
cflags = [ "/Z7" ] # Debug information in the .obj files.
# This check is added because clang-cl.exe doesn't emmit CodeView debug information for arm and arm64.
if (!(is_clang && current_os == "winuwp" && (current_cpu == "arm" || current_cpu == "arm64"))) {
# Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
cflags = [ "/Z7" ] # Debug information in the .obj files.
}
} else {
cflags = [ "/Zi" ] # Produce PDB file, no edit and continue.
}
Expand Down
9 changes: 4 additions & 5 deletions config/sysroot.gni
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,10 @@ if (current_os == target_os && current_cpu == target_cpu &&
} else if (_script_arch == "x64") {
_script_arch = "amd64"
}
assert(
exec_script("//build/dir_exists.py",
[ rebase_path(sysroot) ],
"string") == "True",
"Missing sysroot ($sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=$_script_arch")
if (exec_script("//build/dir_exists.py", [ rebase_path(sysroot) ], "string") != "True") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something that we'd be able to push back to google? If not, we will need to change this...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is added because of broken preparation for Linux x86. Not sure if this fix is still required.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you see if "official" has resolved this issue?

arch_arg = "--arch=$_script_arch"
exec_script("//build/linux/sysroot_scripts/install-sysroot-alt.py", [ arch_arg ])
}
}
} else if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
Expand Down
55 changes: 49 additions & 6 deletions config/win/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,27 @@ declare_args() {
# and with this switch, clang emits it like this:
# foo/bar.cc:12:34: error: something went wrong
use_clang_diagnostics_format = false

# Enable C++17 even on Win32.
# For UWP, C++17 is always enabled because it is needed for C++/WinRT to
# compile the wrappers.
# This is needed to work around the fact that Abseil defines an incompatible
# absl::optional in pre-c++17 mode while std::optional is used in c++17 mode.
# So programs linking against webrtc.lib need to compile with the correct mode.
std_cpp17 = false
}

# This is included by reference in the //build/config/compiler config that
# is applied to all targets. It is here to separate out the logic that is
# Windows-only.
config("compiler") {
configs = []
if (current_os == "winuwp") {
std_cpp17 = true
}
if (std_cpp17) {
configs += [ "//build/config/win:cpp17" ]
}
if (current_cpu == "x86") {
asmflags = [
# When /safeseh is specified, the linker will only produce an image if it
Expand Down Expand Up @@ -87,7 +102,7 @@ config("compiler") {
if (is_clang) {
cflags += [ "-fmsc-version=1911" ]

if (current_cpu == "x86") {
if (current_cpu == "x86" || current_cpu == "arm") {
cflags += [ "-m32" ]
} else {
cflags += [ "-m64" ]
Expand Down Expand Up @@ -243,7 +258,7 @@ config("runtime_library") {
"_SECURE_ATL",
]

if (!use_vs_code_analysis) {
if ((!use_vs_code_analysis) && (current_os != "winuwp")) {
# This is required for ATL to use XP-safe versions of its functions.
# However it is prohibited when using /analyze
defines += [ "_USING_V110_SDK71_" ]
Expand Down Expand Up @@ -281,10 +296,17 @@ config("runtime_library") {
} else {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ]
}
cflags_cc += [
"/ZW",
"/EHsc",
]

#TEMPORARY!!! Clang-cl.exe missing unwind support for Windows arm and arm64. This will generate errors in places where try/catch are used
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rephrase in a way that we can push back to google. It's okay to say this can be removed once clang-cl.exe has a feature but better to phrase properly for something we can push as I intend to push it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is something that definitely shouldn't be pushed to Google. Added just to see what other issues exist for arm and arm64.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need it in such a way that I can submit to google. We don't want to have differences we can't submit back.

if (is_clang && (current_cpu == "arm" || current_cpu == "arm64")) {
cflags_cc += [
"/EHs-c-",
]
} else {
cflags_cc += [
"/EHsc"
]
}

# This warning is given because the linker cannot tell the difference
# between consuming WinRT APIs versus authoring WinRT within static
Expand All @@ -308,6 +330,13 @@ config("runtime_library") {
}
}

config("cpp17") {
cflags_cc = [
"/std:c++17",
"/Zc:__cplusplus",
]
}

# Sets the default Windows build version. This is separated because some
# targets need to manually override it for their compiles.
config("winver") {
Expand Down Expand Up @@ -376,6 +405,20 @@ config("common_linker_setup") {
"/DYNAMICBASE",
]

# ASLR makes debugging with windbg difficult because Chrome.exe and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How did you find this information about chrome? just wondering where it came from

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is Google comment and it was present in older version of that file. I believe that is from m62.

# Chrome.dll share the same base name. As result, windbg will name the
# Chrome.dll module like chrome_<base address>, where <base address>
# typically changes with each launch. This in turn means that breakpoints in
# Chrome.dll don't stick from one launch to the next. For this reason, we
# turn ASLR off in debug builds.
if (is_debug) {
if (current_cpu != "arm" && current_cpu != "arm64") {
ldflags += [ "/DYNAMICBASE:NO" ]
}
} else {
ldflags += [ "/DYNAMICBASE" ]
}

if (win_linker_timing) {
ldflags += [
"/time",
Expand Down
117 changes: 92 additions & 25 deletions toolchain/win/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@ if (current_toolchain == default_toolchain) {
# You would also define a toolchain_args variable with at least these set:
# current_cpu: current_cpu to pass as a build arg
# current_os: current_os to pass as a build arg
# Some other supported variables are:
# is_clang : flag whether to use or not clang compiler. Used when
# invoking this toolchain not as the default one.
# use_lld : flag whether to use or not lld linker. Used when
# invoking this toolchain not as the default one. Added
# because some runtime issues are discovered when lld is
# used for linking libs and apps build with msvc cl.exe
template("msvc_toolchain") {
toolchain(target_name) {
# When invoking this toolchain not as the default one, these args will be
Expand Down Expand Up @@ -98,7 +105,14 @@ template("msvc_toolchain") {
cl = "${analyzer_prefix} ${cl}"
}

if (use_lld) {
# Override use_lld value from default toolchain when passed like input argument
if (defined(toolchain_args.use_lld)) {
toolchain_uses_lld = toolchain_args.use_lld
} else {
toolchain_uses_lld = use_lld
}

if (toolchain_uses_lld) {
if (host_os == "win") {
lld_link = "lld-link.exe"
} else {
Expand Down Expand Up @@ -138,7 +152,7 @@ template("msvc_toolchain") {
if (defined(invoker.sys_lib_flags)) {
linker_wrapper = ""
sys_lib_flags = "${invoker.sys_lib_flags} " # Note trailing space
} else if (use_lld) {
} else if (toolchain_uses_lld) {
# Invoke ninja as wrapper instead of tool wrapper, because python
# invocation requires higher cpu usage compared to ninja invocation, and
# the python wrapper is only needed to work around link.exe problems.
Expand Down Expand Up @@ -171,8 +185,19 @@ template("msvc_toolchain") {
outputs = [
"$object_subdir/{{source_name_part}}.obj",
]

command = "$env_wrapper$cl /nologo /showIncludes ${clflags} $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\""

rspfile = "{{output}}.rsp"

if (target_name == "uwp_clang_arm" || target_name == "win_clang_arm") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make it an rspFile for all paths.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, not sure why one path has rspFile and others do not. Original does not have rspPath.

command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\" --target=arm-windows-msvc /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE -Wno-unknown-argument"
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}}"
} else if (target_name == "uwp_clang_arm64" || target_name == "win_clang_arm64") {
command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\" --target=aarch64-windows-msvc /DWindowsSDKDesktopARM64Support=1"
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}}"
} else {
command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\""
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}}"
}
}

tool("cxx") {
Expand All @@ -187,8 +212,19 @@ template("msvc_toolchain") {
outputs = [
"$object_subdir/{{source_name_part}}.obj",
]

command = "$env_wrapper$cl /nologo /showIncludes ${clflags} $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\""

rspfile = "{{output}}.rsp"

if (target_name == "uwp_clang_arm" || target_name == "win_clang_arm") {
command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\" --target=arm-windows-msvc /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE -Wno-unknown-argument"
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}}"
} else if (target_name == "uwp_clang_arm64" || target_name == "win_clang_arm64") {
command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\" --target=aarch64-windows-msvc /DWindowsSDKDesktopARM64Support=1"
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}}"
} else {
command = "$env_wrapper$cl /nologo /showIncludes ${clflags} @$rspfile /c {{source}} /Fo{{output}} /Fd\"$pdbname\""
rspfile_content = "$sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rsp consistency ?

}
}

tool("rc") {
Expand All @@ -201,12 +237,31 @@ template("msvc_toolchain") {
}

tool("asm") {
if (toolchain_args.current_cpu == "x64") {
ml = "ml64.exe"
if (!toolchain_uses_clang) {
if (toolchain_args.current_cpu == "x64") {
ml = "ml64.exe"
} else if (toolchain_args.current_cpu == "x86") {
ml = "ml.exe"
} else if (toolchain_args.current_cpu == "arm"){
ml = "armasm.exe"
} else if (toolchain_args.current_cpu == "arm64"){
ml = "armasm64.exe"
} else {
assert(false, "Unsupported CPU tartget")
}
} else {
ml = "ml.exe"
ml = "$env_wrapper$cl"
}
command = "$python_path $tool_wrapper_path asm-wrapper $env $ml {{defines}} {{include_dirs}} {{asmflags}} /c /Fo{{output}} {{source}}"

if (toolchain_args.current_cpu == "x64" || toolchain_args.current_cpu == "x86") {
command = "$python_path $tool_wrapper_path asm-wrapper $env $ml {{defines}} {{include_dirs}} {{asmflags}} /c /Fo{{output}} {{source}}"
} else {
command = "$python_path $tool_wrapper_path asm-wrapper $env $ml -oldit -16 {{include_dirs}} {{source}} -o {{output}}"
if (is_clang && toolchain_args.current_cpu == "arm") {
command += " --target=arm-pc-windows"
}
}

description = "ASM {{output}}"
outputs = [
"$object_subdir/{{source_name_part}}.obj",
Expand Down Expand Up @@ -338,44 +393,39 @@ if (host_os == "win") {
clang_cl = "clang-cl"
}

if (target_cpu == "x86" || target_cpu == "x64") {
win_build_host_cpu = target_cpu
} else {
win_build_host_cpu = host_cpu
}

# x86, arm and arm64 build cpu toolchains for Windows (not WinUWP). Only
# define when the build cpu is one of these architectures since we don't
# do any cross compiles when targeting x64-bit (the build does generate
# some 64-bit stuff from x86/arm/arm64 target builds).
if (win_build_host_cpu != "x64") {
if (target_cpu != "x64") {
build_cpu_toolchain_data = exec_script("setup_toolchain.py",
[
visual_studio_path,
windows_sdk_path,
visual_studio_runtime_dirs,
host_os,
win_build_host_cpu,
"environment." + win_build_host_cpu,
target_cpu,
"environment." + target_cpu,
],
"scope")

msvc_toolchain(win_build_host_cpu) {
environment = "environment." + win_build_host_cpu
msvc_toolchain(target_cpu) {
environment = "environment." + target_cpu
cl = "${goma_prefix}\"${build_cpu_toolchain_data.vc_bin_dir}/cl.exe\""
if (host_os != "win") {
# For win cross build.
sys_lib_flags = "${build_cpu_toolchain_data.libpath_flags}"
}
toolchain_args = {
current_os = "win"
current_cpu = win_build_host_cpu
current_cpu = target_cpu
is_clang = false
use_lld = false
}
}

msvc_toolchain("win_clang_" + win_build_host_cpu) {
environment = "environment." + win_build_host_cpu
msvc_toolchain("win_clang_" + target_cpu) {
environment = "environment." + target_cpu
prefix = rebase_path("$clang_base_path/bin", root_build_dir)
cl = "${goma_prefix}$prefix/${clang_cl}"
sys_include_flags = "${build_cpu_toolchain_data.include_flags_imsvc}"
Expand All @@ -386,8 +436,9 @@ if (win_build_host_cpu != "x64") {

toolchain_args = {
current_os = "win"
current_cpu = win_build_host_cpu
current_cpu = target_cpu
is_clang = true
use_lld = true
}
}
}
Expand Down Expand Up @@ -420,6 +471,7 @@ template("win_x64_toolchains") {
is_clang = false
current_os = "win"
current_cpu = "x64"
use_lld = false
}
}

Expand All @@ -440,6 +492,7 @@ template("win_x64_toolchains") {
is_clang = true
current_os = "win"
current_cpu = "x64"
use_lld = true
}
}
}
Expand Down Expand Up @@ -484,6 +537,20 @@ if (target_os == "winuwp") {
current_os = "winuwp"
current_cpu = target_cpu
is_clang = false
use_lld = false
}
}
msvc_toolchain("uwp_clang_" + target_cpu) {
environment = "environment.store_" + target_cpu
prefix = rebase_path("$clang_base_path/bin", root_build_dir)
cl = "${goma_prefix}$prefix/${clang_cl}"
sys_include_flags = "${store_cpu_toolchain_data.include_flags_imsvc}"

toolchain_args = {
current_os = "winuwp"
current_cpu = target_cpu
is_clang = true
use_lld = true
}
}
}
3 changes: 2 additions & 1 deletion toolchain/win/setup_toolchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,8 @@ def q(s): # Quote s if it contains spaces or other weird characters.
print 'vc_lib_path = ' + gn_helpers.ToGNString(vc_lib_path)
if (target_store != True):
# Path is assumed not to exist for desktop applications
assert vc_lib_atlmfc_path
if (cpu != 'arm' and cpu != 'arm64'):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure this is ok for other non uwp builds.

assert vc_lib_atlmfc_path
# Possible atlmfc library path gets introduced in the future for store thus
# output result if a result exists.
if (vc_lib_atlmfc_path != ''):
Expand Down
Loading