1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("//ui/ozone/ozone.gni") 6 7 # The list of platforms that will be built. 8 ozone_platforms = [] 9 10 # Extra dependencies to pull into ui/ozone for built platforms. 11 ozone_platform_deps = [] 12 13 # Extra dependencies to pull into ozone_unittests for built platforms. 14 ozone_platform_test_deps = [] 15 16 if (ozone_platform_egltest) { 17 ozone_platforms += [ "egltest" ] 18 ozone_platform_deps += [ "platform/egltest" ] 19 } 20 21 if (ozone_platform_test) { 22 ozone_platforms += [ "test" ] 23 ozone_platform_deps += [ "platform/test" ] 24 } 25 26 if (ozone_platform_caca) { 27 ozone_platforms += [ "caca" ] 28 ozone_platform_deps += [ "platform/caca" ] 29 } 30 31 if (ozone_platform_dri) { 32 ozone_platforms += [ "dri" ] 33 ozone_platform_deps += [ "platform/dri" ] 34 ozone_platform_test_deps += [ "platform/dri:dri_unittests" ] 35 } 36 37 if (ozone_platform_gbm) { 38 ozone_platforms += [ "gbm" ] 39 ozone_platform_deps += [ "platform/dri:gbm" ] 40 } 41 42 platform_list_cc_file = "$target_gen_dir/platform_list.cc" 43 platform_list_h_file = "$target_gen_dir/platform_list.h" 44 platform_list_txt_file = "$target_gen_dir/platform_list.txt" 45 constructor_list_cc_file = "$target_gen_dir/constructor_list.cc" 46 47 # GYP version: ui/ozone/ozone.gyp:ozone_base 48 component("ozone_base") { 49 sources = [ 50 "public/cursor_factory_ozone.cc", 51 "public/cursor_factory_ozone.h", 52 "public/gpu_platform_support.cc", 53 "public/gpu_platform_support.h", 54 "public/gpu_platform_support_host.cc", 55 "public/gpu_platform_support_host.h", 56 "public/overlay_candidates_ozone.cc", 57 "public/overlay_candidates_ozone.h", 58 "public/surface_factory_ozone.cc", 59 "public/surface_factory_ozone.h", 60 "public/surface_ozone_canvas.h", 61 "public/surface_ozone_egl.h", 62 ] 63 64 defines = [ "OZONE_BASE_IMPLEMENTATION" ] 65 66 deps = [ 67 "//base", 68 "//skia", 69 "//ui/gfx/geometry", 70 ] 71 } 72 73 component("ozone") { 74 sources = [ 75 platform_list_cc_file, 76 platform_list_h_file, 77 constructor_list_cc_file, 78 79 # common/chromeos files are excluded automatically when building with 80 # chromeos=0, by exclusion rules in filename_rules.gypi due to the 81 # "chromeos" folder name. 82 "common/chromeos/display_mode_proxy.cc", 83 "common/chromeos/display_mode_proxy.h", 84 "common/chromeos/display_snapshot_proxy.cc", 85 "common/chromeos/display_snapshot_proxy.h", 86 "common/chromeos/display_util.cc", 87 "common/chromeos/display_util.h", 88 "common/chromeos/native_display_delegate_ozone.cc", 89 "common/chromeos/native_display_delegate_ozone.h", 90 "common/gpu/ozone_gpu_message_generator.cc", 91 "common/gpu/ozone_gpu_message_generator.h", 92 "common/gpu/ozone_gpu_message_params.cc", 93 "common/gpu/ozone_gpu_message_params.h", 94 "common/gpu/ozone_gpu_messages.h", 95 "public/ozone_platform.cc", 96 "public/ozone_platform.h", 97 "public/ozone_switches.cc", 98 "public/ozone_switches.h", 99 "public/ui_thread_gpu.cc", 100 "public/ui_thread_gpu.h", 101 "platform_selection.cc", 102 "platform_selection.h", 103 ] 104 105 defines = [ "OZONE_IMPLEMENTATION" ] 106 107 deps = [ 108 ":generate_constructor_list", 109 ":generate_ozone_platform_list", 110 ":ozone_base", 111 "//base", 112 "//ipc", 113 "//skia", 114 "//ui/events", 115 "//ui/events/ozone:events_ozone", 116 "//ui/gfx", 117 "//ui/gfx/geometry", 118 "//ui/gfx/ipc", 119 # TODO(GYP) the GYP version has a way to add additional dependencies via 120 # build flags. 121 ] + ozone_platform_deps 122 123 if (is_chromeos) { 124 deps += [ "//ui/display/types" ] 125 } 126 } 127 128 # GYP version: ui/ozone/ozone.gyp:generate_ozone_platform_list 129 action("generate_ozone_platform_list") { 130 script = "generate_ozone_platform_list.py" 131 outputs = [ 132 platform_list_cc_file, 133 platform_list_h_file, 134 platform_list_txt_file 135 ] 136 137 args = [ 138 "--output_cc=" + rebase_path(platform_list_cc_file, root_build_dir), 139 "--output_h=" + rebase_path(platform_list_h_file, root_build_dir), 140 "--output_txt=" + rebase_path(platform_list_txt_file, root_build_dir), 141 "--default=$ozone_platform", 142 ] + ozone_platforms 143 } 144 145 # GYP version: ui/ozone/ozone.gyp:generate_constructor_list 146 action("generate_constructor_list") { 147 script = "generate_constructor_list.py" 148 149 source_prereqs = [ 150 platform_list_txt_file, 151 ] 152 outputs = [ 153 constructor_list_cc_file, 154 ] 155 156 args = [ 157 "--platform_list=" + rebase_path(platform_list_txt_file, root_build_dir), 158 "--output_cc=" + rebase_path(constructor_list_cc_file, root_build_dir), 159 "--namespace=ui", 160 "--typename=OzonePlatform", 161 "--include=\"ui/ozone/public/ozone_platform.h\"", 162 ] 163 164 deps = [ ":generate_ozone_platform_list" ] 165 } 166 167 test("ozone_unittests") { 168 sources = [ 169 "run_all_unittests.cc", 170 ] 171 172 deps = [ 173 "//base/test:test_support", 174 "//testing/gtest", 175 ] + ozone_platform_test_deps 176 } 177