| # 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. |
| |
| import("//chrome/version.gni") # TODO layering violation! |
| import("//chromecast/chromecast.gni") |
| import("//testing/test.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| declare_args() { |
| # Denotes the type of Cast product. This is #defined as CAST_PRODUCT_TYPE in |
| # version.h. This is an integer in the range [0-4]. |
| cast_product_type = 0 |
| |
| # If true, IS_CAST_DEBUG_BUILD() will evaluate to 1 in version.h. Otherwise, |
| # it will evaluate to 0. Overriding this when is_debug=false is useful for |
| # doing engineering builds. |
| cast_is_debug = is_debug |
| } |
| |
| assert(cast_product_type >= 0 && cast_product_type <= 4) |
| |
| # GYP target: chromecast.gyp:cast_base |
| source_set("base") { |
| sources = [ |
| "android/dumpstate_writer.cc", |
| "android/dumpstate_writer.h", |
| "android/system_time_change_notifier_android.cc", |
| "android/system_time_change_notifier_android.h", |
| "bind_to_task_runner.h", |
| "cast_constants.cc", |
| "cast_constants.h", |
| "cast_paths.cc", |
| "cast_paths.h", |
| "cast_resource.cc", |
| "cast_resource.h", |
| "chromecast_config_android.cc", |
| "chromecast_config_android.h", |
| "chromecast_switches.cc", |
| "chromecast_switches.h", |
| "device_capabilities.h", |
| "device_capabilities_impl.cc", |
| "device_capabilities_impl.h", |
| "error_codes.cc", |
| "error_codes.h", |
| "init_command_line_shlib.cc", |
| "init_command_line_shlib.h", |
| "path_utils.cc", |
| "path_utils.h", |
| "pref_names.cc", |
| "pref_names.h", |
| "process_utils.cc", |
| "process_utils.h", |
| "serializers.cc", |
| "serializers.h", |
| "system_time_change_notifier.cc", |
| "system_time_change_notifier.h", |
| "task_runner_impl.cc", |
| "task_runner_impl.h", |
| ] |
| |
| public_deps = [ |
| "//chromecast/base/metrics", |
| "//chromecast/public", |
| ] |
| |
| deps = [ |
| "//base", |
| ] |
| |
| if (is_android) { |
| deps += [ ":jni_headers" ] |
| } |
| } |
| |
| # GYP target: n/a |
| source_set("test_support") { |
| sources = [ |
| "scoped_temp_file.cc", |
| "scoped_temp_file.h", |
| ] |
| |
| public_deps = [ |
| ":base", |
| "//base", |
| ] |
| } |
| |
| # GYP target: chromecast_tests.gypi:cast_base_unittests |
| test("cast_base_unittests") { |
| sources = [ |
| "bind_to_task_runner_unittest.cc", |
| "chromecast_switches_unittest.cc", |
| "device_capabilities_impl_unittest.cc", |
| "error_codes_unittest.cc", |
| "path_utils_unittest.cc", |
| "process_utils_unittest.cc", |
| "serializers_unittest.cc", |
| "system_time_change_notifier_unittest.cc", |
| ] |
| |
| deps = [ |
| ":test_support", |
| "//base/test:run_all_unittests", |
| "//base/test:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| source_set("cast_sys_info") { |
| sources = [ |
| "cast_sys_info_android.cc", |
| "cast_sys_info_android.h", |
| "cast_sys_info_dummy.cc", |
| "cast_sys_info_dummy.h", |
| "cast_sys_info_util.h", |
| ] |
| |
| deps = [ |
| "//base", |
| "//chromecast/public", |
| ] |
| |
| if (is_android) { |
| deps += [ |
| ":cast_version", |
| "//chromecast/browser:jni_headers", |
| ] |
| } else if (chromecast_branding == "public") { |
| sources += [ "cast_sys_info_util_simple.cc" ] |
| } |
| } |
| |
| # Target for OEM partners to override sys_info shared library, i.e. |
| # libcast_sys_info_1.0.so. |
| shared_library("libcast_sys_info_1.0") { |
| sources = [ |
| "cast_sys_info_dummy.cc", |
| "cast_sys_info_dummy.h", |
| "cast_sys_info_shlib.cc", |
| ] |
| |
| deps = [ |
| "//chromecast/public", |
| ] |
| } |
| |
| # Note: Android links //chromecast/base:cast_sys_info statically. |
| source_set("cast_sys_info_shlib") { |
| if (!is_android) { |
| sources = [ |
| "cast_sys_info_util_shlib.cc", |
| ] |
| |
| deps = [ |
| ":cast_sys_info", |
| ":libcast_sys_info_1.0", |
| "//base", |
| "//chromecast/public", |
| ] |
| } |
| } |
| |
| process_version("cast_version") { |
| template_file = "version.h.in" |
| output = "$target_gen_dir/version.h" |
| |
| extra_args = [ |
| "-e", |
| "VERSION_FULL=\"%s.%s.%s.%s\"%(MAJOR,MINOR,BUILD,PATCH)", |
| "-e", |
| "CAST_BUILD_RELEASE=\"$cast_build_release\"", |
| "-e", |
| "CAST_BUILD_INCREMENTAL=\"$cast_build_incremental\"", |
| "-e", |
| "CAST_PRODUCT_TYPE=$cast_product_type", |
| ] |
| |
| if (cast_is_debug) { |
| extra_args += [ |
| "-e", |
| "CAST_IS_DEBUG_BUILD=1", |
| ] |
| } else { |
| extra_args += [ |
| "-e", |
| "CAST_IS_DEBUG_BUILD=0", |
| ] |
| } |
| } |
| |
| if (is_android) { |
| # GYP target: chromecast.gyp:jni_headers |
| generate_jni("jni_headers") { |
| sources = [ |
| "java/src/org/chromium/chromecast/base/ChromecastConfigAndroid.java", |
| "java/src/org/chromium/chromecast/base/DumpstateWriter.java", |
| "java/src/org/chromium/chromecast/base/SystemTimeChangeNotifierAndroid.java", |
| ] |
| |
| jni_package = "chromecast" |
| } |
| |
| # GYP target: chromecast.gyp:cast_base_java |
| android_library("base_java") { |
| java_src_dir = "//chromecast/base/java/src" |
| java_files = [ |
| "$java_src_dir/org/chromium/chromecast/base/CastSettingsManager.java", |
| "$java_src_dir/org/chromium/chromecast/base/ChromecastConfigAndroid.java", |
| "$java_src_dir/org/chromium/chromecast/base/DumpstateWriter.java", |
| "$java_src_dir/org/chromium/chromecast/base/SystemTimeChangeNotifierAndroid.java", |
| ] |
| |
| deps = [ |
| "//base:base_java", |
| ] |
| } |
| } |