blob: c14c0dc07e6fb74d4eabb21a94b3409a3f2dc000 [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'includes': [
'openh264_args.gypi',
],
'conditions': [
['use_openh264==1', {
# Settings shared by all openh264 targets.
'target_defaults': {
'variables': {
'chromium_code': 0,
'conditions': [
['OS!="win"', {
# GCC flags
'openh264_cflags_add': [
'-Wno-unused-value',
],
'openh264_cflags_remove': [
'-Wheader-hygiene',
],
},{
# Windows uses 'msvs_disabled_warnings' instead, for MSVC flags.
'openh264_cflags_add': [],
'openh264_cflags_remove': [],
}],
],
},
'cflags': [ '<@(openh264_cflags_add)' ],
'cflags!': [ '<@(openh264_cflags_remove)' ],
'xcode_settings': {
'WARNING_CFLAGS': [ '<@(openh264_cflags_add)' ],
'WARNING_CFLAGS!': [ '<@(openh264_cflags_remove)' ],
},
'msvs_disabled_warnings': [
4324, # structure was padded
4245, # signed/unsigned mismatch
4701, # uninitialized variable used
4702, # unreachable code
],
# Platform-specific defines.
'conditions': [
['OS=="android"', {
'defines': [
# Android NDK is necessary for its cpufeatures and this define is
# what OpenH264 code uses to check if it should be used.
'ANDROID_NDK',
],
}],
],
},
'includes': [
'openh264.gypi',
],
'targets': [
{
'target_name': 'openh264_common',
'type': 'static_library',
'conditions': [
['OS=="android"', {
'dependencies': [
# Defines "android_get/setCpu..." functions. The original
# OpenH264 build files replaces these using macros for
# "wels_..." versions of the same functions. We do not have
# access to these and use the <cpu-features.h> ones instead.
'<(DEPTH)/build/android/ndk.gyp:cpu_features',
],
}],
],
'include_dirs+': [ '<@(openh264_common_includes)' ],
'sources': [ '<@(openh264_common_sources)' ],
},
{
'target_name': 'openh264_processing',
'type': 'static_library',
'dependencies': [
'openh264_common',
],
'include_dirs+': [ '<@(openh264_processing_includes)' ],
'sources': [ '<@(openh264_processing_sources)' ],
},
{
'target_name': 'openh264_encoder',
'type': 'static_library',
'dependencies': [
'openh264_common',
'openh264_processing',
],
'include_dirs+': [ '<@(openh264_encoder_includes)' ],
'sources': [ '<@(openh264_encoder_sources)' ],
},
],
},{
# Building without OpenH264. Defining a dummy target because every build
# file needs to have at least one target.
'targets': [
{
'target_name': 'openh264_dummy_target',
'type': 'none',
}
],
}],
],
}