# Copyright 2016 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

{
  'variables': {
    'target_os': 'linux',
    'tizen_os': 1,
    'arm_version': 7,

    # Some package use tizen system instead of third_party
    'use_system_icu': 1,
    'use_system_libxml': 0,
    'use_dlmalloc_allocator': 0,

    # scratch surface cache is designed to choose large offscreen surfaces so
    # that they can be maximally reused, it is not a very good fit for a tiled
    # renderer.
    'scratch_surface_cache_size_in_bytes' : 0,

    'linker_flags': [
      '-Wl,--wrap=eglGetDisplay',
    ],
    'linker_flags_gold': [
      '-O3',
      '-flto',
    ],
    'compiler_flags_debug': [
      '-O0',
    ],
    'compiler_flags_devel': [
      '-O2',
    ],
    'compiler_flags_cc_qa': [
      '-fno-rtti',
    ],
    'compiler_flags_qa': [
      '-O3',
    ],
    'compiler_flags_cc_gold': [
      '-fno-rtti',
    ],
    'compiler_flags_gold': [
      '-O3',
    ],
    'conditions': [
      ['cobalt_fastbuild==0', {
        'compiler_flags_debug': [
          '-g',
        ],
        'compiler_flags_devel': [
          '-g',
        ],
        'compiler_flags_qa': [
        ],
        'compiler_flags_gold': [
          '-flto',
        ],
      }],
    ],
  },

  'target_defaults': {
    'defines': [
      # Cobalt on Tizen flag
      'COBALT_TIZEN',
      'PNG_SKIP_SETJMP_CHECK',
      '__STDC_FORMAT_MACROS', # so that we get PRI*
      # Enable GNU extensions to get prototypes like ffsl.
      '_GNU_SOURCE=1',
    ],
    'cflags': [
      '-pthread',
      # Force char to be signed.
      '-fsigned-char',
      # Do not warn about locally defined but not used.
      '-Wno-unused-local-typedefs',
      # Do not warn about XXX is deprecated.
      '-Wno-deprecated-declarations',
      # Do not warn about missing initializer for member XXX.
      '-Wno-missing-field-initializers',
      # Do not warn about unused functions.
      '-Wno-unused-function',
      # Do not warn about type qualifiers ignored on function return type.
      '-Wno-ignored-qualifiers',
      # Do not warn about the use of multi-line comments.
      '-Wno-comment',
      # Do not warn about sign compares.
      '-Wno-sign-compare',
    ],
    'cflags_c': [
      '-std=c11',
    ],
    'cflags_cc': [
      '-std=gnu++11',
    ],
    'ldflags': [
      '-pthread',
    ],
  }, # end of target_defaults
}
