Fix win32 build.
Follow up to aosp/1711913.
Fix a copy/paste mistake in platform_windows.cc
(PerfettoOnThreadExit vs OnThreadExit) which caused
a failure in the win32-archive-dbg/rel chromium
bots (https://ci.chromium.org/b/8846610513401740704).
This CL also makes it possible to build for win32
setting target_cpu=host_cpu="x86" in our standalone
build.
Also temporarily exclude some tests that fail on MSVC.
Bug: 174454879
Change-Id: I038b252020c68a4f3344441f3797f4786d94dd0b
diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
index 31941ed..ffe5725 100644
--- a/gn/standalone/BUILD.gn
+++ b/gn/standalone/BUILD.gn
@@ -209,10 +209,10 @@
ldflags += [ "-flto=full" ]
}
- # We support only x64 builds on Windows.
- assert(!is_win || current_cpu == "x64")
-
- if (current_cpu == "arm") {
+ if (is_win) {
+ # We support only x86/x64 builds on Windows.
+ assert(current_cpu == "x64" || current_cpu == "x86")
+ } else if (current_cpu == "arm") {
cflags += [
"-march=armv7-a",
"-mfpu=neon",
diff --git a/gn/standalone/toolchain/BUILD.gn b/gn/standalone/toolchain/BUILD.gn
index d7f54db..ca8f247 100644
--- a/gn/standalone/toolchain/BUILD.gn
+++ b/gn/standalone/toolchain/BUILD.gn
@@ -376,10 +376,7 @@
toolchain("msvc") {
lib_switch = ""
lib_dir_switch = "/LIBPATH:"
-
- sys_lib_flags = "/LIBPATH:\"${win_sdk_lib_dir}\\ucrt\\x64\" "
- sys_lib_flags += "/LIBPATH:\"${win_sdk_lib_dir}\\um\\x64\" "
- sys_lib_flags += "/LIBPATH:\"${win_msvc_lib_dir}\" "
+ sys_lib_flags = string_join(" ", win_msvc_sys_lib_flags)
# Note: /showIncludes below is required for ninja, to build a complete
# dependency graph for headers. Removing it breaks incremental builds.
diff --git a/gn/standalone/toolchain/msvc.gni b/gn/standalone/toolchain/msvc.gni
index 34c0a50..7ec7313 100644
--- a/gn/standalone/toolchain/msvc.gni
+++ b/gn/standalone/toolchain/msvc.gni
@@ -36,22 +36,28 @@
# These variables are required both for clang-cl.exe and MSVC (cl.exe).
win_sdk_lib_dir = _win_sdk_base + "\\Lib\\" + _win_sdk_ver
- win_msvc_lib_dir = _win_msvc_base + "\\lib\\x64"
+ win_msvc_lib_dir = _win_msvc_base + "\\lib\\${target_cpu}"
# These variables are only required when building with MSVC.
# Clang is clever enough to figure out the right include path by querying the
# registry and detect the Windows SDK path (it still needs the /LIBPATH
# though, hence the _lib_dir above).
- win_msvc_bin_dir = _win_msvc_base + "\\bin\\Hostx64\\x64"
+ win_msvc_bin_dir = _win_msvc_base + "\\bin\\Host${host_cpu}\\${target_cpu}"
win_msvc_inc_dirs = [
_win_msvc_base + "\\include",
_win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\ucrt",
_win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\um",
_win_sdk_base + "\\Include\\" + _win_sdk_ver + "\\shared",
]
+ win_msvc_sys_lib_flags = [
+ "/LIBPATH:\"${win_sdk_lib_dir}\\ucrt\\${target_cpu}\"",
+ "/LIBPATH:\"${win_sdk_lib_dir}\\um\\${target_cpu}\"",
+ "/LIBPATH:\"${win_msvc_lib_dir}\"",
+ ]
} else {
win_sdk_lib_dir = ""
win_msvc_lib_dir = ""
win_msvc_bin_dir = ""
win_msvc_inc_dirs = []
+ win_msvc_sys_lib_flags = []
}