| # This file defines android-emu library |
| prebuilt(VPX) |
| prebuilt(FFMPEG) |
| |
| # This is the set of sources that are common in both the shared libary and the |
| # archive. We currently have to split them up due to dependencies on external |
| # variables/functions that are implemented in other libraries. |
| set(android-emu-common |
| # cmake-format: sortable |
| android/adb-server.cpp |
| android/async-console.c |
| android/async-socket-connector.c |
| android/async-socket.c |
| android/async-utils.c |
| android/avd/BugreportInfo.cpp |
| android/avd/generate.cpp |
| android/avd/hw-config.c |
| android/avd/info.c |
| android/avd/scanner.c |
| android/avd/util.c |
| android/avd/util_wrapper.cpp |
| android/base/async/AsyncSocket.cpp |
| android/base/async/CallbackRegistry.cpp |
| android/base/LayoutResolver.cpp |
| android/boot-properties.c |
| android/car-cluster.cpp |
| android/car.cpp |
| android/cmdline-option.cpp |
| android/CommonReportedInfo.cpp |
| android/console_auth.cpp |
| android/cpu_accelerator.cpp |
| android/crashreport/CrashReporter_common.cpp |
| android/crashreport/CrashSystem.cpp |
| android/crashreport/detectors/CrashDetectors.cpp |
| android/crashreport/HangDetector.cpp |
| android/cros.c |
| android/curl-support.c |
| android/emulation/AdbDebugPipe.cpp |
| android/emulation/AdbGuestPipe.cpp |
| android/emulation/AdbHostListener.cpp |
| android/emulation/AdbHostServer.cpp |
| android/emulation/AdbHub.cpp |
| android/emulation/AdbMessageSniffer.cpp |
| android/emulation/address_space_device.cpp |
| android/emulation/address_space_graphics.cpp |
| android/emulation/address_space_host_media.cpp |
| android/emulation/address_space_host_memory_allocator.cpp |
| android/emulation/address_space_shared_slots_host_memory_allocator.cpp |
| android/emulation/android_pipe_host.cpp |
| android/emulation/android_pipe_pingpong.c |
| android/emulation/android_pipe_throttle.c |
| android/emulation/android_pipe_unix.cpp |
| android/emulation/android_pipe_zero.c |
| android/emulation/android_qemud.cpp |
| android/emulation/AndroidAsyncMessagePipe.cpp |
| android/emulation/AndroidMessagePipe.cpp |
| android/emulation/AndroidPipe.cpp |
| android/emulation/AudioCaptureEngine.cpp |
| android/emulation/AudioOutputEngine.cpp |
| android/emulation/bufprint_config_dirs.cpp |
| android/emulation/ClipboardPipe.cpp |
| android/emulation/ComponentVersion.cpp |
| android/emulation/ConfigDirs.cpp |
| android/emulation/control/adb/AdbConnection.cpp |
| android/emulation/control/adb/AdbInterface.cpp |
| android/emulation/control/adb/adbkey.cpp |
| android/emulation/control/adb/AdbShellStream.cpp |
| android/emulation/control/AgentLogger.cpp |
| android/emulation/control/AndroidAgentFactory.cpp |
| android/emulation/control/ApkInstaller.cpp |
| android/emulation/control/EmulatorAdvertisement.cpp |
| android/emulation/control/FilePusher.cpp |
| android/emulation/control/GooglePlayServices.cpp |
| android/emulation/control/LineConsumer.cpp |
| android/emulation/control/NopRtcBridge.cpp |
| android/emulation/control/ServiceUtils.cpp |
| android/emulation/CpuAccelerator.cpp |
| android/emulation/CrossSessionSocket.cpp |
| android/emulation/DmaMap.cpp |
| android/emulation/goldfish_sync.cpp |
| android/emulation/GoldfishDma.cpp |
| android/emulation/GoldfishSyncCommandQueue.cpp |
| android/emulation/H264NaluParser.cpp |
| android/emulation/H264PingInfoParser.cpp |
| android/emulation/hostdevices/HostAddressSpace.cpp |
| android/emulation/hostdevices/HostGoldfishPipe.cpp |
| android/emulation/HostmemIdMapping.cpp |
| android/emulation/LogcatPipe.cpp |
| android/emulation/MediaFfmpegVideoHelper.cpp |
| android/emulation/MediaH264Decoder.cpp |
| android/emulation/MediaH264DecoderDefault.cpp |
| android/emulation/MediaH264DecoderFfmpeg.cpp |
| android/emulation/MediaH264DecoderGeneric.cpp |
| android/emulation/MediaHostRenderer.cpp |
| android/emulation/MediaSnapshotHelper.cpp |
| android/emulation/MediaSnapshotState.cpp |
| android/emulation/MediaTexturePool.cpp |
| android/emulation/MediaVideoHelper.cpp |
| android/emulation/MediaVpxDecoder.cpp |
| android/emulation/MediaVpxDecoderGeneric.cpp |
| android/emulation/MediaVpxVideoHelper.cpp |
| android/emulation/MultiDisplay.cpp |
| android/emulation/MultiDisplayPipe.cpp |
| android/emulation/nand_limits.c |
| android/emulation/ParameterList.cpp |
| android/emulation/qemud/android_qemud_client.cpp |
| android/emulation/qemud/android_qemud_multiplexer.cpp |
| android/emulation/qemud/android_qemud_serial.cpp |
| android/emulation/qemud/android_qemud_service.cpp |
| android/emulation/qemud/android_qemud_sink.cpp |
| android/emulation/RefcountPipe.cpp |
| android/emulation/serial_line.cpp |
| android/emulation/SerialLine.cpp |
| android/emulation/SetupParameters.cpp |
| android/emulation/testing/TestVmLock.cpp |
| android/emulation/VmLock.cpp |
| android/emulation/VpxFrameParser.cpp |
| android/emulation/VpxPingInfoParser.cpp |
| android/error-messages.cpp |
| android/featurecontrol/feature_control.cpp |
| android/featurecontrol/FeatureControl.cpp |
| android/featurecontrol/FeatureControlImpl.cpp |
| android/featurecontrol/HWMatching.cpp |
| android/filesystems/ext4_resize.cpp |
| android/filesystems/ext4_utils.cpp |
| android/filesystems/fstab_parser.cpp |
| android/filesystems/internal/PartitionConfigBackend.cpp |
| android/filesystems/partition_config.cpp |
| android/filesystems/partition_types.cpp |
| android/filesystems/ramdisk_extractor.cpp |
| android/framebuffer.c |
| android/gps.c |
| android/gps/GpxParser.cpp |
| android/gps/KmlParser.cpp |
| android/gpu_frame.cpp |
| android/help.c |
| android/HostHwInfo.cpp |
| android/hw-control.c |
| android/hw-events.c |
| android/hw-fingerprint.c |
| android/hw-kmsg.c |
| android/hw-lcd.c |
| android/hw-qemud.cpp |
| android/jdwp/JdwpProxy.cpp |
| android/jpeg-compress.c |
| android/kernel/kernel_utils.cpp |
| android/loadpng.c |
| android/location/MapsKey.cpp |
| android/location/MapsKeyFileParser.cpp |
| android/location/Point.cpp |
| android/location/Route.cpp |
| android/location/StudioMapsKey.cpp |
| android/main-emugl.cpp |
| android/main-help.cpp |
| android/main-kernel-parameters.cpp |
| android/metrics/AdbLivenessChecker.cpp |
| android/metrics/AsyncMetricsReporter.cpp |
| android/metrics/CrashMetricsReporting.cpp |
| android/metrics/FileMetricsWriter.cpp |
| android/metrics/metrics.cpp |
| android/metrics/MetricsPaths.cpp |
| android/metrics/MetricsReporter.cpp |
| android/metrics/MetricsWriter.cpp |
| android/metrics/NullMetricsReporter.cpp |
| android/metrics/NullMetricsWriter.cpp |
| android/metrics/Percentiles.cpp |
| android/metrics/PerfStatReporter.cpp |
| android/metrics/PeriodicReporter.cpp |
| android/metrics/PlaystoreMetricsWriter.cpp |
| android/metrics/StudioConfig.cpp |
| android/metrics/SyncMetricsReporter.cpp |
| android/metrics/TextMetricsWriter.cpp |
| android/metrics/UiEventTracker.cpp |
| android/multi-instance.cpp |
| android/multitouch-port.c |
| android/multitouch-screen.c |
| android/network/constants.c |
| android/network/control.cpp |
| android/network/globals.c |
| android/network/NetworkPipe.cpp |
| android/network/wifi.cpp |
| android/network/WifiForwardClient.cpp |
| android/network/WifiForwardPeer.cpp |
| android/network/WifiForwardPipe.cpp |
| android/network/WifiForwardServer.cpp |
| android/opengl/emugl_config.cpp |
| android/opengl/EmuglBackendList.cpp |
| android/opengl/EmuglBackendScanner.cpp |
| android/opengl/GLProcessPipe.cpp |
| android/opengl/GpuFrameBridge.cpp |
| android/opengl/gpuinfo.cpp |
| android/opengl/logger.cpp |
| android/opengl/OpenglEsPipe.cpp |
| android/opengles.cpp |
| android/openssl-support.cpp |
| android/process_setup.cpp |
| android/protobuf/DelimitedSerialization.cpp |
| android/protobuf/LoadSave.cpp |
| android/protobuf/ProtobufLogging.cpp |
| android/proxy/proxy_common.c |
| android/proxy/proxy_http.c |
| android/proxy/proxy_http_connector.c |
| android/proxy/proxy_http_rewriter.c |
| android/proxy/proxy_setup.cpp |
| android/proxy/ProxyUtils.cpp |
| android/qemu-tcpdump.c |
| android/qt/qt_path.cpp |
| android/qt/qt_setup.cpp |
| android/resource.c |
| android/sdk-controller-socket.c |
| android/sensor_mock/SensorMockUtils.cpp |
| android/sensor_replay/sensor_session_playback.cpp |
| android/session_phase_reporter.cpp |
| android/shaper.c |
| android/snaphost-android.c |
| android/snapshot.c |
| android/snapshot/common.cpp |
| android/snapshot/Compressor.cpp |
| android/snapshot/Decompressor.cpp |
| android/snapshot/GapTracker.cpp |
| android/snapshot/Hierarchy.cpp |
| android/snapshot/IncrementalStats.cpp |
| android/snapshot/interface.cpp |
| android/snapshot/Loader.cpp |
| android/snapshot/MemoryWatch_common.cpp |
| android/snapshot/PathUtils.cpp |
| android/snapshot/Quickboot.cpp |
| android/snapshot/RamLoader.cpp |
| android/snapshot/RamSaver.cpp |
| android/snapshot/RamSnapshotTesting.cpp |
| android/snapshot/Saver.cpp |
| android/snapshot/Snapshot.cpp |
| android/snapshot/Snapshotter.cpp |
| android/snapshot/TextureLoader.cpp |
| android/snapshot/TextureSaver.cpp |
| android/telephony/debug.c |
| android/telephony/gsm.c |
| android/telephony/MeterService.cpp |
| android/telephony/modem.c |
| android/telephony/modem_driver.c |
| android/telephony/phone_number.cpp |
| android/telephony/remote_call.c |
| android/telephony/sim_card.c |
| android/telephony/SimAccessRules.cpp |
| android/telephony/sms.c |
| android/telephony/sysdeps.c |
| android/telephony/TagLengthValue.cpp |
| android/uncompress.cpp |
| android/update-check/UpdateChecker.cpp |
| android/update-check/VersionExtractor.cpp |
| android/user-config.cpp |
| android/utils/aconfig-file.c |
| android/utils/assert.c |
| android/utils/async.cpp |
| android/utils/cbuffer.c |
| android/utils/dll.c |
| android/utils/dns.cpp |
| android/utils/exec.cpp |
| android/utils/file_data.c |
| android/utils/filelock.cpp |
| android/utils/format.cpp |
| android/utils/host_bitness.cpp |
| android/utils/http_utils.cpp |
| android/utils/ini.cpp |
| android/utils/ini.cpp |
| android/utils/intmap.c |
| android/utils/iolooper.cpp |
| android/utils/ipaddr.cpp |
| android/utils/lineinput.c |
| android/utils/lock.cpp |
| android/utils/mapfile.c |
| android/utils/property_file.c |
| android/utils/property_file.c |
| android/utils/Random.cpp |
| android/utils/reflist.c |
| android/utils/refset.c |
| android/utils/system_wrapper.cpp |
| android/utils/timezone.cpp |
| android/utils/uri.cpp |
| android/utils/utf8_utils.cpp |
| android/utils/vector.c |
| android/verified-boot/load_config.cpp |
| android/wear-agent/android_wear_agent.cpp |
| android/wear-agent/PairUpWearPhone.cpp |
| android/wear-agent/WearAgent.cpp) |
| |
| # These are the set of sources for which we know we have dependencies. You can |
| # use this as a starting point to figure out what can move to a seperate library |
| set(android_emu_dependent_src |
| # cmake-format: sortable |
| android/automation/AutomationController.cpp |
| android/automation/AutomationEventSink.cpp |
| android/camera/camera-common.cpp |
| android/camera/camera-format-converters.c |
| android/camera/camera-list.cpp |
| android/camera/camera-metrics.cpp |
| android/camera/camera-service.cpp |
| android/camera/camera-videoplayback-default-renderer.cpp |
| android/camera/camera-videoplayback-render-multiplexer.cpp |
| android/camera/camera-videoplayback-video-renderer.cpp |
| android/camera/camera-videoplayback.cpp |
| android/camera/camera-virtualscene-utils.cpp |
| android/camera/camera-virtualscene.cpp |
| android/console.cpp |
| android/emulation/control/ScreenCapturer.cpp |
| android/emulation/FakeRotatingCameraSensor.cpp |
| android/emulation/HostMemoryService.cpp |
| android/emulation/Keymaster3.cpp |
| android/emulation/QemuMiscPipe.cpp |
| android/http_proxy.c |
| android/hw-sensors.cpp |
| android/main-common.c |
| android/main-qemu-parameters.cpp |
| android/offworld/OffworldPipe.cpp |
| android/physics/AmbientEnvironment.cpp |
| android/physics/FoldableModel.cpp |
| android/physics/InertialModel.cpp |
| android/physics/PhysicalModel.cpp |
| android/qemu-setup.cpp |
| android/sensors-port.c |
| android/snapshot/Icebox.cpp |
| android/snapshot/SnapshotAPI.cpp |
| android/test/checkboot.cpp |
| android/videoinjection/VideoInjectionController.cpp |
| android/videoplayback/VideoplaybackRenderTarget.cpp |
| android/virtualscene/MeshSceneObject.cpp |
| android/virtualscene/PosterInfo.cpp |
| android/virtualscene/PosterSceneObject.cpp |
| android/virtualscene/Renderer.cpp |
| android/virtualscene/RenderTarget.cpp |
| android/virtualscene/Scene.cpp |
| android/virtualscene/SceneCamera.cpp |
| android/virtualscene/SceneObject.cpp |
| android/virtualscene/TextureUtils.cpp |
| android/virtualscene/VirtualSceneManager.cpp |
| android/virtualscene/WASDInputHandler.cpp) |
| |
| # The standard archive has all the sources, including those that have external |
| # dependencies that we have not properly declared yet. |
| # TODO(jansene): Properly clean up the mutual dependencies and make sure they |
| # are not circular |
| list(APPEND android-emu_src ${android-emu-common} ${android_emu_dependent_src}) |
| |
| if(NOT OPTION_GFXSTREAM_BACKEND) |
| list(APPEND android-emu_src "android/network/Ieee80211Frame.cpp") |
| endif() |
| |
| android_add_library( |
| TARGET android-emu |
| LICENSE Apache-2.0 |
| SRC ${android-emu_src} |
| WINDOWS # cmake-format: sortable |
| android/camera/camera-capture-windows.cpp |
| android/crashreport/CrashReporter_windows.cpp |
| android/emulation/dynlink_cuda.cpp |
| android/emulation/dynlink_nvcuvid.cpp |
| android/emulation/MediaCudaDriverHelper.cpp |
| android/emulation/MediaCudaUtils.cpp |
| android/emulation/MediaCudaVideoHelper.cpp |
| android/emulation/MediaH264DecoderCuvid.cpp |
| android/opengl/NativeGpuInfo_windows.cpp |
| android/snapshot/MemoryWatch_windows.cpp |
| android/windows_installer.cpp |
| LINUX # cmake-format: sortable |
| android/camera/camera-capture-linux.c |
| android/crashreport/CrashReporter_linux.cpp |
| android/emulation/dynlink_cuda.cpp |
| android/emulation/dynlink_nvcuvid.cpp |
| android/emulation/MediaCudaDriverHelper.cpp |
| android/emulation/MediaCudaUtils.cpp |
| android/emulation/MediaCudaVideoHelper.cpp |
| android/emulation/MediaH264DecoderCuvid.cpp |
| android/opengl/NativeGpuInfo_linux.cpp |
| android/snapshot/MemoryWatch_linux.cpp |
| DARWIN # cmake-format: sortable |
| android/camera/camera-capture-mac.m |
| android/crashreport/CrashReporter_darwin.cpp |
| android/emulation/MediaH264DecoderVideoToolBox.cpp |
| android/emulation/MediaH264DecoderVideoToolBoxProxy.cpp |
| android/opengl/macTouchOpenGL.m |
| android/opengl/NativeGpuInfo_darwin.cpp |
| android/snapshot/MacSegvHandler.cpp |
| android/snapshot/MemoryWatch_darwin.cpp) |
| |
| # Note that all these dependencies will propagate to whoever relies on android- |
| # emu It will also setup the proper include directories, so that android-emu can |
| # find all the headers needed for using the library defined below. We ideally |
| # would like to keep this list small. |
| target_link_libraries( |
| android-emu |
| PUBLIC FFMPEG::FFMPEG |
| VPX::VPX |
| emulator-libext4_utils |
| android-emu-base |
| emulator-libsparse |
| emulator-libselinux |
| emulator-libjpeg |
| emulator-libyuv |
| emulator-libwebp |
| emulator-tinyobjloader |
| emulator-libkeymaster3 |
| emulator-murmurhash |
| emulator-tinyepoxy |
| emulator-libyuv |
| picosha2 |
| # Protobuf dependencies |
| metrics |
| featurecontrol |
| crashreport |
| location |
| emulation |
| snapshot |
| telephony |
| verified-boot |
| automation |
| offworld |
| # Prebuilt libraries |
| android-net |
| android-emu-base |
| breakpad_client |
| curl |
| ssl |
| crypto |
| LibXml2::LibXml2 |
| png |
| lz4 |
| zlib |
| android-hw-config) |
| |
| if(NOT OPTION_GFXSTREAM_BACKEND) |
| target_link_libraries(android-emu PRIVATE hostapd modem_simulator_lib) |
| target_link_libraries(android-emu PUBLIC modem_simulator_lib) |
| endif() |
| |
| # Here are the windows library and link dependencies. They are public and will |
| # propagate onwards to others that depend on android-emu |
| android_target_link_libraries( |
| android-emu windows |
| PUBLIC emulator-libmman-win32 |
| d3d9::d3d9 |
| mfuuid::mfuuid |
| # For CoTaskMemFree used in camera-capture-windows.cpp |
| ole32::ole32 |
| # For GetPerformanceInfo in CrashService_windows.cpp |
| psapi::psapi |
| # Winsock functions |
| ws2_32::ws2_32 |
| # GetNetworkParams() for android/utils/dns.c |
| iphlpapi::iphlpapi) |
| |
| # These are the libs needed for android-emu on linux. |
| android_target_link_libraries(android-emu linux-x86_64 PUBLIC -lrt -lc++) |
| |
| # Here are the darwin library and link dependencies. They are public and will |
| # propagate onwards to others that depend on android-emu. You should really only |
| # add things that are crucial for this library to link |
| android_target_link_libraries( |
| android-emu darwin-x86_64 |
| PUBLIC "-framework AppKit" |
| "-framework AVFoundation" # For camera-capture-mac.m |
| "-framework Accelerate" # Of course, our camera needs it! |
| "-framework CoreMedia" # Also for the camera. |
| "-framework CoreVideo" # Also for the camera. |
| "-framework IOKit" |
| "-framework VideoToolbox" # For HW codec acceleration on mac |
| "-framework VideoDecodeAcceleration" # For HW codec acceleration on mac |
| "-weak_framework Hypervisor" |
| "-framework OpenGL") |
| |
| android_target_link_libraries( |
| android-emu darwin-aarch64 |
| PUBLIC "-framework AppKit" |
| "-framework AVFoundation" # For camera-capture-mac.m |
| "-framework Accelerate" # Of course, our camera needs it! |
| "-framework CoreMedia" # Also for the camera. |
| "-framework CoreVideo" # Also for the camera. |
| "-framework IOKit" |
| "-framework VideoToolbox" # For HW codec acceleration on mac |
| "-framework VideoDecodeAcceleration" # For HW codec acceleration on mac |
| "-weak_framework Hypervisor" |
| "-framework OpenGL") |
| |
| target_include_directories( |
| android-emu |
| PUBLIC |
| # TODO(jansene): The next 2 imply a link dependendency on emugl libs, which |
| # we have not yet made explicit |
| ${ANDROID_QEMU2_TOP_DIR}/android/android-emugl/host/include |
| ${ANDROID_QEMU2_TOP_DIR}/android/android-emugl/shared |
| # TODO(jansene): We actually have a hard dependency on qemu-glue as there |
| # are a lot of externs that are actually defined in qemu2-glue. this has to |
| # be sorted out, |
| ${ANDROID_QEMU2_TOP_DIR}/android-qemu2-glue/config/${ANDROID_TARGET_TAG} |
| # If you use our library, you get access to our headers. |
| ${CMAKE_CURRENT_SOURCE_DIR} |
| ${DARWINN_INCLUDE_DIRS}) |
| |
| android_target_compile_options( |
| android-emu Clang PRIVATE -Wno-invalid-constexpr -Wno-return-type-c-linkage |
| -fvisibility=default) |
| |
| android_target_compile_options( |
| android-emu Clang |
| PUBLIC -Wno-extern-c-compat # Needed for serial_line.h |
| -Wno-return-type-c-linkage # android_getOpenglesRenderer |
| ) |
| |
| android_target_compile_options( |
| android-emu linux-x86_64 PRIVATE -idirafter |
| ${ANDROID_QEMU2_TOP_DIR}/linux-headers) |
| android_target_compile_options( |
| android-emu darwin-x86_64 |
| PRIVATE -Wno-objc-method-access -Wno-missing-selector-name -Wno-receiver-expr |
| -Wno-incomplete-implementation -Wno-incompatible-pointer-types |
| -Wno-deprecated-declarations) |
| |
| android_target_compile_options( |
| android-emu windows_msvc-x86_64 |
| PRIVATE -Wno-unused-private-field -Wno-reorder -Wno-missing-braces |
| -Wno-pessimizing-move -Wno-unused-lambda-capture) |
| |
| android_target_compile_definitions( |
| android-emu darwin-x86_64 PRIVATE "-D_DARWIN_C_SOURCE=1" "-Dftello64=ftell" |
| "-Dfseeko64=fseek") |
| android_target_compile_definitions( |
| android-emu darwin-aarch64 PRIVATE "-D_DARWIN_C_SOURCE=1" "-Dftello64=ftell" |
| "-Dfseeko64=fseek") |
| |
| target_compile_definitions( |
| android-emu |
| PRIVATE "-DCRASHUPLOAD=${OPTION_CRASHUPLOAD}" |
| "-DANDROID_SDK_TOOLS_REVISION=${OPTION_SDK_TOOLS_REVISION}" |
| "-DANDROID_SDK_TOOLS_BUILD_NUMBER=${OPTION_SDK_TOOLS_BUILD_NUMBER}") |
| |
| if(WEBRTC) |
| # target_compile_definitions(android-emu PUBLIC -DANDROID_WEBRTC) |
| endif() |
| |
| if(OPTION_GFXSTREAM_BACKEND) |
| target_compile_definitions(android-emu PUBLIC -DAEMU_GFXSTREAM_BACKEND=1) |
| endif() |
| |
| # Boo, we need the make_ext4fs executable |
| add_dependencies(android-emu emulator_make_ext4fs) |
| |
| set(android-emu-min |
| # cmake-format: sortable |
| android/avd/hw-config.c |
| android/avd/info.c |
| android/avd/util.c |
| android/avd/util_wrapper.cpp |
| android/base/async/CallbackRegistry.cpp |
| android/cmdline-option.cpp |
| android/emulation/address_space_device.cpp |
| android/emulation/address_space_graphics.cpp |
| android/emulation/address_space_host_memory_allocator.cpp |
| android/emulation/address_space_shared_slots_host_memory_allocator.cpp |
| android/emulation/android_pipe_host.cpp |
| android/emulation/AndroidAsyncMessagePipe.cpp |
| android/emulation/AndroidMessagePipe.cpp |
| android/emulation/AndroidPipe.cpp |
| android/emulation/AudioCaptureEngine.cpp |
| android/emulation/AudioOutputEngine.cpp |
| android/emulation/bufprint_config_dirs.cpp |
| android/emulation/ClipboardPipe.cpp |
| android/emulation/ComponentVersion.cpp |
| android/emulation/ConfigDirs.cpp |
| android/emulation/control/FilePusher.cpp |
| android/emulation/control/LineConsumer.cpp |
| android/emulation/control/NopRtcBridge.cpp |
| android/emulation/DmaMap.cpp |
| android/emulation/goldfish_sync.cpp |
| android/emulation/GoldfishDma.cpp |
| android/emulation/GoldfishSyncCommandQueue.cpp |
| android/emulation/hostdevices/HostAddressSpace.cpp |
| android/emulation/hostdevices/HostGoldfishPipe.cpp |
| android/emulation/HostmemIdMapping.cpp |
| android/emulation/LogcatPipe.cpp |
| android/emulation/nand_limits.c |
| android/emulation/ParameterList.cpp |
| android/emulation/RefcountPipe.cpp |
| android/emulation/serial_line.cpp |
| android/emulation/SerialLine.cpp |
| android/emulation/SetupParameters.cpp |
| android/emulation/testing/TestVmLock.cpp |
| android/emulation/VmLock.cpp |
| android/error-messages.cpp |
| android/featurecontrol/feature_control.cpp |
| android/featurecontrol/FeatureControl.cpp |
| android/featurecontrol/FeatureControlImpl.cpp |
| android/framebuffer.c |
| android/gps.c |
| android/gpu_frame.cpp |
| android/hw-events.c |
| android/hw-kmsg.c |
| android/hw-lcd.c |
| android/kernel/kernel_utils.cpp |
| android/loadpng.c |
| android/opengl/emugl_config.cpp |
| android/opengl/EmuglBackendList.cpp |
| android/opengl/EmuglBackendScanner.cpp |
| android/opengl/GLProcessPipe.cpp |
| android/opengl/GpuFrameBridge.cpp |
| android/opengl/gpuinfo.cpp |
| android/opengl/logger.cpp |
| android/opengl/OpenglEsPipe.cpp |
| android/opengles.cpp |
| android/protobuf/LoadSave.cpp |
| android/snaphost-android.c |
| android/snapshot.c |
| android/snapshot/common.cpp |
| android/snapshot/Compressor.cpp |
| android/snapshot/Decompressor.cpp |
| android/snapshot/GapTracker.cpp |
| android/snapshot/Hierarchy.cpp |
| android/snapshot/IncrementalStats.cpp |
| android/snapshot/interface.cpp |
| android/snapshot/Loader.cpp |
| android/snapshot/MemoryWatch_common.cpp |
| android/snapshot/PathUtils.cpp |
| android/snapshot/Quickboot.cpp |
| android/snapshot/RamLoader.cpp |
| android/snapshot/RamSaver.cpp |
| android/snapshot/RamSnapshotTesting.cpp |
| android/snapshot/Saver.cpp |
| android/snapshot/Snapshot.cpp |
| android/snapshot/Snapshotter.cpp |
| android/snapshot/TextureLoader.cpp |
| android/snapshot/TextureSaver.cpp |
| android/uncompress.cpp |
| android/user-config.cpp |
| android/utils/dll.c |
| android/utils/file_data.c |
| android/utils/ini.cpp |
| android/utils/property_file.c |
| android/utils/Random.cpp) |
| |
| # Shared version of the library. Note that this only has the set of common |
| # sources, otherwise you will get a lot of linker errors. |
| set(android-emu-shared_src |
| # cmake-format: sortable |
| ${android-emu-min} stubs/gfxstream-stubs.cpp stubs/stubs.cpp) |
| # The dependent target os specific sources, they are pretty much the same as |
| # above, excluding camera support, because that brings in a whole slew of |
| # dependencies |
| android_add_library( |
| TARGET android-emu-shared |
| SHARED |
| LICENSE Apache-2.0 |
| SRC # cmake-format: sortable |
| ${android-emu-shared_src} |
| WINDOWS # cmake-format: sortable |
| android/emulation/dynlink_cuda.cpp |
| android/emulation/dynlink_nvcuvid.cpp |
| android/opengl/NativeGpuInfo_windows.cpp |
| android/snapshot/MemoryWatch_windows.cpp |
| android/windows_installer.cpp |
| LINUX # cmake-format: sortable |
| android/emulation/dynlink_cuda.cpp android/emulation/dynlink_nvcuvid.cpp |
| android/opengl/NativeGpuInfo_linux.cpp |
| android/snapshot/MemoryWatch_linux.cpp |
| DARWIN # cmake-format: sortable |
| android/opengl/macTouchOpenGL.m |
| android/opengl/NativeGpuInfo_darwin.cpp |
| android/snapshot/MacSegvHandler.cpp |
| android/snapshot/MemoryWatch_darwin.cpp) |
| # Note that these are basically the same as android-emu-shared. We should clean |
| # this up |
| target_link_libraries( |
| android-emu-shared |
| PUBLIC android-emu-base |
| emulator-murmurhash |
| # Protobuf dependencies |
| snapshot |
| # Prebuilt libraries |
| png |
| lz4 |
| zlib |
| android-hw-config) |
| # Here are the windows library and link dependencies. They are public and will |
| # propagate onwards to others that depend on android-emu-shared |
| android_target_link_libraries( |
| android-emu-shared windows |
| PRIVATE emulator-libmman-win32 |
| d3d9::d3d9 |
| # IID_IMFSourceReaderCallback |
| mfuuid::mfuuid |
| # For CoTaskMemFree used in camera-capture-windows.cpp |
| ole32::ole32 |
| # For GetPerformanceInfo in CrashService_windows.cpp |
| psapi::psapi |
| # Winsock functions |
| ws2_32::ws2_32 |
| # GetNetworkParams() for android/utils/dns.c |
| iphlpapi::iphlpapi) |
| # These are the libs needed for android-emu-shared on linux. |
| android_target_link_libraries(android-emu-shared linux-x86_64 PRIVATE -lrt) |
| # Here are the darwin library and link dependencies. They are public and will |
| # propagate onwards to others that depend on android-emu-shared. You should |
| # really only add things that are crucial for this library to link If you don't |
| # you might see bizarre errors. (Add opengl as a link dependency, you will have |
| # fun) |
| android_target_link_libraries( |
| android-emu-shared darwin-x86_64 |
| PRIVATE "-framework AppKit" |
| "-framework ApplicationServices" # To control icon |
| "-framework AVFoundation" # For camera-capture-mac.m |
| "-framework Accelerate" # Of course, our camera needs it! |
| "-framework CoreMedia" # Also for the camera. |
| "-framework CoreVideo" # Also for the camera. |
| "-framework VideoToolbox" # For HW codec acceleration on mac |
| "-framework VideoDecodeAcceleration" # For HW codec acceleration on |
| # mac |
| "-framework OpenGL" |
| "-framework IOKit") |
| |
| android_target_link_libraries( |
| android-emu-shared darwin-aarch64 |
| PRIVATE "-framework AppKit" |
| "-framework ApplicationServices" # To control icon |
| "-framework AVFoundation" # For camera-capture-mac.m |
| "-framework Accelerate" # Of course, our camera needs it! |
| "-framework CoreMedia" # Also for the camera. |
| "-framework CoreVideo" # Also for the camera. |
| "-framework VideoToolbox" # For HW codec acceleration on mac |
| "-framework VideoDecodeAcceleration" # For HW codec acceleration on |
| # mac |
| "-framework OpenGL" |
| "-framework IOKit") |
| target_include_directories( |
| android-emu-shared |
| PUBLIC |
| # TODO(jansene): The next 2 imply a link dependendency on emugl libs, which |
| # we have not yet made explicit |
| ${ANDROID_QEMU2_TOP_DIR}/android/android-emugl/host/include |
| ${ANDROID_QEMU2_TOP_DIR}/android/android-emugl/shared |
| # TODO(jansene): We actually have a hard dependency on qemu-glue as there |
| # are a lot of externs that are actually defined in qemu2-glue. this has to |
| # be sorted out, |
| ${ANDROID_QEMU2_TOP_DIR}/android-qemu2-glue/config/${ANDROID_TARGET_TAG} |
| # If you use our library, you get access to our headers. |
| ${CMAKE_CURRENT_SOURCE_DIR} |
| ${CMAKE_CURRENT_BINARY_DIR}) |
| android_target_compile_options( |
| android-emu-shared Clang PRIVATE -Wno-extern-c-compat -Wno-invalid-constexpr |
| -fvisibility=default) |
| android_target_compile_options( |
| android-emu-shared Clang PUBLIC -Wno-return-type-c-linkage) # android_getOp |
| # enG lesRenderer |
| android_target_compile_options( |
| android-emu-shared linux-x86_64 |
| PRIVATE -idirafter ${ANDROID_QEMU2_TOP_DIR}/linux-headers) |
| android_target_compile_options( |
| android-emu-shared darwin-x86_64 |
| PRIVATE -Wno-error -Wno-objc-method-access -Wno-receiver-expr |
| -Wno-incomplete-implementation -Wno-missing-selector-name |
| -Wno-incompatible-pointer-types) |
| android_target_compile_options( |
| android-emu-shared windows_msvc-x86_64 |
| PRIVATE -Wno-unused-private-field -Wno-reorder -Wno-unused-lambda-capture) |
| # Definitions needed to compile our deps as static |
| target_compile_definitions(android-emu-shared PUBLIC ${CURL_DEFINITIONS} |
| ${LIBXML2_DEFINITIONS}) |
| android_target_compile_definitions( |
| android-emu-shared darwin-x86_64 PRIVATE "-D_DARWIN_C_SOURCE=1" |
| "-Dftello64=ftell" "-Dfseeko64=fseek") |
| android_target_compile_definitions( |
| android-emu-shared darwin-aarch64 PRIVATE "-D_DARWIN_C_SOURCE=1" |
| "-Dftello64=ftell" "-Dfseeko64=fseek") |
| target_compile_definitions( |
| android-emu-shared |
| PRIVATE "-DCRASHUPLOAD=${OPTION_CRASHUPLOAD}" |
| "-DANDROID_SDK_TOOLS_REVISION=${OPTION_SDK_TOOLS_REVISION}" |
| "-DANDROID_SDK_TOOLS_BUILD_NUMBER=${OPTION_SDK_TOOLS_BUILD_NUMBER}") |
| if(WEBRTC) |
| target_compile_definitions(android-emu-shared PUBLIC -DANDROID_WEBRTC) |
| endif() |
| |
| target_compile_definitions(android-emu-shared PUBLIC -DAEMU_MIN=1) |
| |
| if(OPTION_GFXSTREAM_BACKEND) |
| target_compile_definitions(android-emu-shared |
| PUBLIC -DAEMU_GFXSTREAM_BACKEND=1) |
| android_install_shared(android-emu-shared) |
| endif() |
| |
| # This library contains a main entry point that injects fake console agents into |
| # your unit tests. you usually want to link against this library if you need to |
| # make any calls to getConsoleAgents() |
| android_add_library( |
| TARGET android-emu-test-launcher |
| LICENSE Apache-2.0 |
| SRC # cmake-format: sortable |
| android/emulation/testing/MockAndroidAgentFactory.cpp |
| android/emulation/testing/MockAndroidEmulatorWindowAgent.cpp |
| android/emulation/testing/MockAndroidMultiDisplayAgent.cpp |
| android/emulation/testing/MockAndroidVmOperations.cpp) |
| android_target_compile_options(android-emu-test-launcher Clang |
| PRIVATE -O0 -Wno-invalid-constexpr) |
| target_link_libraries(android-emu-test-launcher PRIVATE android-emu |
| PUBLIC gmock) |
| |
| if(NOT LINUX_AARCH64) |
| set(android-emu_unittests_common |
| # cmake-format: sortable |
| android/automation/AutomationController_unittest.cpp |
| android/automation/AutomationEventSink_unittest.cpp |
| android/avd/util_unittest.cpp |
| android/avd/util_wrapper_unittest.cpp |
| # bug: 153381599: disabled until flakiness is addressed |
| android/base/async/CallbackRegistry_unittest.cpp |
| android/base/IOVector_unittest.cpp |
| android/base/LayoutResolver_unittest.cpp |
| android/base/testing/ProtobufMatchers.cpp |
| android/camera/CameraFormatConverters_unittest.cpp |
| android/cmdline-option_unittest.cpp |
| android/CommonReportedInfo_unittest.cpp |
| android/console_auth_unittest.cpp |
| android/console_unittest.cpp |
| android/emulation/AdbDebugPipe_unittest.cpp |
| android/emulation/AdbGuestPipe_unittest.cpp |
| android/emulation/AdbHostListener_unittest.cpp |
| android/emulation/AdbHostServer_unittest.cpp |
| android/emulation/AdbHub_unittest.cpp |
| android/emulation/AdbMessageSniffer_unittest.cpp |
| android/emulation/address_space_graphics_unittests.cpp |
| android/emulation/address_space_host_memory_allocator_unittests.cpp |
| android/emulation/address_space_shared_slots_host_memory_allocator_unittests.cpp |
| android/emulation/android_pipe_pingpong_unittest.cpp |
| android/emulation/android_pipe_zero_unittest.cpp |
| android/emulation/AndroidAsyncMessagePipe_unittest.cpp |
| android/emulation/bufprint_config_dirs_unittest.cpp |
| android/emulation/ComponentVersion_unittest.cpp |
| android/emulation/ConfigDirs_unittest.cpp |
| android/emulation/control/adb/AdbConnection_unittest.cpp |
| android/emulation/control/adb/AdbInterface_unittest.cpp |
| android/emulation/control/adb/adbkey_unittest.cpp |
| android/emulation/control/ApkInstaller_unittest.cpp |
| android/emulation/control/EmulatorAdvertisement_unittest.cpp |
| android/emulation/control/FilePusher_unittest.cpp |
| android/emulation/control/GooglePlayServices_unittest.cpp |
| android/emulation/control/LineConsumer_unittest.cpp |
| android/emulation/control/ScreenCapturer_unittest.cpp |
| android/emulation/CpuAccelerator_unittest.cpp |
| android/emulation/CrossSessionSocket_unittest.cpp |
| android/emulation/DeviceContextRunner_unittest.cpp |
| android/emulation/DmaMap_unittest.cpp |
| android/emulation/hostdevices/HostAddressSpace_unittest.cpp |
| android/emulation/hostdevices/HostGoldfishPipe_unittest.cpp |
| android/emulation/HostmemIdMapping_unittest.cpp |
| android/emulation/HostMemoryService_unittest.cpp |
| android/emulation/Hypervisor_unittest.cpp |
| android/emulation/ParameterList_unittest.cpp |
| android/emulation/RefcountPipe_unittest.cpp |
| android/emulation/serial_line_unittest.cpp |
| android/emulation/SetupParameters_unittest.cpp |
| android/emulation/testing/TestAndroidPipeDevice.cpp |
| android/emulation/VmLock_unittest.cpp |
| android/error-messages_unittest.cpp |
| android/featurecontrol/FeatureControl_unittest.cpp |
| android/featurecontrol/HWMatching_unittest.cpp |
| android/featurecontrol/testing/FeatureControlTest.cpp |
| android/filesystems/ext4_resize_unittest.cpp |
| android/filesystems/ext4_utils_unittest.cpp |
| android/filesystems/fstab_parser_unittest.cpp |
| android/filesystems/partition_config_unittest.cpp |
| android/filesystems/partition_types_unittest.cpp |
| android/filesystems/ramdisk_extractor_unittest.cpp |
| android/filesystems/testing/TestSupport.cpp |
| android/gps/GpxParser_unittest.cpp |
| android/gps/KmlParser_unittest.cpp |
| android/hw-lcd_unittest.cpp |
| android/jdwp/Jdwp_unittest.cpp |
| android/jdwp/JdwpProxy_unittest.cpp |
| android/kernel/kernel_utils_unittest.cpp |
| android/location/MapsKey_unittest.cpp |
| android/location/MapsKeyFileParser_unittest.cpp |
| android/location/Point_unittest.cpp |
| android/location/Route_unittest.cpp |
| android/network/constants_unittest.cpp |
| android/network/control_unittest.cpp |
| android/network/MacAddress_unittest.cpp |
| android/offworld/OffworldPipe_unittest.cpp |
| android/opengl/emugl_config_unittest.cpp |
| android/opengl/EmuglBackendList_unittest.cpp |
| android/opengl/EmuglBackendScanner_unittest.cpp |
| android/opengl/GpuFrameBridge_unittest.cpp |
| android/opengl/gpuinfo_unittest.cpp |
| android/physics/AmbientEnvironment_unittest.cpp |
| android/physics/InertialModel_unittest.cpp |
| android/physics/PhysicalModel_unittest.cpp |
| android/proxy/proxy_common_unittest.cpp |
| android/proxy/ProxyUtils_unittest.cpp |
| android/qt/qt_path_unittest.cpp |
| android/qt/qt_setup_unittest.cpp |
| android/sensor_replay/sensor_session_playback_unittest.cpp |
| android/snapshot/RamLoader_unittest.cpp |
| android/snapshot/RamSaver_unittest.cpp |
| android/snapshot/RamSnapshot_unittest.cpp |
| android/snapshot/Snapshot_unittest.cpp |
| android/telephony/gsm_unittest.cpp |
| android/telephony/modem_unittest.cpp |
| android/telephony/SimAccessRules_unittest.cpp |
| android/telephony/sms_unittest.cpp |
| android/telephony/TagLengthValue_unittest.cpp |
| android/update-check/UpdateChecker_unittest.cpp |
| android/update-check/VersionExtractor_unittest.cpp |
| android/utils/aconfig-file_unittest.cpp |
| android/utils/dns_unittest.cpp |
| android/utils/file_data_unittest.cpp |
| android/utils/filelock_unittest.cpp |
| android/utils/format_unittest.cpp |
| android/utils/host_bitness_unittest.cpp |
| android/utils/path_unittest.cpp |
| android/utils/property_file_unittest.cpp |
| android/utils/Random_unittest.cpp |
| android/utils/sockets_unittest.cpp |
| android/verified-boot/load_config_unittest.cpp |
| android/videoinjection/VideoInjectionController_unittest.cpp |
| android/virtualscene/TextureUtils_unittest.cpp |
| android/wear-agent/PairUpWearPhone_unittest.cpp |
| android/wear-agent/testing/WearAgentTestUtils.cpp |
| android/wear-agent/WearAgent_unittest.cpp) |
| |
| if(NOT OPTION_GFXSTREAM_BACKEND) |
| list(APPEND android-emu_unittests_common |
| "android/network/Ieee80211Frame_unittest.cpp") |
| list(APPEND android-emu_unittests_common |
| "android/network/WifiForwardPeer_unittest.cpp") |
| endif() |
| |
| # And declare the test |
| android_add_test( |
| TARGET android-emu_unittests |
| SRC # cmake-format: sortable |
| ${android-emu_unittests_common} |
| WINDOWS # cmake-format: sortable |
| android/utils/win32_cmdline_quote_unittest.cpp |
| android/windows_installer_unittest.cpp |
| DARWIN # cmake-format: sortable |
| android/emulation/control/adb/AdbShellStream_unittest.cpp |
| android/emulation/nand_limits_unittest.cpp |
| LINUX # cmake-format: sortable |
| android/emulation/control/adb/AdbShellStream_unittest.cpp |
| android/emulation/nand_limits_unittest.cpp) |
| # Setup the targets compile config etc.. |
| android_target_compile_options( |
| android-emu_unittests Clang PRIVATE -O0 -Wno-invalid-constexpr |
| -Wno-string-plus-int) |
| target_include_directories(android-emu_unittests |
| PRIVATE ../android-emugl/host/include/) |
| |
| target_compile_definitions(android-emu_unittests PRIVATE -DGTEST_HAS_RTTI=0) |
| |
| # Settings needed for darwin |
| android_target_compile_definitions( |
| android-emu_unittests darwin-x86_64 PRIVATE "-D_DARWIN_C_SOURCE=1" |
| "-Dftello64=ftell" "-Dfseeko64=fseek") |
| android_target_compile_options(android-emu_unittests darwin-x86_64 |
| PRIVATE "-Wno-deprecated-declarations") |
| android_target_compile_definitions( |
| android-emu_unittests darwin-aarch64 PRIVATE "-D_DARWIN_C_SOURCE=1" |
| "-Dftello64=ftell" "-Dfseeko64=fseek") |
| android_target_compile_options(android-emu_unittests darwin-aarch64 |
| PRIVATE "-Wno-deprecated-declarations") |
| |
| # Dependecies are exported from android-emu. |
| target_link_libraries(android-emu_unittests PRIVATE android-emu |
| android-emu-test-launcher) |
| |
| android_add_executable( |
| NODISTRIBUTE TARGET studio_discovery_tester |
| SRC # cmake-format: sortable |
| android/emulation/control/StudioDiscoveryTester.cpp) |
| target_link_libraries(studio_discovery_tester PRIVATE android-grpc |
| android-emu) |
| add_dependencies(android-emu_unittests studio_discovery_tester) |
| |
| list( |
| APPEND |
| # cmake-format: sortable |
| android-emu-testdata |
| testdata/snapshots/random-ram-100.bin |
| testdata/textureutils/gray_alpha_golden.bmp |
| testdata/textureutils/gray_alpha.png |
| testdata/textureutils/gray_golden.bmp |
| testdata/textureutils/gray.png |
| testdata/textureutils/indexed_alpha_golden.bmp |
| testdata/textureutils/indexed_alpha.png |
| testdata/textureutils/indexed_golden.bmp |
| testdata/textureutils/indexed.png |
| testdata/textureutils/interlaced_golden.bmp |
| testdata/textureutils/interlaced.png |
| testdata/textureutils/jpeg_gray_golden.bmp |
| testdata/textureutils/jpeg_gray.jpg |
| testdata/textureutils/jpeg_gray_progressive_golden.bmp |
| testdata/textureutils/jpeg_gray_progressive.jpg |
| testdata/textureutils/jpeg_rgb24_golden.bmp |
| testdata/textureutils/jpeg_rgb24.jpg |
| testdata/textureutils/jpeg_rgb24_progressive_golden.bmp |
| testdata/textureutils/jpeg_rgb24_progressive.jpg |
| testdata/textureutils/rgb24_31px_golden.bmp |
| testdata/textureutils/rgb24_31px.png |
| testdata/textureutils/rgba32_golden.bmp |
| testdata/textureutils/rgba32.png) |
| |
| prebuilt(VIRTUALSCENE) |
| android_copy_test_files(android-emu_unittests "${android-emu-testdata}" |
| testdata) |
| android_target_dependency(android-emu_unittests all |
| VIRTUAL_SCENE_DEPENDENCIES) |
| android_copy_test_dir(android-emu_unittests test-sdk test-sdk) |
| android_copy_file( |
| android-emu_unittests |
| "${CMAKE_CURRENT_SOURCE_DIR}/android/emulation/CpuAccelerator_unittest.dat" |
| "$<TARGET_FILE_DIR:android-emu_unittests>/android/android-emu/android/emulation/CpuAccelerator_unittest.dat" |
| ) |
| android_copy_file( |
| android-emu_unittests |
| "${CMAKE_CURRENT_SOURCE_DIR}/android/emulation/CpuAccelerator_unittest.dat2" |
| "$<TARGET_FILE_DIR:android-emu_unittests>/android/android-emu/android/emulation/CpuAccelerator_unittest.dat2" |
| ) |
| |
| android_target_dependency(android-emu_unittests all E2FSPROGS_DEPENDENCIES) |
| |
| # Boo! We depend on makeext |
| add_custom_command( |
| TARGET android-emu_unittests POST_BUILD |
| COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:emulator_make_ext4fs> |
| ${CMAKE_CURRENT_BINARY_DIR}) |
| |
| # Unit tests for the protobufs |
| android_add_test( |
| TARGET android-emu-metrics_unittests |
| SRC # cmake-format: sortable |
| android/metrics/StudioConfig_unittest.cpp |
| android/metrics/tests/AsyncMetricsReporter_unittest.cpp |
| android/metrics/tests/FileMetricsWriter_unittest.cpp |
| android/metrics/tests/MetricsReporter_unittest.cpp |
| android/metrics/tests/MockMetricsReporter.cpp |
| android/metrics/tests/MockMetricsWriter.cpp |
| android/metrics/tests/NullMetricsClasses_unittest.cpp |
| android/metrics/tests/Percentiles_unittest.cpp |
| android/metrics/tests/PeriodicReporter_unittest.cpp |
| android/metrics/tests/PlaystoreMetricsWriter_unittest.cpp |
| android/metrics/tests/SyncMetricsReporter_unittest.cpp |
| android/metrics/tests/UiEventTracker_unittest.cpp) |
| |
| target_compile_options(android-emu-metrics_unittests PRIVATE -O0) |
| target_link_libraries(android-emu-metrics_unittests PRIVATE gmock_main |
| android-emu) |
| endif() |