Newer
Older
minerva / Meta / gn / secondary / Ladybird / WebContent / BUILD.gn
@minerva minerva on 13 Jul 2 KB Initial commit
import("//Ladybird/enable_qt.gni")
import("//Ladybird/link_qt.gni")
import("//Ladybird/moc_qt_objects.gni")
import("//Meta/gn/build/libs/pulse/enable.gni")

enable_qt_multimedia = !enable_pulseaudio && current_os != "mac"

moc_qt_objects("generate_moc") {
  sources = [
    "//Ladybird/Qt/EventLoopImplementationQtEventTarget.h",
    "//Ladybird/Qt/RequestManagerQt.h",
  ]

  if (enable_qt_multimedia) {
    sources += [
      "//Ladybird/Qt/AudioCodecPluginQt.cpp",
      "//Ladybird/Qt/AudioThread.cpp",
    ]
  }
}

link_qt("WebContent_qt") {
  qt_components = [
    "Core",
    "Network",
  ]

  if (enable_qt_multimedia) {
    qt_components += [ "Multimedia" ]
  }
}

executable("WebContent") {
  configs += [ "//Ladybird:ladybird_config" ]
  include_dirs = [
    "//Userland/Services",
    "//Ladybird",
  ]
  deps = [
    "//AK",
    "//Meta/gn/build/libs/pulse",
    "//Userland/Libraries/LibCore",
    "//Userland/Libraries/LibFileSystem",
    "//Userland/Libraries/LibGfx",
    "//Userland/Libraries/LibIPC",
    "//Userland/Libraries/LibImageDecoderClient",
    "//Userland/Libraries/LibJS",
    "//Userland/Libraries/LibMain",
    "//Userland/Libraries/LibProtocol",
    "//Userland/Libraries/LibSQL",
    "//Userland/Libraries/LibURL",
    "//Userland/Libraries/LibWeb",
    "//Userland/Libraries/LibWebSocket",
    "//Userland/Libraries/LibWebView",
    "//Userland/Libraries/LibWebView:WebContentClientEndpoint",
    "//Userland/Libraries/LibWebView:WebContentServerEndpoint",
    "//Userland/Libraries/LibWebView:WebDriverClientEndpoint",
    "//Userland/Libraries/LibWebView:WebDriverServerEndpoint",
  ]
  sources = [
    "//Ladybird/FontPlugin.cpp",
    "//Ladybird/HelperProcess.cpp",
    "//Ladybird/ImageCodecPlugin.cpp",
    "//Ladybird/Utilities.cpp",
    "//Userland/Services/WebContent/ConnectionFromClient.cpp",
    "//Userland/Services/WebContent/ConsoleGlobalEnvironmentExtensions.cpp",
    "//Userland/Services/WebContent/PageClient.cpp",
    "//Userland/Services/WebContent/PageHost.cpp",
    "//Userland/Services/WebContent/WebContentConsoleClient.cpp",
    "//Userland/Services/WebContent/WebDriverConnection.cpp",
    "main.cpp",
  ]

  if (enable_qt) {
    defines = [ "HAVE_QT" ]
    configs += [ ":WebContent_qt" ]
    sources += [
      "//Ladybird/Qt/EventLoopImplementationQt.cpp",
      "//Ladybird/Qt/EventLoopImplementationQtEventTarget.cpp",
      "//Ladybird/Qt/RequestManagerQt.cpp",
      "//Ladybird/Qt/StringUtils.cpp",
      "//Ladybird/Qt/WebSocketImplQt.cpp",
      "//Ladybird/Qt/WebSocketQt.cpp",
    ]

    if (enable_qt_multimedia) {
      defines += [ "HAVE_QT_MULTIMEDIA" ]
      sources += [
        "//Ladybird/Qt/AudioCodecPluginQt.cpp",
        "//Ladybird/Qt/AudioThread.cpp",
      ]
    }

    sources += get_target_outputs(":generate_moc")
    deps += [ ":generate_moc" ]
  }

  if (current_os == "linux" || current_os == "mac") {
    cflags_cc = [ "-DHAS_ACCELERATED_GRAPHICS" ]
    deps += [ "//Userland/Libraries/LibAccelGfx" ]
  }
  output_dir = "$root_out_dir/libexec"
}