1# Copyright 2013 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{
6  'variables': {
7    'chromium_code': 1,
8    'external_ozone_platforms': [],
9    'external_ozone_platform_files': [],
10    'external_ozone_platform_deps': [],
11    'external_ozone_platform_unittest_deps': [],
12    'internal_ozone_platforms': [],
13    'internal_ozone_platform_deps': [],
14    'internal_ozone_platform_unittest_deps': [],
15  },
16  'targets': [
17    {
18      # GN version: //ui/ozone:ozone_base
19      'target_name': 'ozone_base',
20      'type': '<(component)',
21      'dependencies': [
22        '<(DEPTH)/base/base.gyp:base',
23        '<(DEPTH)/skia/skia.gyp:skia',
24        '<(DEPTH)/ui/gfx/gfx.gyp:gfx_geometry',
25      ],
26      'defines': [
27        'OZONE_BASE_IMPLEMENTATION',
28      ],
29      'sources': [
30        'public/cursor_factory_ozone.cc',
31        'public/cursor_factory_ozone.h',
32        'public/gpu_platform_support.cc',
33        'public/gpu_platform_support.h',
34        'public/gpu_platform_support_host.cc',
35        'public/gpu_platform_support_host.h',
36        'public/native_pixmap.h',
37        'public/overlay_candidates_ozone.cc',
38        'public/overlay_candidates_ozone.h',
39        'public/surface_factory_ozone.cc',
40        'public/surface_factory_ozone.h',
41        'public/surface_ozone_canvas.h',
42        'public/surface_ozone_egl.h',
43      ],
44    },
45    {
46      # GN version: //ui/ozone
47      'target_name': 'ozone',
48      'type': '<(component)',
49      'dependencies': [
50        '<(DEPTH)/base/base.gyp:base',
51        '<(DEPTH)/ipc/ipc.gyp:ipc',
52        '<(DEPTH)/skia/skia.gyp:skia',
53        '<(DEPTH)/ui/events/events.gyp:events',
54        '<(DEPTH)/ui/events/ozone/events_ozone.gyp:events_ozone',
55        '<(DEPTH)/ui/gfx/gfx.gyp:gfx',
56        '<(DEPTH)/ui/gfx/gfx.gyp:gfx_geometry',
57        '<(DEPTH)/ui/gfx/ipc/gfx_ipc.gyp:gfx_ipc',
58        '<@(external_ozone_platform_deps)',
59        '<@(internal_ozone_platform_deps)',
60        'ozone_base',
61      ],
62      'defines': [
63        'OZONE_IMPLEMENTATION',
64      ],
65      'variables': {
66        'platform_list_cc_file': '<(INTERMEDIATE_DIR)/ui/ozone/platform_list.cc',
67        'platform_list_h_file': '<(SHARED_INTERMEDIATE_DIR)/ui/ozone/platform_list.h',
68        'platform_list_txt_file': '<(SHARED_INTERMEDIATE_DIR)/ui/ozone/platform_list.txt',
69        'constructor_list_cc_file': '<(INTERMEDIATE_DIR)/ui/ozone/constructor_list.cc',
70        'ozone_platforms': [
71          '<@(external_ozone_platforms)',
72          '<@(internal_ozone_platforms)',
73        ],
74      },
75      'include_dirs': [
76        '<(SHARED_INTERMEDIATE_DIR)',
77      ],
78      'sources': [
79        '<(platform_list_cc_file)',
80        '<(platform_list_h_file)',
81        '<(constructor_list_cc_file)',
82
83        # common/chromeos files are excluded automatically when building with
84        # chromeos=0, by exclusion rules in filename_rules.gypi due to the
85        # 'chromeos' folder name.
86        'common/chromeos/display_mode_proxy.cc',
87        'common/chromeos/display_mode_proxy.h',
88        'common/chromeos/display_snapshot_proxy.cc',
89        'common/chromeos/display_snapshot_proxy.h',
90        'common/chromeos/display_util.cc',
91        'common/chromeos/display_util.h',
92        'common/chromeos/native_display_delegate_ozone.cc',
93        'common/chromeos/native_display_delegate_ozone.h',
94        'common/gpu/ozone_gpu_message_generator.cc',
95        'common/gpu/ozone_gpu_message_generator.h',
96        'common/gpu/ozone_gpu_message_params.cc',
97        'common/gpu/ozone_gpu_message_params.h',
98        'common/gpu/ozone_gpu_messages.h',
99        'public/ozone_platform.cc',
100        'public/ozone_platform.h',
101        'public/ozone_switches.cc',
102        'public/ozone_switches.h',
103        'public/ui_thread_gpu.cc',
104        'public/ui_thread_gpu.h',
105        'platform_selection.cc',
106        'platform_selection.h',
107        '<@(external_ozone_platform_files)',
108      ],
109      'actions': [
110        {
111          # GN version: //ui/ozone:generate_ozone_platform_list
112          'action_name': 'generate_ozone_platform_list',
113          'variables': {
114            'generator_path': 'generate_ozone_platform_list.py',
115          },
116          'inputs': [
117            '<(generator_path)',
118          ],
119          'outputs': [
120            '<(platform_list_cc_file)',
121            '<(platform_list_h_file)',
122            '<(platform_list_txt_file)',
123          ],
124          'action': [
125            'python',
126            '<(generator_path)',
127            '--output_cc=<(platform_list_cc_file)',
128            '--output_h=<(platform_list_h_file)',
129            '--output_txt=<(platform_list_txt_file)',
130            '--default=<(ozone_platform)',
131            '<@(ozone_platforms)',
132          ],
133        },
134        {
135          # GN version: //ui/ozone:generate_constructor_list
136          'action_name': 'generate_constructor_list',
137          'variables': {
138            'generator_path': 'generate_constructor_list.py',
139          },
140          'inputs': [
141            '<(generator_path)',
142            '<(platform_list_txt_file)',
143          ],
144          'outputs': [
145            '<(constructor_list_cc_file)',
146          ],
147          'action': [
148            'python',
149            '<(generator_path)',
150            '--platform_list=<(platform_list_txt_file)',
151            '--output_cc=<(constructor_list_cc_file)',
152            '--namespace=ui',
153            '--typename=OzonePlatform',
154            '--include="ui/ozone/public/ozone_platform.h"'
155          ],
156        },
157      ],
158      'conditions': [
159        ['use_udev == 0', {
160          'sources/': [
161            ['exclude', '_udev\\.(h|cc)$'],
162          ],
163        }],
164        ['chromeos==1', {
165          'dependencies': [
166            '<(DEPTH)/ui/display/display.gyp:display_types',
167          ],
168        }],
169      ],
170    },
171    {
172      'target_name': 'ozone_unittests',
173      'type': '<(gtest_target_type)',
174      'sources': [
175        'run_all_unittests.cc',
176      ],
177      'dependencies': [
178        'ozone_base',
179        '../../base/base.gyp:base',
180        '../../base/base.gyp:test_support_base',
181        '../../testing/gtest.gyp:gtest',
182        '<@(external_ozone_platform_unittest_deps)',
183        '<@(internal_ozone_platform_unittest_deps)',
184      ],
185    },
186  ],
187  'conditions': [
188    ['<(ozone_platform_caca) == 1', {
189      'includes': [
190        'platform/caca/caca.gypi',
191      ],
192    }],
193    ['<(ozone_platform_dri) == 1 or <(ozone_platform_gbm) == 1', {
194      'includes': [
195        'platform/dri/dri.gypi',
196      ],
197    }],
198    ['<(ozone_platform_egltest) == 1', {
199      'includes': [
200        'platform/egltest/egltest.gypi',
201      ],
202    }],
203    ['<(ozone_platform_gbm) == 1', {
204      'includes': [
205        'platform/dri/gbm.gypi',
206      ],
207    }],
208    ['<(ozone_platform_test) == 1', {
209      'includes': [
210        'platform/test/test.gypi',
211      ],
212    }],
213  ],
214}
215