# Copyright 2013 Google Inc.
#
# 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': {
    'instaweb_root': '..',
    'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/instaweb',
    'protoc_executable':
        '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
    'data2c_out_dir': '<(SHARED_INTERMEDIATE_DIR)/data2c_out/instaweb',
    'data2c_exe':
        '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)instaweb_data2c<(EXECUTABLE_SUFFIX)',
    'js_minify':
        '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)js_minify<(EXECUTABLE_SUFFIX)',
    # Setting chromium_code to 1 turns on extra warnings. Also, if the compiler
    # is whitelisted in our common.gypi, those warnings will get treated as
    # errors.
    'chromium_code': 1,
  },
  'targets': [
    {
      'target_name': 'pagespeed_base_core',
      # xcode build names libraries just based on the target_name, so
      # if this were merely base then its libbase.a would clash with
      # Chromium libbase.a
      'type': '<(library)',
      'sources': [
        'kernel/base/abstract_mutex.cc',
        'kernel/base/annotated_message_handler.cc',
        'kernel/base/atom.cc',
        'kernel/base/debug.cc',
        'kernel/base/file_message_handler.cc',
        'kernel/base/file_system.cc',
        'kernel/base/google_message_handler.cc',
        'kernel/base/message_handler.cc',
        'kernel/base/null_message_handler.cc',
        'kernel/base/null_mutex.cc',
        'kernel/base/null_shared_mem.cc',
        'kernel/base/null_writer.cc',
        'kernel/base/print_message_handler.cc',
        'kernel/base/statistics.cc',
        'kernel/base/stdio_file_system.cc',
        'kernel/base/string_convert.cc',
        'kernel/base/string_util.cc',
        'kernel/base/string_writer.cc',
        'kernel/base/symbol_table.cc',
        'kernel/base/time_util.cc',
        'kernel/base/timer.cc',
        'kernel/base/thread_system.cc',
        'kernel/base/writer.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
        '<(DEPTH)/third_party/chromium/src/base/third_party/nspr',
      ],
      'dependencies': [
        '<(DEPTH)/base/base.gyp:base',
        '<(DEPTH)/third_party/google-sparsehash/google-sparsehash.gyp:include',
      ],
      'export_dependent_settings': [
        '<(DEPTH)/base/base.gyp:base',
        '<(DEPTH)/third_party/google-sparsehash/google-sparsehash.gyp:include',
      ],
    },
    {
      'target_name': 'pagespeed_base',
      # xcode build names libraries just based on the target_name, so
      # if this were merely base then its libbase.a would clash with
      # Chromium libbase.a
      'type': '<(library)',
      'sources': [
        'kernel/base/abstract_shared_mem.cc',
        'kernel/base/cache_interface.cc',
        'kernel/base/charset_util.cc',
        'kernel/base/checking_thread_system.cc',
        'kernel/base/chunking_writer.cc',
        'kernel/base/circular_buffer.cc',
        'kernel/base/condvar.cc',
        'kernel/base/countdown_timer.cc',
        'kernel/base/escaping.cc',
        'kernel/base/fast_wildcard_group.cc',
        'kernel/base/file_writer.cc',
        'kernel/base/function.cc',
        'kernel/base/hasher.cc',
        'kernel/base/hostname_util.cc',
        'kernel/base/json_writer.cc',
        'kernel/base/md5_hasher.cc',
        'kernel/base/mem_debug.cc',
        'kernel/base/named_lock_manager.cc',
        'kernel/base/null_rw_lock.cc',
        'kernel/base/null_statistics.cc',
        'kernel/base/posix_timer.cc',
        'kernel/base/request_trace.cc',
        'kernel/base/rolling_hash.cc',
        'kernel/base/sha1_signature.cc',
        'kernel/base/shared_string.cc',
        'kernel/base/signature.cc',
        'kernel/base/source_map.cc',
        'kernel/base/split_statistics.cc',
        'kernel/base/split_writer.cc',
        'kernel/base/thread.cc',
        'kernel/base/waveform.cc',
        'kernel/base/wildcard.cc',
      ],
      'dependencies': [
        'pagespeed_base_core',
        '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
        '<(DEPTH)/third_party/serf/select_openssl.gyp:select_openssl',
      ],
    },
    {
      'target_name': 'pagespeed_base_test_infrastructure',
      'type': '<(library)',
      'sources': [
        'kernel/base/counting_writer.cc',
        'kernel/base/mem_file_system.cc',
        'kernel/base/mock_hasher.cc',
        'kernel/base/mock_message_handler.cc',
        'kernel/base/mock_timer.cc',
        'kernel/base/null_thread_system.cc',
        'kernel/cache/delay_cache.cc',
        'kernel/cache/mock_time_cache.cc',
        'kernel/html/canonical_attributes.cc',
        'kernel/html/explicit_close_tag.cc',
        'kernel/thread/mock_scheduler.cc',
        'kernel/util/platform.cc',
        'kernel/util/simple_stats.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        ':pthread_system',
        ':util',
        '<(DEPTH)/base/base.gyp:base',
      ],
      'export_dependent_settings': [
        '<(DEPTH)/base/base.gyp:base'
      ],
    },
    {
      'target_name': 'kernel_test_util',
      'type': '<(library)',
      'sources': [
        'kernel/base/file_system_test_base.cc',
        'kernel/base/gtest.cc',
        'kernel/base/message_handler_test_base.cc',
        'kernel/cache/cache_spammer.cc',
        'kernel/http/user_agent_matcher_test_base.cc',
        'kernel/sharedmem/shared_circular_buffer_test_base.cc',
        'kernel/sharedmem/shared_dynamic_string_map_test_base.cc',
        'kernel/sharedmem/shared_mem_cache_data_test_base.cc',
        'kernel/sharedmem/shared_mem_cache_test_base.cc',
        'kernel/sharedmem/shared_mem_lock_manager_test_base.cc',
        'kernel/sharedmem/shared_mem_statistics_test_base.cc',
        'kernel/sharedmem/shared_mem_test_base.cc',
        'kernel/thread/thread_system_test_base.cc',
        'kernel/thread/worker_test_base.cc',
        'kernel/util/lock_manager_spammer.cc',
        'kernel/util/mock_nonce_generator.cc',
        'kernel/util/threadsafe_lock_manager.cc',
      ],
      'all_dependent_settings': {
        'include_dirs': [
          '<(DEPTH)/testing/gtest/include',
        ],
      },
      'include_dirs': [
        '<(DEPTH)',
        '<(DEPTH)/testing/gtest/include',
      ],
      'dependencies': [
        '<(DEPTH)/testing/gtest.gyp:gtest_main',
        'mem_lock',
        'pagespeed_sharedmem',
        'util',
      ],
    },
    {
      'target_name': 'pagespeed_cache',
      'type': '<(library)',
      'sources': [
        'kernel/cache/async_cache.cc',
        'kernel/cache/cache_batcher.cc',
        'kernel/cache/cache_stats.cc',
        'kernel/cache/compressed_cache.cc',
        'kernel/cache/delegating_cache_callback.cc',
        'kernel/cache/fallback_cache.cc',
        'kernel/cache/file_cache.cc',
        'kernel/cache/key_value_codec.cc',
        'kernel/cache/lru_cache.cc',
        'kernel/cache/purge_context.cc',
        'kernel/cache/purge_set.cc',
        'kernel/cache/threadsafe_cache.cc',
        'kernel/cache/write_through_cache.cc',
       ],
      'dependencies': [
        'pagespeed_base',
        '<(DEPTH)/third_party/rdestl/rdestl.gyp:rdestl',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
    },
    {
      'target_name': 'pagespeed_html_gperf',
      'variables': {
        'instaweb_gperf_subdir': 'kernel/html',
        'instaweb_root':  '<(DEPTH)/pagespeed',
      },
      'sources': [
        'kernel/html/html_name.gperf',
      ],
      # TODO(morlovich): Move gperf.gypi to pagespeed/, changing all
      # references in net/instaweb gyp files.
      'includes': [
        '../net/instaweb/gperf.gypi',
      ],
    },
    {
      'target_name': 'pagespeed_html',
      'type': '<(library)',
      'sources': [
        'kernel/html/elide_attributes_filter.cc',
        'kernel/html/collapse_whitespace_filter.cc',
        'kernel/html/doctype.cc',
        'kernel/html/empty_html_filter.cc',
        'kernel/html/html_attribute_quote_removal.cc',
        'kernel/html/html_element.cc',
        'kernel/html/html_event.cc',
        'kernel/html/html_filter.cc',
        'kernel/html/html_keywords.cc',
        'kernel/html/html_lexer.cc',
        'kernel/html/html_node.cc',
        'kernel/html/html_parse.cc',
        'kernel/html/html_writer_filter.cc',
        'kernel/html/remove_comments_filter.cc',
      ],
      'dependencies': [
        ':pagespeed_base_core',
        ':pagespeed_html_gperf',
        ':pagespeed_http_core',
      ],
    },
    {
      'target_name': 'pagespeed_http_core',
      'type': '<(library)',
      'sources': [
        'kernel/http/caching_headers.cc',
        'kernel/http/content_type.cc',
        'kernel/http/google_url.cc',
        'kernel/http/http_names.cc',
        'kernel/http/query_params.cc',
        'kernel/http/semantic_type.cc',
      ],
      'dependencies': [
        'pagespeed_base_core',
        '<(DEPTH)/url/url.gyp:url_lib',
      ],
    },
    {
      'target_name': 'pagespeed_http',
      'type': '<(library)',
      'sources': [
        'kernel/http/data_url.cc',
        'kernel/http/domain_registry.cc',
        'kernel/http/headers.cc',
        'kernel/http/http_options.cc',
        'kernel/http/response_headers_parser.cc',
        'kernel/http/response_headers.cc',
        'kernel/http/request_headers.cc',
        'kernel/http/user_agent_matcher.cc',
        'kernel/http/user_agent_normalizer.cc',
      ],
      'dependencies': [
        '<(DEPTH)/third_party/domain_registry_provider/src/domain_registry/domain_registry.gyp:init_registry_tables_lib',
        'pagespeed_http_core',
        'pagespeed_http_gperf',
        'pagespeed_http_pb',
        'util',
      ],
      'include_dirs': [
        '<(instaweb_root)',
        '<(DEPTH)',
      ],
    },
    {
      'target_name': 'pagespeed_http_gperf',
      'variables': {
        'instaweb_gperf_subdir': 'kernel/http',
        'instaweb_root':  '<(DEPTH)/pagespeed',
      },
      'sources': [
        'kernel/http/bot_checker.gperf',
      ],
      'includes': [
        '../net/instaweb/gperf.gypi',
      ]
    },
    {
      'target_name': 'pagespeed_http_pb',
      'variables': {
        'instaweb_protoc_subdir': 'pagespeed/kernel/http',
      },
      'sources': [
        'kernel/http/http.proto',
        '<(protoc_out_dir)/<(instaweb_protoc_subdir)/http.pb.cc',
      ],
      'includes': [
        '../net/instaweb/protoc.gypi',
      ],
    },
    {
      'target_name': 'pagespeed_image_types_pb',
      'variables': {
        'instaweb_protoc_subdir': 'pagespeed/kernel/http',
      },
      'sources': [
        'kernel/http/image_types.proto',
        '<(protoc_out_dir)/<(instaweb_protoc_subdir)/image_types.pb.cc',
      ],
      'includes': [
        '../net/instaweb/protoc.gypi',
      ],
    },
    {
      'target_name': 'jsminify',
      'type': '<(library)',
      'sources': [
        'kernel/js/js_minify.cc',
      ],
      # TODO(bmcquade): We should fix the code so this is not needed.
      'msvs_disabled_warnings': [ 4018 ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        'pagespeed_base_core',
        'js_tokenizer',
        'pagespeed_javascript_gperf',
      ],
    },
    {
      'target_name': 'js_tokenizer',
      'type': '<(library)',
      'sources': [
        'kernel/js/js_tokenizer.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        'pagespeed_base_core',
        'pagespeed_javascript_gperf',
        '<(DEPTH)/third_party/re2/re2.gyp:re2',
      ],
    },
    {
      'target_name': 'pagespeed_javascript_gperf',
      'variables': {
        'instaweb_gperf_subdir': 'kernel/js',
        'instaweb_root':  '<(DEPTH)/pagespeed',
      },
      'sources': [
        'kernel/js/js_keywords.gperf',
      ],
      'includes': [
        # TODO(jkarlin): Move gperf.gypi to pagespeed/, changing all references
        # in net/instaweb gyp files.
        '../net/instaweb/gperf.gypi',
      ]
    },
    {
      'target_name': 'util',
      'type': '<(library)',
      'sources': [
        'kernel/util/file_system_lock_manager.cc',
        'kernel/util/gzip_inflater.cc',
        'kernel/util/hashed_nonce_generator.cc',
        'kernel/util/input_file_nonce_generator.cc',
        'kernel/util/nonce_generator.cc',
        'kernel/util/simple_random.cc',
        'kernel/util/statistics_logger.cc',
        'kernel/util/statistics_work_bound.cc',
        'kernel/util/url_escaper.cc',
        'kernel/util/url_multipart_encoder.cc',
        'kernel/util/url_segment_encoder.cc',
        'kernel/util/url_to_filename_encoder.cc',
        'kernel/util/work_bound.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        'pagespeed_base',
        'pagespeed_thread',
        '<(DEPTH)/third_party/re2/re2.gyp:re2',
        '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
        '<(DEPTH)/url/url.gyp:url_lib',
      ],
    },
    {
      'target_name': 'mem_lock',
      'type': '<(library)',
      'sources': [
        'kernel/util/mem_lock.cc',
        'kernel/util/mem_lock_manager.cc',
        'kernel/util/mem_lock_state.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        'pagespeed_base',
        'pagespeed_thread',
      ],
    },
    {
      'target_name': 'util_gflags',
      'type': '<(library)',
      'sources': [
        'kernel/util/gflags.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'dependencies': [
        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
      ],
      'export_dependent_settings': [
        '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
      ],
    },
    {
      'target_name': 'pagespeed_image_processing',
      'type': '<(library)',
      'dependencies': [
        ':pagespeed_image_types_pb',
        '<(DEPTH)/base/base.gyp:base',
        '<(DEPTH)/build/libwebp.gyp:libwebp_enc',
        '<(DEPTH)/build/libwebp.gyp:libwebp_enc_mux',
        '<(DEPTH)/build/libwebp.gyp:libwebp_dec',
        '<(DEPTH)/third_party/giflib/giflib.gyp:dgiflib',
        '<(DEPTH)/third_party/libjpeg_turbo/libjpeg_turbo.gyp:libjpeg_turbo',
        '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
        '<(DEPTH)/third_party/optipng/optipng.gyp:opngreduc',
        '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
      ],
      'sources': [
        'kernel/image/frame_interface_optimizer.cc',
        'kernel/image/gif_reader.cc',
        'kernel/image/image_analysis.cc',
        'kernel/image/image_converter.cc',
        'kernel/image/image_frame_interface.cc',
        'kernel/image/image_resizer.cc',
        'kernel/image/image_util.cc',
        'kernel/image/jpeg_optimizer.cc',
        'kernel/image/jpeg_reader.cc',
        'kernel/image/jpeg_utils.cc',
        'kernel/image/pixel_format_optimizer.cc',
        'kernel/image/png_optimizer.cc',
        'kernel/image/read_image.cc',
        'kernel/image/scanline_interface_frame_adapter.cc',
        'kernel/image/scanline_utils.cc',
        'kernel/image/webp_optimizer.cc',
      ],
      'include_dirs': [
        '<(DEPTH)',
        '<(DEPTH)/third_party/libwebp/src',
      ],
      'msvs_disabled_warnings': [
        4996,  # std::string::copy() is deprecated on Windows, but we use it,
               # so we need to disable the warning.
      ],
      'export_dependent_settings': [
        '<(DEPTH)/base/base.gyp:base',
        '<(DEPTH)/third_party/libjpeg_turbo/libjpeg_turbo.gyp:libjpeg_turbo',
        '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
        '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
      ],
    },
    {
      'target_name': 'pagespeed_image_test_util',
      'type': '<(library)',
      'sources': [
        'kernel/image/gif_square.cc',
        'kernel/image/jpeg_optimizer_test_helper.cc',
        'kernel/image/test_utils.cc',
      ],
      'all_dependent_settings': {
        'include_dirs': [
          '<(DEPTH)/testing/gtest/include',
        ],
      },
      'include_dirs': [
        '<(DEPTH)',
        '<(DEPTH)/testing/gtest/include',
      ],
      'dependencies': [
        ':kernel_test_util',
        ':pagespeed_image_processing',
        '<(DEPTH)/third_party/giflib/giflib.gyp:egiflib',
      ],
    },
    {
      'target_name': 'pagespeed_sharedmem_pb',
      'variables': {
        'instaweb_protoc_subdir': 'pagespeed/kernel/sharedmem',
      },
      'sources': [
        'kernel/sharedmem/shared_mem_cache_snapshot.proto',
        '<(protoc_out_dir)/<(instaweb_protoc_subdir)/shared_mem_cache_snapshot.pb.cc',
      ],
      'includes': [
        '../net/instaweb/protoc.gypi',
      ],
    },
    {
      'target_name': 'pagespeed_sharedmem',
      'type': '<(library)',
      'sources': [
        'kernel/sharedmem/inprocess_shared_mem.cc',
        'kernel/sharedmem/shared_circular_buffer.cc',
        'kernel/sharedmem/shared_dynamic_string_map.cc',
        'kernel/sharedmem/shared_mem_cache.cc',
        'kernel/sharedmem/shared_mem_cache_data.cc',
        'kernel/sharedmem/shared_mem_lock_manager.cc',
        'kernel/sharedmem/shared_mem_statistics.cc',
      ],
      'dependencies': [
        'pagespeed_base',
        'pagespeed_sharedmem_pb',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
    },
    {
      'target_name': 'pagespeed_thread',
      'type': '<(library)',
      'sources': [
        'kernel/thread/queued_alarm.cc',
        'kernel/thread/queued_worker.cc',
        'kernel/thread/queued_worker_pool.cc',
        'kernel/thread/scheduler.cc',
        'kernel/thread/scheduler_based_abstract_lock.cc',
        'kernel/thread/scheduler_thread.cc',
        'kernel/thread/slow_worker.cc',
        'kernel/thread/thread_synchronizer.cc',
        'kernel/thread/worker.cc',
      ],
      'dependencies': [
        'pagespeed_base',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
    },
    {
      # We use a library called protobuf_full_do_not_use because it enables
      # protobuf introspection, which in turn enables us to show an admin page
      # with detail about the contents of caches.  This makes 64-bit Release
      # libmod_pagespeed.so 639k larger (8.5M vs 7.9M).  If we decide this is
      # not worth it, we could write and maintain hand-serializers for the
      # protobufs of interest, or find some less expensive way to display
      # the contents of protobufs in a human-readable form.
      #
      # The 'do_not_use' part of this name is only in reference to official
      # builds of Chrome.
      'target_name': 'proto_util',
      'type': '<(library)',
      'dependencies': [
        '<(DEPTH)/third_party/protobuf/protobuf.gyp:protobuf_full_do_not_use',
      ],
      'export_dependent_settings': [
        '<(DEPTH)/third_party/protobuf/protobuf.gyp:protobuf_full_do_not_use',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
    },
    {
      'target_name': 'pthread_system',
      'type': '<(library)',
      'sources': [
        'kernel/thread/pthread_condvar.cc',
        'kernel/thread/pthread_mutex.cc',
        'kernel/thread/pthread_rw_lock.cc',
        'kernel/thread/pthread_shared_mem.cc',
        'kernel/thread/pthread_thread_system.cc',
      ],
      'conditions': [
        ['support_posix_shared_mem != 1', {
          'sources!' : [
            'kernel/thread/pthread_shared_mem.cc',
          ],
        }]
      ],
      'dependencies': [
        'pagespeed_base',
      ],
      'include_dirs': [
        '<(DEPTH)',
      ],
      'ldflags': [
        '-lrt',
      ]
    },
  ],
}
