# First include the GoogleTest library module definitions.
include $(LOCAL_PATH)/distrib/googletest/Android.mk

EMULATOR_UNITTESTS_SOURCES := \
  android/avd/util_unittest.cpp \
  android/utils/bufprint_unittest.cpp \
  android/utils/eintr_wrapper_unittest.cpp \
  android/utils/file_data_unittest.cpp \
  android/utils/property_file_unittest.cpp \
  android/utils/win32_cmdline_quote_unittest.cpp \
  android/base/containers/PodVector_unittest.cpp \
  android/base/containers/StringVector_unittest.cpp \
  android/base/EintrWrapper_unittest.cpp \
  android/base/files/PathUtils_unittest.cpp \
  android/base/files/ScopedFd_unittest.cpp \
  android/base/files/ScopedStdioFile_unittest.cpp \
  android/base/Log_unittest.cpp \
  android/base/memory/MallocUsableSize_unittest.cpp \
  android/base/memory/ScopedPtr_unittest.cpp \
  android/base/String_unittest.cpp \
  android/base/StringFormat_unittest.cpp \
  android/base/StringView_unittest.cpp \
  android/emulation/CpuAccelerator_unittest.cpp \
  android/filesystems/ext4_utils_unittest.cpp \
  android/kernel/kernel_utils_unittest.cpp \

ifeq (windows,$(HOST_OS))
EMULATOR_UNITTESTS_SOURCES += \
  android/base/files/ScopedHandle_unittest.cpp \

endif

$(call start-emulator-program, emulator_unittests)
LOCAL_C_INCLUDES += $(EMULATOR_GTEST_INCLUDES)
LOCAL_LDLIBS += $(EMULATOR_GTEST_LDLIBS)
LOCAL_SRC_FILES := $(EMULATOR_UNITTESTS_SOURCES)
LOCAL_CFLAGS += -O0
LOCAL_STATIC_LIBRARIES += emulator-common emulator-libgtest
$(call end-emulator-program)


ifdef EMULATOR_BUILD_64BITS
  $(call start-emulator-program, emulator64_unittests)
  LOCAL_C_INCLUDES += $(EMULATOR_GTEST_INCLUDES)
  LOCAL_LDLIBS += $(EMULATOR_GTEST_LDLIBS)
  LOCAL_SRC_FILES := $(EMULATOR_UNITTESTS_SOURCES)
  LOCAL_CFLAGS += -O0 -m64
  LOCAL_LDLIBS += -m64
  LOCAL_STATIC_LIBRARIES += emulator64-common emulator64-libgtest
  $(call end-emulator-program)
endif
