Home | History | Annotate | Download | only in media
      1 # Copyright 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.
      4 
      5 # This file defines a common base target for all CDM adapter implementations.
      6 # We use 'direct_dependent_settings' to override target type and settings so
      7 # that all CDM adapter implementations have the correct type and settings
      8 # automatically.
      9 #
     10 # WARNING: Keep 'cdmadapter' target out of media.gyp. /build/all.gyp:All depends
     11 # directly on media.gyp:*. If 'cdmadapter' is defined in media.gyp, then
     12 # 'direct_dependent_settings' will be applied to 'All' target and bad
     13 # things happen, e.g. the type of 'All' target becomes a plugin on Mac.
     14 {
     15   'conditions': [
     16     ['enable_pepper_cdms==1', {
     17       'targets': [
     18         {
     19           'target_name': 'cdmadapter',
     20           'type': 'none',
     21           'direct_dependent_settings': {
     22             'sources': [
     23               'cdm/ppapi/api/content_decryption_module.h',
     24               'cdm/ppapi/cdm_adapter.cc',
     25               'cdm/ppapi/cdm_adapter.h',
     26               'cdm/ppapi/cdm_file_io_impl.cc',
     27               'cdm/ppapi/cdm_file_io_impl.h',
     28               'cdm/ppapi/cdm_helpers.cc',
     29               'cdm/ppapi/cdm_helpers.h',
     30               'cdm/ppapi/cdm_logging.cc',
     31               'cdm/ppapi/cdm_logging.h',
     32               'cdm/ppapi/cdm_wrapper.h',
     33               'cdm/ppapi/linked_ptr.h',
     34               'cdm/ppapi/supported_cdm_versions.h',
     35             ],
     36             'conditions': [
     37               ['os_posix == 1 and OS != "mac"', {
     38                 'cflags': ['-fvisibility=hidden'],
     39                 'type': 'loadable_module',
     40                 # Allow the adapter to find the CDM in the same directory.
     41                 'ldflags': ['-Wl,-rpath=\$$ORIGIN'],
     42               }],
     43               ['OS == "win"', {
     44                 'type': 'shared_library',
     45                 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
     46                 'msvs_disabled_warnings': [ 4267, ],
     47               }],
     48               ['OS == "mac"', {
     49                 'type': 'loadable_module',
     50                 'product_extension': 'plugin',
     51                 'xcode_settings': {
     52                   'OTHER_LDFLAGS': [
     53                     # Not to strip important symbols by -Wl,-dead_strip.
     54                     '-Wl,-exported_symbol,_PPP_GetInterface',
     55                     '-Wl,-exported_symbol,_PPP_InitializeModule',
     56                     '-Wl,-exported_symbol,_PPP_ShutdownModule'
     57                   ],
     58                   'DYLIB_INSTALL_NAME_BASE': '@loader_path',
     59                 },
     60               }],
     61             ],
     62           },
     63         },
     64       ],
     65     }],
     66   ],
     67 }
     68