xref: /aosp_15_r20/external/openscreen/cast/standalone_receiver/BUILD.gn (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2019 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglardimport("//build/config/external_libraries.gni")
6*3f982cf4SFabien Sanglardimport("//build_overrides/build.gni")
7*3f982cf4SFabien Sanglard
8*3f982cf4SFabien Sanglard# Define the executable target only when the build is configured to use the
9*3f982cf4SFabien Sanglard# standalone platform implementation; since this is itself a standalone
10*3f982cf4SFabien Sanglard# application.
11*3f982cf4SFabien Sanglard#
12*3f982cf4SFabien Sanglard# See [external_libraries.md](../../build/config/external_libraries.md) for more information.
13*3f982cf4SFabien Sanglardif (!build_with_chromium) {
14*3f982cf4SFabien Sanglard  shared_sources = [
15*3f982cf4SFabien Sanglard    "cast_service.cc",
16*3f982cf4SFabien Sanglard    "cast_service.h",
17*3f982cf4SFabien Sanglard    "mirroring_application.cc",
18*3f982cf4SFabien Sanglard    "mirroring_application.h",
19*3f982cf4SFabien Sanglard    "simple_remoting_receiver.cc",
20*3f982cf4SFabien Sanglard    "simple_remoting_receiver.h",
21*3f982cf4SFabien Sanglard    "streaming_playback_controller.cc",
22*3f982cf4SFabien Sanglard    "streaming_playback_controller.h",
23*3f982cf4SFabien Sanglard  ]
24*3f982cf4SFabien Sanglard
25*3f982cf4SFabien Sanglard  shared_deps = [
26*3f982cf4SFabien Sanglard    "../../discovery:dnssd",
27*3f982cf4SFabien Sanglard    "../../discovery:public",
28*3f982cf4SFabien Sanglard    "../../platform:standalone_impl",
29*3f982cf4SFabien Sanglard    "../common:public",
30*3f982cf4SFabien Sanglard    "../receiver:agent",
31*3f982cf4SFabien Sanglard    "../receiver:channel",
32*3f982cf4SFabien Sanglard    "../streaming:receiver",
33*3f982cf4SFabien Sanglard  ]
34*3f982cf4SFabien Sanglard
35*3f982cf4SFabien Sanglard  have_external_libs = have_ffmpeg && have_libsdl2
36*3f982cf4SFabien Sanglard
37*3f982cf4SFabien Sanglard  if (have_external_libs) {
38*3f982cf4SFabien Sanglard    source_set("standalone_receiver_sdl") {
39*3f982cf4SFabien Sanglard      sources = shared_sources
40*3f982cf4SFabien Sanglard      deps = shared_deps
41*3f982cf4SFabien Sanglard
42*3f982cf4SFabien Sanglard      defines = [ "CAST_STANDALONE_RECEIVER_HAVE_EXTERNAL_LIBS" ]
43*3f982cf4SFabien Sanglard      sources += [
44*3f982cf4SFabien Sanglard        "avcodec_glue.h",
45*3f982cf4SFabien Sanglard        "decoder.cc",
46*3f982cf4SFabien Sanglard        "decoder.h",
47*3f982cf4SFabien Sanglard        "sdl_audio_player.cc",
48*3f982cf4SFabien Sanglard        "sdl_audio_player.h",
49*3f982cf4SFabien Sanglard        "sdl_glue.cc",
50*3f982cf4SFabien Sanglard        "sdl_glue.h",
51*3f982cf4SFabien Sanglard        "sdl_player_base.cc",
52*3f982cf4SFabien Sanglard        "sdl_player_base.h",
53*3f982cf4SFabien Sanglard        "sdl_video_player.cc",
54*3f982cf4SFabien Sanglard        "sdl_video_player.h",
55*3f982cf4SFabien Sanglard      ]
56*3f982cf4SFabien Sanglard      include_dirs = ffmpeg_include_dirs + libsdl2_include_dirs
57*3f982cf4SFabien Sanglard      lib_dirs = ffmpeg_lib_dirs + libsdl2_lib_dirs
58*3f982cf4SFabien Sanglard      libs = ffmpeg_libs + libsdl2_libs
59*3f982cf4SFabien Sanglard    }
60*3f982cf4SFabien Sanglard  }
61*3f982cf4SFabien Sanglard
62*3f982cf4SFabien Sanglard  source_set("standalone_receiver_dummy") {
63*3f982cf4SFabien Sanglard    sources = shared_sources
64*3f982cf4SFabien Sanglard    deps = shared_deps
65*3f982cf4SFabien Sanglard
66*3f982cf4SFabien Sanglard    sources += [
67*3f982cf4SFabien Sanglard      "dummy_player.cc",
68*3f982cf4SFabien Sanglard      "dummy_player.h",
69*3f982cf4SFabien Sanglard    ]
70*3f982cf4SFabien Sanglard  }
71*3f982cf4SFabien Sanglard
72*3f982cf4SFabien Sanglard  executable("cast_receiver") {
73*3f982cf4SFabien Sanglard    sources = [ "main.cc" ]
74*3f982cf4SFabien Sanglard
75*3f982cf4SFabien Sanglard    deps = shared_deps
76*3f982cf4SFabien Sanglard    configs += [ "../common:certificate_config" ]
77*3f982cf4SFabien Sanglard
78*3f982cf4SFabien Sanglard    if (have_external_libs) {
79*3f982cf4SFabien Sanglard      deps += [ ":standalone_receiver_sdl" ]
80*3f982cf4SFabien Sanglard    } else {
81*3f982cf4SFabien Sanglard      deps += [ ":standalone_receiver_dummy" ]
82*3f982cf4SFabien Sanglard    }
83*3f982cf4SFabien Sanglard  }
84*3f982cf4SFabien Sanglard}
85