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