blob: 3dad93d17c07c4f872946bd4911a207e584662e0 [file] [log] [blame]
jamescook62117922014-10-20 14:35:111# Copyright 2014 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.
4
rockot466cf202015-02-13 23:03:365import("//extensions/shell/app_shell.gni")
6
brettwded26322014-11-06 06:39:597# Technically, this directory should not depend on files from src/chrome, but
8# that's where the VERSION file is. This should probably all be moved to
9# src/build.
10import("//chrome/version.gni")
rockot466cf202015-02-13 23:03:3611import("//testing/test.gni")
jamescook62117922014-10-20 14:35:1112import("//tools/grit/grit_rule.gni")
13
thestigda556af2014-11-01 00:51:3114assert(enable_extensions)
15
jamescook62117922014-10-20 14:35:1116grit("resources") {
17 source = "app_shell_resources.grd"
18 outputs = [
19 "grit/app_shell_resources.h",
20 "app_shell_resources.pak",
21 ]
22}
mukaia3cb1502014-10-29 06:43:0823
24source_set("app_shell_lib") {
jamescookbbbff422014-12-02 22:03:5325 # TODO(jamescook): investigate and get rid of test dependencies. This library
26 # is testonly because it depends on testonly libraries, namely
27 # //content/shell:content_shell_lib. See http://crbug.com/438283
mukaia3cb1502014-10-29 06:43:0828 testonly = true
29 deps = [
30 ":resources",
31 ":version_header",
32 "//base",
jamescookbbbff422014-12-02 22:03:5333 "//base:prefs",
dgozmanf7200152015-04-22 17:48:2134 "//components/devtools_discovery",
dgozman102fee92015-04-20 15:45:4635 "//components/devtools_http_handler",
fsamuelaf5bf6d2015-05-28 16:29:5436 "//components/guest_view/browser",
37 "//components/guest_view/common",
38 "//components/guest_view/renderer",
mukaia3cb1502014-10-29 06:43:0839 "//components/pref_registry",
sorin39eab2f2015-01-06 01:09:0840 "//components/update_client",
mukaia3cb1502014-10-29 06:43:0841 "//components/user_prefs",
42 "//components/web_cache/renderer",
43 "//content",
44 "//content/shell:content_shell_lib",
45 "//device/core",
46 "//device/hid",
47 "//extensions/common/api",
48 "//extensions/common/api:api_registration",
49 "//extensions/browser",
50 "//extensions/common",
51 "//extensions/renderer",
52 "//extensions/shell/common/api",
53 "//extensions/shell/common/api:api_registration",
rockot38130232014-11-06 18:50:0154 "//extensions/utility",
mukaia3cb1502014-10-29 06:43:0855 "//extensions:extensions_resources",
56 "//extensions:shell_and_test_pak",
mukaia3cb1502014-10-29 06:43:0857 "//mojo/environment:chromium",
58 "//skia",
59 "//third_party/WebKit/public:blink",
blundell70fb5472015-01-19 17:18:3360 "//third_party/mojo/src/mojo/edk/system",
spang1c36fac2015-02-05 19:55:1261 "//ui/base",
62 "//ui/base/ime",
mukaia3cb1502014-10-29 06:43:0863 "//v8",
64 ]
rockot466cf202015-02-13 23:03:3665
66 sources = rebase_path(app_shell_gypi_values.app_shell_lib_sources,
67 ".",
68 "//extensions/shell")
69
70 if (use_aura) {
71 deps += [ "//ui/wm" ]
72
73 aura_sources = rebase_path(app_shell_gypi_values.app_shell_lib_sources_aura,
74 ".",
75 "//extensions/shell")
76 sources += aura_sources
77 }
78
mukaia3cb1502014-10-29 06:43:0879 if (is_chromeos) {
80 deps += [
81 "//chromeos",
82 "//ui/chromeos:ui_chromeos",
83 "//ui/display",
84 ]
rockot466cf202015-02-13 23:03:3685 chromeos_sources =
86 rebase_path(app_shell_gypi_values.app_shell_lib_sources_chromeos,
87 ".",
88 "//extensions/shell")
89 sources += chromeos_sources
90 }
91
92 # TODO(GYP): Enable this when //components/nacl GN is done. See
93 # http://crbug.com/430602
94 if (false) {
95 if (enable_nacl) {
96 if (is_linux) {
97 deps += [ "//components/nacl:nacl_helper" ]
98 }
99 deps += [
100 "//components/nacl",
101 "//components/nacl:browser",
102 "//components/nacl:common",
103 "//components/nacl:renderer",
104 "//components/nacl:switches",
105 ]
106 nacl_sources =
107 rebase_path(app_shell_gypi_values.app_shell_lib_sources_nacl,
108 ".",
109 "//extensions/shell")
110 sources += nacl_sources
111 }
mukaia3cb1502014-10-29 06:43:08112 }
dpranke6065cf72015-02-26 03:30:58113
114 if (enable_nacl) {
115 sources += [
116 "browser/shell_nacl_browser_delegate.cc",
117 "browser/shell_nacl_browser_delegate.h",
118 ]
119
120 deps += [
121 "//components/nacl",
122 "//components/nacl:nacl_browser",
123 "//components/nacl:nacl_common",
124 "//components/nacl:nacl_renderer",
125 "//components/nacl:nacl_switches",
126 "//components/nacl/renderer/plugin:nacl_trusted_plugin",
127 ]
128
129 if (is_linux) {
130 deps += [ "//components/nacl:nacl_helper" ]
131 }
132 }
mukaia3cb1502014-10-29 06:43:08133}
134
brettw4897a612015-03-02 23:13:15135if (!(is_chromeos && !use_ozone)) {
brettwded26322014-11-06 06:39:59136 executable("app_shell") {
dpranke6fc75b32014-11-04 00:04:03137 # testonly because :app_shell_lib is testonly. See :app_shell_lib comment.
138 testonly = true
rockot466cf202015-02-13 23:03:36139 sources = rebase_path(app_shell_gypi_values.app_shell_sources,
140 ".",
141 "//extensions/shell")
brettwded26322014-11-06 06:39:59142 deps = [
143 ":app_shell_lib",
144 "//extensions:shell_and_test_pak",
145 ]
vchigrin61944ae2015-01-30 23:51:32146
147 if (is_win) {
148 configs += [ "//build/config/win:windowed" ]
149 configs -= [ "//build/config/win:console" ]
rockot466cf202015-02-13 23:03:36150 deps += [ "//base/allocator" ]
vchigrin61944ae2015-01-30 23:51:32151 }
rockot466cf202015-02-13 23:03:36152
153 if (is_mac) {
154 # TODO(GYP): Mac bundling
155 }
156 }
157}
158
159test("app_shell_unittests") {
160 sources = rebase_path(app_shell_gypi_values.app_shell_unittests_sources,
161 ".",
162 "//extensions/shell")
163
164 deps = [
165 ":app_shell_lib",
166 "//base",
167 "//base/test:test_support",
168 "//content/test:test_support",
169 "//extensions:shell_and_test_pak",
170 "//extensions:test_support",
171 "//testing/gtest",
172 ]
173
174 if (use_aura) {
175 deps += [ "//ui/aura:test_support" ]
176
177 aura_sources =
178 rebase_path(app_shell_gypi_values.app_shell_unittests_sources_aura,
179 ".",
180 "//extensions/shell")
181 sources += aura_sources
182 }
183
184 if (is_chromeos) {
185 deps += [ "//chromeos:test_support_without_gmock" ]
186
187 chromeos_sources =
188 rebase_path(app_shell_gypi_values.app_shell_unittests_sources_chromeos,
189 ".",
190 "//extensions/shell")
191 sources += chromeos_sources
192 }
193
194 # TODO(GYP): Enable this when //components/nacl GN is done.
195 if (false) {
196 if (use_nacl) {
197 nacl_sources =
198 rebase_path(app_shell_gypi_values.app_shell_unittests_sources_nacl,
199 ".",
200 "//extensions/shell")
201 sources += nacl_sources
202 }
203 }
204
205 if (is_win) {
206 deps += [ "//base/allocator" ]
brettwded26322014-11-06 06:39:59207 }
mukaia3cb1502014-10-29 06:43:08208}
209
brettwded26322014-11-06 06:39:59210process_version("version_header") {
brettw70d2f6e2015-02-25 18:46:53211 template_file = "common/version.h.in"
brettwded26322014-11-06 06:39:59212 output = "$target_gen_dir/common/version.h"
mukaia3cb1502014-10-29 06:43:08213}