# Copyright 2014 The Crashpad 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.

{
  'includes': [
    '../build/crashpad.gypi',
  ],
  'targets': [
    {
      'target_name': 'crashpad_util',
      'type': 'static_library',
      'dependencies': [
        '../compat/compat.gyp:crashpad_compat',
        '../third_party/mini_chromium/mini_chromium.gyp:base',
        '../third_party/zlib/zlib.gyp:zlib',
      ],
      'include_dirs': [
        '..',
        '<(INTERMEDIATE_DIR)',
      ],
      'sources': [
        'file/delimited_file_reader.cc',
        'file/delimited_file_reader.h',
        'file/directory_reader.h',
        'file/directory_reader_posix.cc',
        'file/directory_reader_win.cc',
        'file/file_io.cc',
        'file/file_io.h',
        'file/file_io_posix.cc',
        'file/file_io_win.cc',
        'file/file_reader.cc',
        'file/file_reader.h',
        'file/file_seeker.cc',
        'file/file_seeker.h',
        'file/filesystem.h',
        'file/filesystem_posix.cc',
        'file/filesystem_win.cc',
        'file/file_writer.cc',
        'file/file_writer.h',
        'file/scoped_remove_file.cc',
        'file/scoped_remove_file.h',
        'file/string_file.cc',
        'file/string_file.h',
        'linux/address_types.h',
        'linux/auxiliary_vector.cc',
        'linux/auxiliary_vector.h',
        'linux/checked_address_range.h',
        'linux/direct_ptrace_connection.cc',
        'linux/direct_ptrace_connection.h',
        'linux/exception_handler_client.cc',
        'linux/exception_handler_client.h',
        'linux/exception_handler_protocol.cc',
        'linux/exception_handler_protocol.h',
        'linux/exception_information.h',
        'linux/memory_map.cc',
        'linux/memory_map.h',
        'linux/proc_stat_reader.cc',
        'linux/proc_stat_reader.h',
        'linux/ptrace_broker.cc',
        'linux/ptrace_broker.h',
        'linux/ptrace_client.cc',
        'linux/ptrace_client.h'
        'linux/ptrace_connection.h',
        'linux/ptracer.cc',
        'linux/ptracer.h',
        'linux/scoped_pr_set_ptracer.cc',
        'linux/scoped_pr_set_ptracer.h',
        'linux/scoped_ptrace_attach.cc',
        'linux/scoped_ptrace_attach.h',
        'linux/thread_info.cc',
        'linux/thread_info.h',
        'linux/traits.h',
        'mac/checked_mach_address_range.h',
        'mac/launchd.h',
        'mac/launchd.mm',
        'mac/mac_util.cc',
        'mac/mac_util.h',
        'mac/service_management.cc',
        'mac/service_management.h',
        'mac/xattr.cc',
        'mac/xattr.h',
        'mach/child_port.defs',
        'mach/child_port_handshake.cc',
        'mach/child_port_handshake.h',
        'mach/child_port_server.cc',
        'mach/child_port_server.h',
        'mach/child_port_types.h',
        'mach/composite_mach_message_server.cc',
        'mach/composite_mach_message_server.h',
        'mach/exc_client_variants.cc',
        'mach/exc_client_variants.h',
        'mach/exc_server_variants.cc',
        'mach/exc_server_variants.h',
        'mach/exception_behaviors.cc',
        'mach/exception_behaviors.h',
        'mach/exception_ports.cc',
        'mach/exception_ports.h',
        'mach/exception_types.cc',
        'mach/exception_types.h',
        'mach/mach_extensions.cc',
        'mach/mach_extensions.h',
        'mach/mach_message.cc',
        'mach/mach_message.h',
        'mach/mach_message_server.cc',
        'mach/mach_message_server.h',
        'mach/notify_server.cc',
        'mach/notify_server.h',
        'mach/scoped_task_suspend.cc',
        'mach/scoped_task_suspend.h',
        'mach/symbolic_constants_mach.cc',
        'mach/symbolic_constants_mach.h',
        'mach/task_for_pid.cc',
        'mach/task_for_pid.h',
        'mach/task_memory.cc',
        'mach/task_memory.h',
        'misc/address_sanitizer.h',
        'misc/address_types.h',
        'misc/arraysize_unsafe.h',
        'misc/as_underlying_type.h',
        'misc/capture_context.h',
        'misc/capture_context_linux.S',
        'misc/capture_context_mac.S',
        'misc/capture_context_win.asm',
        'misc/clock.h',
        'misc/clock_mac.cc',
        'misc/clock_posix.cc',
        'misc/clock_win.cc',
        'misc/elf_note_types.h',
        'misc/from_pointer_cast.h',
        'misc/implicit_cast.h',
        'misc/initialization_state.h',
        'misc/initialization_state_dcheck.cc',
        'misc/initialization_state_dcheck.h',
        'misc/lexing.cc',
        'misc/lexing.h',
        'misc/metrics.cc',
        'misc/metrics.h',
        'misc/paths.h',
        'misc/paths_mac.cc',
        'misc/paths_linux.cc',
        'misc/paths_win.cc',
        'misc/pdb_structures.cc',
        'misc/pdb_structures.h',
        'misc/random_string.cc',
        'misc/random_string.h',
        'misc/range_set.cc',
        'misc/range_set.h',
        'misc/reinterpret_bytes.cc',
        'misc/reinterpret_bytes.h',
        'misc/scoped_forbid_return.cc',
        'misc/scoped_forbid_return.h',
        'misc/symbolic_constants_common.h',
        'misc/time.cc',
        'misc/time.h',
        'misc/time_win.cc',
        'misc/tri_state.h',
        'misc/uuid.cc',
        'misc/uuid.h',
        'misc/zlib.cc',
        'misc/zlib.h',
        'net/http_body.cc',
        'net/http_body.h',
        'net/http_body_gzip.cc',
        'net/http_body_gzip.h',
        'net/http_headers.h',
        'net/http_multipart_builder.cc',
        'net/http_multipart_builder.h',
        'net/http_transport.cc',
        'net/http_transport.h',
        'net/http_transport_mac.mm',
        'net/http_transport_none.cc',
        'net/http_transport_win.cc',
        'net/url.cc',
        'net/url.h',
        'numeric/checked_address_range.cc',
        'numeric/checked_address_range.h',
        'numeric/checked_range.h',
        'numeric/checked_vm_address_range.h',
        'numeric/in_range_cast.h',
        'numeric/int128.h',
        'numeric/safe_assignment.h',
        'posix/close_multiple.cc',
        'posix/close_multiple.h',
        'posix/close_stdio.cc',
        'posix/close_stdio.h',
        'posix/drop_privileges.cc',
        'posix/drop_privileges.h',
        'posix/double_fork_and_exec.cc',
        'posix/double_fork_and_exec.h',
        'posix/process_info.h',
        'posix/process_info_linux.cc',
        'posix/process_info_mac.cc',
        'posix/scoped_dir.cc',
        'posix/scoped_dir.h',
        'posix/scoped_mmap.cc',
        'posix/scoped_mmap.h',
        'posix/signals.cc',
        'posix/signals.h',
        'posix/symbolic_constants_posix.cc',
        'posix/symbolic_constants_posix.h',
        'process/process_memory.cc',
        'process/process_memory.h',
        'process/process_memory_linux.cc',
        'process/process_memory_linux.h',
        'process/process_memory_native.h',
        'process/process_memory_range.cc',
        'process/process_memory_range.h',
        'stdlib/aligned_allocator.cc',
        'stdlib/aligned_allocator.h',
        'stdlib/map_insert.h',
        'stdlib/objc.h',
        'stdlib/string_number_conversion.cc',
        'stdlib/string_number_conversion.h',
        'stdlib/strlcpy.cc',
        'stdlib/strlcpy.h',
        'stdlib/strnlen.cc',
        'stdlib/strnlen.h',
        'stdlib/thread_safe_vector.h',
        'string/split_string.cc',
        'string/split_string.h',
        'synchronization/semaphore_mac.cc',
        'synchronization/semaphore_posix.cc',
        'synchronization/semaphore_win.cc',
        'synchronization/semaphore.h',
        'thread/stoppable.h',
        'thread/thread.cc',
        'thread/thread.h',
        'thread/thread_log_messages.cc',
        'thread/thread_log_messages.h',
        'thread/thread_posix.cc',
        'thread/thread_win.cc',
        'thread/worker_thread.cc',
        'thread/worker_thread.h',
        'win/address_types.h',
        'win/checked_win_address_range.h',
        'win/command_line.cc',
        'win/command_line.h',
        'win/critical_section_with_debug_info.cc',
        'win/critical_section_with_debug_info.h',
        'win/exception_handler_server.cc',
        'win/exception_handler_server.h',
        'win/get_function.cc',
        'win/get_function.h',
        'win/get_module_information.cc',
        'win/get_module_information.h',
        'win/handle.cc',
        'win/handle.h',
        'win/initial_client_data.cc',
        'win/initial_client_data.h',
        'win/module_version.cc',
        'win/module_version.h',
        'win/nt_internals.cc',
        'win/nt_internals.h',
        'win/ntstatus_logging.cc',
        'win/ntstatus_logging.h',
        'win/process_info.cc',
        'win/process_info.h',
        'win/process_structs.h',
        'win/registration_protocol_win.cc',
        'win/registration_protocol_win.h',
        'win/safe_terminate_process.asm',
        'win/safe_terminate_process.h',
        'win/scoped_handle.cc',
        'win/scoped_handle.h',
        'win/scoped_local_alloc.cc',
        'win/scoped_local_alloc.h',
        'win/scoped_process_suspend.cc',
        'win/scoped_process_suspend.h',
        'win/scoped_set_event.cc',
        'win/scoped_set_event.h',
        'win/session_end_watcher.cc',
        'win/session_end_watcher.h',
        'win/termination_codes.h',
        'win/xp_compat.h',
      ],
      'conditions': [
        ['OS=="mac"', {
          'conditions': [
            ['GENERATOR=="ninja"', {
              # ninja’s rules can’t deal with sources that have paths relative
              # to environment variables like SDKROOT. Copy the .defs files out
              # of SDKROOT and into a place they can be referenced without any
              # environment variables.
              'copies': [
                {
                  'destination': '<(INTERMEDIATE_DIR)/util/mach',
                  'files': [
                    '$(SDKROOT)/usr/include/mach/exc.defs',
                    '$(SDKROOT)/usr/include/mach/mach_exc.defs',
                    '$(SDKROOT)/usr/include/mach/notify.defs',
                  ],
                },
              ],
              'sources': [
                '<(INTERMEDIATE_DIR)/util/mach/exc.defs',
                '<(INTERMEDIATE_DIR)/util/mach/mach_exc.defs',
                '<(INTERMEDIATE_DIR)/util/mach/notify.defs',
              ],
            }, {  # else: GENERATOR!="ninja"
              # The Xcode generator does copies after rules, so the above trick
              # won’t work, but its rules tolerate sources with SDKROOT-relative
              # paths.
              'sources': [
                '$(SDKROOT)/usr/include/mach/exc.defs',
                '$(SDKROOT)/usr/include/mach/mach_exc.defs',
                '$(SDKROOT)/usr/include/mach/notify.defs',
              ],
            }],
          ],
          'rules': [
            {
              'rule_name': 'mig',
              'extension': 'defs',
              'inputs': [
                'mach/mig.py',
              ],
              'outputs': [
                '<(INTERMEDIATE_DIR)/util/mach/<(RULE_INPUT_ROOT)User.c',
                '<(INTERMEDIATE_DIR)/util/mach/<(RULE_INPUT_ROOT)Server.c',
                '<(INTERMEDIATE_DIR)/util/mach/<(RULE_INPUT_ROOT).h',
                '<(INTERMEDIATE_DIR)/util/mach/<(RULE_INPUT_ROOT)Server.h',
              ],
              'action': [
                'python',
                '<@(_inputs)',
                '<(RULE_INPUT_PATH)',
                '<@(_outputs)',
                '--include=../compat/mac'
              ],
              'process_outputs_as_sources': 1,
            },
          ],
          'link_settings': {
            'libraries': [
              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
              '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
              '$(SDKROOT)/usr/lib/libbsm.dylib',
            ],
          },
        }, { # else: OS!=mac
          'sources!': [ 'misc/capture_context_mac.S' ],
        }],
        ['OS=="win"', {
          'link_settings': {
            'libraries': [
              '-luser32.lib',
              '-lversion.lib',
              '-lwinhttp.lib',
            ],
          },
          'msvs_disabled_warnings': [
            4201,  # nonstandard extension used : nameless struct/union.
            4577,  # 'noexcept' used with no exception handling mode specified
          ],
          'direct_dependent_settings': {
            'msvs_disabled_warnings': [
              4577,  # 'noexcept' used with no exception handling mode specified
            ],
          },
          'conditions': [
            ['target_arch=="ia32"', {
              'msvs_settings': {
                'MASM': {
                  'UseSafeExceptionHandlers': 'true',
                },
              },
            }],
          ],
        }, {  # else: OS!="win"
          'sources!': [
            'misc/capture_context_win.asm',
            'win/safe_terminate_process.asm',
          ],
        }],
        ['OS=="linux"', {
          'sources': [
            'net/http_transport_socket.cc',
          ],
        }, {  # else: OS!="linux"
          'sources!': [
            'misc/capture_context_linux.S',
          ],
        }],
        ['OS!="android"', {
          'sources!': [
            'net/http_transport_none.cc',
          ],
        }],
        ['OS!="linux" and OS!="android"', {
          'sources/': [
            ['exclude', '^process/'],
          ],
        }],
      ],
      'target_conditions': [
        ['OS=="android"', {
          'sources/': [
            ['include', '^linux/'],
            ['include', '^misc/capture_context_linux\\.S$'],
            ['include', '^misc/paths_linux\\.cc$'],
            ['include', '^posix/process_info_linux\\.cc$'],
            ['include', '^process/process_memory_linux\\.cc$'],
            ['include', '^process/process_memory_linux\\.h$'],
          ],
        }],
      ],
    },
  ],
}
