Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Side by Side Diff: build/config/win/BUILD.gn

Issue 306613002: Add support for VS express to the GN build. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | build/config/win/visual_studio_version.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/win/visual_studio_version.gni") 5 import("//build/config/win/visual_studio_version.gni")
6 6
7 # Compiler setup for the Windows SDK. Applied to all targets. 7 # Compiler setup for the Windows SDK. Applied to all targets.
8 config("sdk") { 8 config("sdk") {
9 # The include path is the stuff returned by the script. 9 # The include path is the stuff returned by the script.
10 #include_dirs = msvc_config[0] TODO(brettw) make this work. 10 #include_dirs = msvc_config[0] TODO(brettw) make this work.
11 11
12 defines = [ 12 defines = [
13 "_ATL_NO_OPENGL", 13 "_ATL_NO_OPENGL",
14 "_SECURE_ATL",
15 "_WIN32_WINNT=0x0602", 14 "_WIN32_WINNT=0x0602",
16 "_WINDOWS", 15 "_WINDOWS",
17 "CERT_CHAIN_PARA_HAS_EXTRA_FIELDS", 16 "CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
18 "NTDDI_VERSION=0x06020000", 17 "NTDDI_VERSION=0x06020000",
19 "PSAPI_VERSION=1", 18 "PSAPI_VERSION=1",
20 "WIN32", 19 "WIN32",
21 "WINVER=0x0602", 20 "WINVER=0x0602",
22 ] 21 ]
23 22
24 # The Windows SDK include directories must be first. They both have a sal.h, 23 # The Windows SDK include directories must be first. They both have a sal.h,
25 # and the SDK one is newer and the SDK uses some newer features from it not 24 # and the SDK one is newer and the SDK uses some newer features from it not
26 # present in the Visual Studio one. 25 # present in the Visual Studio one.
27 include_dirs = [ 26 include_dirs = [
28 "$windows_sdk_path\Include\shared", 27 "$windows_sdk_path\Include\shared",
29 "$windows_sdk_path\Include\um", 28 "$windows_sdk_path\Include\um",
30 "$windows_sdk_path\Include\winrt", 29 "$windows_sdk_path\Include\winrt",
31 "$visual_studio_path\VC\include", 30 "$visual_studio_path\VC\include",
32 "$visual_studio_path\VC\atlmfc\include", 31 "$visual_studio_path\VC\atlmfc\include",
33 ] 32 ]
33
34 if (is_visual_studio_express) {
35 include_dirs += [
36 "$wdk_path/inc/atl71",
37 "$wdk_path/inc/mfc42",
38 ]
39
40 # https://code.google.com/p/chromium/issues/detail?id=372451#c20
41 # Warning 4702 ("Unreachable code") should be re-enabled once Express users
42 # are updated to VS2013 Update 2.
43 cflags = [ "/wd4702" ]
44 } else {
45 # Only supported on non-Express versions.
46 defines += [ "_SECURE_ATL" ]
47 }
34 } 48 }
35 49
36 # Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs. 50 # Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs.
37 config("sdk_link") { 51 config("sdk_link") {
38 if (cpu_arch == "x64") { 52 if (cpu_arch == "x64") {
39 ldflags = [ "/MACHINE:X64" ] 53 ldflags = [ "/MACHINE:X64" ]
40 lib_dirs = [ 54 lib_dirs = [
41 "$windows_sdk_path\Lib\win8\um\x64", 55 "$windows_sdk_path\Lib\win8\um\x64",
42 "$visual_studio_path\VC\lib\amd64", 56 "$visual_studio_path\VC\lib\amd64",
43 "$visual_studio_path\VC\atlmfc\lib\amd64", 57 "$visual_studio_path\VC\atlmfc\lib\amd64",
44 ] 58 ]
59 if (is_visual_studio_express) {
60 lib_dirs += [ "$wdk_path/lib/ATL/amd64" ]
61 }
45 } else { 62 } else {
46 ldflags = [ 63 ldflags = [
47 "/MACHINE:X86", 64 "/MACHINE:X86",
48 "/SAFESEH", # Not compatible with x64 so use only for x86. 65 "/SAFESEH", # Not compatible with x64 so use only for x86.
49 ] 66 ]
50 lib_dirs = [ 67 lib_dirs = [
51 "$windows_sdk_path\Lib\win8\um\x86", 68 "$windows_sdk_path\Lib\win8\um\x86",
52 "$visual_studio_path\VC\lib", 69 "$visual_studio_path\VC\lib",
53 "$visual_studio_path\VC\atlmfc\lib", 70 "$visual_studio_path\VC\atlmfc\lib",
54 ] 71 ]
72 if (is_visual_studio_express) {
73 lib_dirs += [ "$wdk_path/lib/ATL/i386" ]
74 }
55 if (!is_asan) { 75 if (!is_asan) {
56 ldflags += [ "/largeaddressaware" ] 76 ldflags += [ "/largeaddressaware" ]
57 } 77 }
58 } 78 }
79
80 if (is_visual_studio_express) {
81 # Explicitly required when using the ATL with express.
82 libs = [ "atlthunk.lib" ]
83
84 # ATL 8.0 included in WDK 7.1 makes the linker to generate almost eight
85 # hundred LNK4254 and LNK4078 warnings:
86 # - warning LNK4254: section 'ATL' (50000040) merged into '.rdata'
87 # (40000040) with different attributes
88 # - warning LNK4078: multiple 'ATL' sections found with different
89 # attributes
90 ldflags += [ "/ignore:4254", "/ignore:4078" ]
91 }
59 } 92 }
60 93
61 # This default linker setup is provided separately from the SDK setup so 94 # This default linker setup is provided separately from the SDK setup so
62 # targets who want different library configurations can remove this and specify 95 # targets who want different library configurations can remove this and specify
63 # their own. 96 # their own.
64 config("common_linker_setup") { 97 config("common_linker_setup") {
65 ldflags = [ 98 ldflags = [
66 "/FIXED:NO", 99 "/FIXED:NO",
67 "/ignore:4199", 100 "/ignore:4199",
68 "/ignore:4221", 101 "/ignore:4221",
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 166
134 # Some third party code defines NOMINMAX before including windows.h, which 167 # 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. 168 # then causes warnings when it's been previously defined on the command line.
136 # For such targets, this config can be removed. 169 # For such targets, this config can be removed.
137 170
138 config("nominmax") { 171 config("nominmax") {
139 defines = [ 172 defines = [
140 "NOMINMAX", 173 "NOMINMAX",
141 ] 174 ]
142 } 175 }
OLDNEW
« no previous file with comments | « no previous file | build/config/win/visual_studio_version.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698