ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / build / config / win / BUILD.gn
blob201d45baf5b7f621c011462afbe9d0ba711fb1a8
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.
5 import("//build/config/win/visual_studio_version.gni")
7 # Compiler setup for the Windows SDK. Applied to all targets.
8 config("sdk") {
9   # The include path is the stuff returned by the script.
10   #include_dirs = msvc_config[0]  TODO(brettw) make this work.
12   defines = [
13     "_ATL_NO_OPENGL",
14     "_WINDOWS",
15     "CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
16     "NTDDI_VERSION=0x06030000",
17     "PSAPI_VERSION=1",
18     "WIN32",
19     "_SECURE_ATL",
20   ]
23 # Sets the default Windows build version. This is separated because some
24 # targets need to manually override it for their compiles.
25 config("winver") {
26   defines = [
27     "_WIN32_WINNT=0x0603",
28     "WINVER=0x0603",
29   ]
32 # Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs.
33 config("sdk_link") {
34   if (current_cpu == "x64") {
35     ldflags = [ "/MACHINE:X64" ]
36     lib_dirs = [
37       "$windows_sdk_path\Lib\winv6.3\um\x64",
38       "$visual_studio_path\VC\lib\amd64",
39       "$visual_studio_path\VC\atlmfc\lib\amd64",
40     ]
41   } else {
42     ldflags = [
43       "/MACHINE:X86",
44       "/SAFESEH",  # Not compatible with x64 so use only for x86.
45     ]
46     lib_dirs = [
47       "$windows_sdk_path\Lib\winv6.3\um\x86",
48       "$visual_studio_path\VC\lib",
49       "$visual_studio_path\VC\atlmfc\lib",
50     ]
51     if (!is_asan) {
52       ldflags += [ "/largeaddressaware" ]
53     }
54   }
57 # This default linker setup is provided separately from the SDK setup so
58 # targets who want different library configurations can remove this and specify
59 # their own.
60 config("common_linker_setup") {
61   ldflags = [
62     "/FIXED:NO",
63     "/ignore:4199",
64     "/ignore:4221",
65     "/NXCOMPAT",
67     # Suggested by Microsoft Devrel to avoid
68     #   LINK : fatal error LNK1248: image size (80000000)
69     #   exceeds maximum allowable size (80000000)
70     # which started happening more regularly after VS2013 Update 4.
71     "/maxilksize:2147483647",
72   ]
74   # ASLR makes debugging with windbg difficult because Chrome.exe and
75   # Chrome.dll share the same base name. As result, windbg will name the
76   # Chrome.dll module like chrome_<base address>, where <base address>
77   # typically changes with each launch. This in turn means that breakpoints in
78   # Chrome.dll don't stick from one launch to the next. For this reason, we
79   # turn ASLR off in debug builds.
80   if (is_debug) {
81     ldflags += [ "/DYNAMICBASE:NO" ]
82   } else {
83     ldflags += [ "/DYNAMICBASE" ]
84   }
86   # Delay loaded DLLs.
87   ldflags += [
88     "/DELAYLOAD:dbghelp.dll",
89     "/DELAYLOAD:dwmapi.dll",
90     "/DELAYLOAD:shell32.dll",
91     "/DELAYLOAD:uxtheme.dll",
92   ]
95 # Subsystem --------------------------------------------------------------------
97 config("console") {
98   ldflags = [ "/SUBSYSTEM:CONSOLE" ]
100 config("windowed") {
101   ldflags = [ "/SUBSYSTEM:WINDOWS" ]
104 # Incremental linking ----------------------------------------------------------
106 config("incremental_linking") {
107   ldflags = [ "/INCREMENTAL" ]
109 config("no_incremental_linking") {
110   ldflags = [ "/INCREMENTAL:NO" ]
113 # Character set ----------------------------------------------------------------
115 # Not including this config means "ansi" (8-bit system codepage).
116 config("unicode") {
117   defines = [
118     "_UNICODE",
119     "UNICODE",
120   ]
123 # Lean and mean ----------------------------------------------------------------
125 # Some third party code might not compile with WIN32_LEAN_AND_MEAN so we have
126 # to have a separate config for it. Remove this config from your target to
127 # get the "bloaty and accomodating" version of windows.h.
128 config("lean_and_mean") {
129   defines = [ "WIN32_LEAN_AND_MEAN" ]
132 # Nominmax --------------------------------------------------------------------
134 # Some third party code defines NOMINMAX before including windows.h, which
135 # then causes warnings when it's been previously defined on the command line.
136 # For such targets, this config can be removed.
138 config("nominmax") {
139   defines = [ "NOMINMAX" ]