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