diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index d6481ad..afc5885 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -8,6 +8,175 @@
 
 import("../../build/webrtc.gni")
 
-source_set("audio_device") {
-  # TODO(henrike): Implement.
+config("audio_device_config") {
+  include_dirs = [
+    "../interface",
+    "include",
+    "dummy",  # Contains dummy audio device implementations.
+  ]
 }
+
+source_set("audio_device") {
+  sources = [
+    "include/audio_device.h",
+    "include/audio_device_defines.h",
+    "audio_device_buffer.cc",
+    "audio_device_buffer.h",
+    "audio_device_generic.cc",
+    "audio_device_generic.h",
+    "audio_device_utility.cc",
+    "audio_device_utility.h",
+    "audio_device_impl.cc",
+    "audio_device_impl.h",
+    "audio_device_config.h",
+    "dummy/audio_device_dummy.cc",
+    "dummy/audio_device_dummy.h",
+    "dummy/audio_device_utility_dummy.cc",
+    "dummy/audio_device_utility_dummy.h",
+    "dummy/file_audio_device.cc",
+    "dummy/file_audio_device.h",
+  ]
+
+  direct_dependent_configs = [ ":audio_device_config"]
+
+  include_dirs = []
+  if (is_linux) {
+    include_dirs += [ "linux" ]
+  }
+  if (is_ios) {
+    include_dirs += [ "ios" ]
+  }
+  if (is_mac) {
+    include_dirs += [ "mac" ]
+  }
+  if (is_win) {
+    include_dirs += [ "win" ]
+  }
+  if (is_android) {
+    include_dirs += [ "android" ]
+  }
+  if (include_internal_audio_device) {
+    sources += [
+      "linux/alsasymboltable_linux.cc",
+      "linux/alsasymboltable_linux.h",
+      "linux/audio_device_alsa_linux.cc",
+      "linux/audio_device_alsa_linux.h",
+      "linux/audio_device_utility_linux.cc",
+      "linux/audio_device_utility_linux.h",
+      "linux/audio_mixer_manager_alsa_linux.cc",
+      "linux/audio_mixer_manager_alsa_linux.h",
+      "linux/latebindingsymboltable_linux.cc",
+      "linux/latebindingsymboltable_linux.h",
+      "ios/audio_device_ios.mm",
+      "ios/audio_device_ios.h",
+      "ios/audio_device_utility_ios.cc",
+      "ios/audio_device_utility_ios.h",
+      "mac/audio_device_mac.cc",
+      "mac/audio_device_mac.h",
+      "mac/audio_device_utility_mac.cc",
+      "mac/audio_device_utility_mac.h",
+      "mac/audio_mixer_manager_mac.cc",
+      "mac/audio_mixer_manager_mac.h",
+      "mac/portaudio/pa_memorybarrier.h",
+      "mac/portaudio/pa_ringbuffer.c",
+      "mac/portaudio/pa_ringbuffer.h",
+      "win/audio_device_core_win.cc",
+      "win/audio_device_core_win.h",
+      "win/audio_device_wave_win.cc",
+      "win/audio_device_wave_win.h",
+      "win/audio_device_utility_win.cc",
+      "win/audio_device_utility_win.h",
+      "win/audio_mixer_manager_win.cc",
+      "win/audio_mixer_manager_win.h",
+      "android/audio_device_template.h",
+      "android/audio_device_utility_android.cc",
+      "android/audio_device_utility_android.h",
+      "android/audio_manager_jni.cc",
+      "android/audio_manager_jni.h",
+      "android/audio_record_jni.cc",
+      "android/audio_record_jni.h",
+      "android/audio_track_jni.cc",
+      "android/audio_track_jni.h",
+      "android/fine_audio_buffer.cc",
+      "android/fine_audio_buffer.h",
+      "android/low_latency_event_posix.cc",
+      "android/low_latency_event.h",
+      "android/opensles_common.cc",
+      "android/opensles_common.h",
+      "android/opensles_input.cc",
+      "android/opensles_input.h",
+      "android/opensles_output.cc",
+      "android/opensles_output.h",
+      "android/single_rw_fifo.cc",
+      "android/single_rw_fifo.h",
+    ]
+    if (is_linux) {
+      defines += [ "LINUX_ALSA" ]
+
+      libs = [
+        "dl",
+        "X11",
+      ]
+
+      if (include_pulse_audio) {
+        sources += [
+          "linux/audio_device_pulse_linux.cc",
+          "linux/audio_device_pulse_linux.h",
+          "linux/audio_mixer_manager_pulse_linux.cc",
+          "linux/audio_mixer_manager_pulse_linux.h",
+          "linux/pulseaudiosymboltable_linux.cc",
+          "linux/pulseaudiosymboltable_linux.h",
+        ]
+
+        defines += [ "LINUX_PULSE" ]
+      }
+    }
+    if (is_mac) {
+      libs = [
+        "AudioToolbox.framework",
+        "CoreAudio.framework",
+      ]
+    }
+    if (is_ios) {
+      cflags += [ "-fobjc-arc" ]  # CLANG_ENABLE_OBJC_ARC = YES.
+
+      libs = [
+        "AudioToolbox.framework",
+        "AVFoundation.framework",
+      ]
+    }
+    if (is_win) {
+      libs = [
+        # Required for the built-in WASAPI AEC.
+        "dmoguids.lib",
+        "wmcodecdspuuid.lib",
+        "amstrmid.lib",
+        "msdmo.lib",
+      ]
+    }
+  } else {
+    defines = [ "WEBRTC_DUMMY_AUDIO_BUILD" ]
+  }
+
+  if (!build_with_chromium) {
+    sources += [
+      # Do not link these into Chrome since they contain static data.
+      "dummy/file_audio_device_factory.cc",
+      "dummy/file_audio_device_factory.h",
+    ]
+  }
+
+  if (is_clang) {
+    # Suppress warnings from Chrome's Clang plugins.
+    # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
+    configs -= [ "//build/config/clang:find_bad_constructs" ]
+  }
+
+  deps = [
+    "../../common_audio",
+    "../../system_wrappers",
+    "../utility",
+  ]
+}
+
+
