Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / BUILD.gn
1 # 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
5 import("//tools/grit/grit_rule.gni")
6
7 # Applied by targets internal to content.
8 config("content_implementation") {
9   defines = [ "CONTENT_IMPLEMENTATION" ]
10 }
11
12 content_shared_components = [
13   "//content/gpu",
14   "//content/plugin",
15   "//content/ppapi_plugin",
16   "//content/public/app",
17   "//content/public/browser:sources",
18   "//content/public/child",
19   "//content/public/common",
20   "//content/public/plugin",
21   "//content/public/renderer",
22   "//content/renderer",
23   "//content/utility",
24 ]
25
26 if (is_component_build) {
27   shared_library("content") {
28     deps = content_shared_components + [
29       "//content/app",
30     ]
31     forward_dependent_configs_from = deps
32   }
33 } else {
34   group("content") {
35     deps = content_shared_components
36   }
37 }
38
39 grit("resources") {
40   source = "content_resources.grd"
41   outputs = [
42     "grit/content_resources.h",
43     "content_resources.pak",
44     "content_resources.rc",
45   ]
46 }
47
48 # This target exists to "hold" the content_export header so we can do proper
49 # inclusion testing of it.
50 source_set("export") {
51   visibility = "//content/*"
52   sources = [
53     "content/common/content_export.h"
54   ]
55 }
56
57 # Stubs ------------------------------------------------------------------------
58
59 # TODO(brettw) remove this and add a proper dependency on libjingle once that
60 # target has been converted to GN. This config sets up the include directories
61 # so content can compile in the meantime.
62 config("libjingle_stub_config") {
63   include_dirs = [
64     "//third_party/libjingle/overrides",
65     "//third_party/libjingle/source",
66     "//third_party/libyuv/include",
67     "//third_party/usrsctp",
68
69
70     "//third_party/webrtc/overrides",  # Must be before webrtc abd third_party.
71     "//third_party/webrtc",
72     "//third_party",
73   ]
74
75   defines = [
76     "FEATURE_ENABLE_SSL",
77     "FEATURE_ENABLE_VOICEMAIL",
78     "EXPAT_RELATIVE_PATH",
79     "GTEST_RELATIVE_PATH",
80     "NO_MAIN_THREAD_WRAPPING",
81     "NO_SOUND_SYSTEM",
82   ]
83
84   if (is_mac) {
85     defines += [ "OSX", "WEBRTC_MAC" ]
86   } else if (is_linux) {
87     defines += [ "LINUX", "WEBRTC_LINUX" ]
88   } else if (is_android) {
89     defines += [ "ANDROID", "WEBRTC_LINUX", "WEBRTC_ANDROID" ]
90   } else if (is_win) {
91     libs = [ "secur32.lib", "crypt32.lib", "iphlpapi.lib" ]
92     defines += [ "WEBRTC_WIN" ]
93   }
94
95   if (is_posix) {
96     defines += [ "POSIX", "WEBRTC_POSIX" ]
97   }
98   if (is_chromeos) {
99     defines += [ "CHROMEOS" ]
100   }
101 }
102
103 # Sets up include dirs while webrtc is being converted to GN.
104 # TODO(GYP) remove when webrtc is ready.
105 config("webrtc_stub_config") {
106   defines = [ "WEBRTC_CHROMIUM_BUILD" ]
107   include_dirs = [
108     "//third_party/webrtc/overrides",  # Must be first.
109     "//third_party",
110   ]
111
112   if (is_mac) {
113     defines += [ "WEBRTC_MAC" ]
114   } else if (is_win) {
115     defines += [ "WEBRTC_WIN" ]
116   } else if (is_linux) {
117     defines += [ "WEBRTC_LINUX" ]
118   } else if (is_ios) {
119     defines += [ "WEBRTC_MAC", "WEBRTC_IOS" ]
120   } else if (is_android) {
121     defines += [ "WEBRTC_LINUX", "WEBRTC_ANDROID" ]
122     import("//build/config/crypto.gni")
123     if (use_openssl) {
124       defines += [ "WEBRTC_ANDROID_OPENSLEQS" ]
125     }
126   }
127
128   if (is_posix) {
129     defines += [ "WEBRTC_POSIX" ]
130   }
131 }