# 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.

# The "common" target contains facilities provided by Starboard that are common
# to all platforms.

{
  'targets': [
    {
      'target_name': 'common',
      'type': 'static_library',
      'variables': {
        'includes_starboard': 1,
      },
      'sources': [
        'byte_swap.h',
        'common.cc',
        'condition_variable.cc',
        'condition_variable.h',
        'configuration_defaults.cc',
        'configuration_defaults.h',
        'flat_map.h',
        'format_string.h',
        'locked_ptr.h',
        'log.cc',
        'log.h',
        'move.h',
        'murmurhash2.cc',
        'murmurhash2.h',
        'mutex.cc',
        'mutex.h',
        'new.cc',
        'optional.cc',
        'optional.h',
        'queue.h',
        'recursive_mutex.cc',
        'recursive_mutex.h',
        'ref_counted.cc',
        'ref_counted.h',
        'reset_and_return.h',
        'rwlock.cc',
        'rwlock.h',
        'scoped_ptr.h',
        'semaphore.cc',
        'semaphore.h',
        'socket.cc',
        'socket.h',
        'spin_lock.cc',
        'spin_lock.h',
        'state_machine.cc',
        'state_machine.h',
        'storage.cc',
        'storage.h',
        'string.h',
        'thread_collision_warner.cc',
        'thread_collision_warner.h',
        'thread.cc',
        'thread.h',

        'experimental/concurrency_debug.cc',
        'experimental/concurrency_debug.h',
      ],
      'conditions': [
        ['custom_media_session_client==0', {
          'sources': [
            '<(DEPTH)/starboard/shared/media_session/stub_playback_state.cc',
           ],
        }],
      ]
    },
  ],
}
