add_library(utils SHARED androidImpl/libutils_placeholder.cpp)
add_library(log SHARED androidImpl/Log.cpp)

target_include_directories(log PRIVATE android/android-emugl/guest
                                       android/android-emu)

# The cutils library.
add_library(
    cutils
    SHARED
    androidImpl/AndroidVulkanDispatch.cpp
    androidImpl/Ashmem.cpp
    androidImpl/GrallocDispatch.cpp
    androidImpl/native_handle.cpp
    androidImpl/Properties.cpp
    androidImpl/RefBase.cpp
    androidImpl/SharedBuffer.cpp
    androidImpl/String16.cpp
    androidImpl/String8.cpp
    androidImpl/trace-host.cpp
    androidImpl/Unicode.cpp)
target_include_directories(cutils PRIVATE ${GFXSTREAM_REPO_ROOT} ${GFXSTREAM_REPO_ROOT}/include .)
target_include_directories(cutils PUBLIC .)
target_link_libraries(cutils PUBLIC aemu-base.headers)
target_link_libraries(cutils PRIVATE log gfxstream_vulkan_headers)
target_compile_options(cutils PRIVATE -fvisibility=default -Wno-invalid-constexpr -Wno-macro-redefined)
target_compile_definitions(cutils PRIVATE -D__ANDROID_API__=28)

add_library(grallocusage SHARED libgrallocusage/GrallocUsageConversion.cpp)
target_include_directories(grallocusage PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(grallocusage PUBLIC aemu-base.headers)
target_compile_definitions(grallocusage PRIVATE -D__ANDROID_API__=28)

# The gui library
add_library(gui
    SHARED
    androidImpl/AHardwareBuffer.cpp
    androidImpl/ANativeWindow.cpp
    androidImpl/AndroidBufferQueue.cpp
    androidImpl/AndroidWindow.cpp
    androidImpl/AndroidWindowBuffer.cpp
    androidImpl/Gralloc2.cpp
    androidImpl/GraphicBuffer.cpp
    androidImpl/GraphicBufferAllocator.cpp
    androidImpl/GraphicBufferMapper.cpp
    androidImpl/PixelFormat.cpp
    androidImpl/SurfaceFlinger.cpp
    androidImpl/Vsync.cpp
    sync/sync.cpp)
target_link_libraries(gui PUBLIC aemu-base.headers)
target_include_directories(gui PUBLIC ${GFXSTREAM_REPO_ROOT}/fake-android-guest)
target_compile_options(gui PRIVATE -fvisibility=default)
target_compile_definitions(gui PRIVATE -D__ANDROID_API__=28)
target_link_libraries(gui PRIVATE cutils log grallocusage)

# The unit tests
# android_add_test(TARGET gui_unittests SRC # cmake-format: sortable
# androidImpl/libgui_unittest.cpp)
# target_link_libraries(gui_unittests PUBLIC gui emugl_base gtest gtest_main)

add_library(
  vulkan_android
  SHARED
  libvulkan/api.cpp
  libvulkan/api_gen.cpp
  libvulkan/debug_report.cpp
  libvulkan/driver.cpp
  libvulkan/driver_gen.cpp
  libvulkan/layers_extensions.cpp
  libvulkan/stubhal.cpp
  libvulkan/swapchain.cpp)
target_compile_definitions(
  vulkan_android PRIVATE -DLOG_TAG=\"vulkan\" -DVK_USE_PLATFORM_ANDROID_KHR
                         -DVK_NO_PROTOTYPES -D__ANDROID_API__=28)
target_include_directories(vulkan_android
    PRIVATE ${GFXSTREAM_REPO_ROOT}/include ${GFXSTREAM_REPO_ROOT})
target_compile_options(vulkan_android PRIVATE -fvisibility=hidden
                                              -fstrict-aliasing)
target_link_libraries(vulkan_android PRIVATE grallocusage)
target_link_libraries(vulkan_android
                      PUBLIC aemu-base.headers log gui cutils utils gfxstream_vulkan_headers)

# android_add_test(
#   TARGET vulkanhal_unittests SRC # cmake-format: sortable
#                                  androidImpl/vulkanhal_unittest.cpp)
# target_include_directories(
#   vulkanhal_unittests
#   PRIVATE ${ANDROID_EMUGL_DIR}/host/include ${ANDROID_EMUGL_DIR}/combined
#           ${ANDROID_EMUGL_DIR}/guest/grallocusage
#           ${GOLDFISH_EMUGL_DIR}/shared/OpenglCodecCommon
#           ${GOLDFISH_EMUGL_DIR}/system
#           ${GOLDFISH_EMUGL_DIR}/system/renderControl_enc)
# target_link_libraries(vulkanhal_unittests PRIVATE grallocusage aemugraphics
#                       PRIVATE android-emu-test-launcher)
# target_compile_definitions(vulkanhal_unittests PRIVATE -D__ANDROID_API__=28)
# android_target_dependency(vulkanhal_unittests all
#                           EMULATOR_FEATURE_DEPENDENCIES)
# android_target_dependency(vulkanhal_unittests all SWIFTSHADER_DEPENDENCIES)
# android_target_properties(
#   vulkanhal_unittests darwin-x86_64
#   "INSTALL_RPATH>=@loader_path/lib64/gles_swiftshader")
# android_target_properties(
#   vulkanhal_unittests linux-x86_64
#   "LINK_FLAGS>=-Wl,-rpath,'$ORIGIN/lib64/gles_swiftshader'")
# 
