# 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_C_INCLUDES += $(EMULATOR_EXT4_UTILS_INCLUDES)
LOCAL_LDLIBS += $(EMULATOR_GTEST_LDLIBS)
LOCAL_SRC_FILES := $(EMULATOR_UNITTESTS_SOURCES)
LOCAL_CFLAGS += -O0
LOCAL_STATIC_LIBRARIES += emulator-common \
  emulator-libgtest \
  $(EMULATOR_EXT4_UTILS_STATIC_LIBRARIES) \
  emulator-zlib
$(call end-emulator-program)


ifdef EMULATOR_BUILD_64BITS
  $(call start-emulator-program, emulator64_unittests)
  LOCAL_C_INCLUDES += $(EMULATOR_GTEST_INCLUDES)
  LOCAL_C_INCLUDES += $(EMULATOR_EXT4_UTILS_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 \
    $(EMULATOR_EXT4_UTILS_STATIC_LIBRARIES_64) \
    emulator64-zlib
  $(call end-emulator-program)
endif
