blob: 276a8f0987a75fc08a2eb4ac81d4dc377248e658 [file] [log] [blame]
set(utils_src androidImpl/libutils_placeholder.cpp)
android_add_shared_library(utils)
# A small logging library
set(log_src androidImpl/Log.cpp)
android_add_shared_library(log)
target_include_directories(log PRIVATE android/android-emugl/guest android/android-emu)
target_link_libraries(log PRIVATE emugl_base)
# The cutils library.
set(cutils_src
androidImpl/Ashmem.cpp
androidImpl/Properties.cpp
androidImpl/GrallocDispatch.cpp
androidImpl/AndroidVulkanDispatch.cpp
androidImpl/native_handle.cpp
androidImpl/RefBase.cpp
androidImpl/SharedBuffer.cpp
androidImpl/String8.cpp
androidImpl/String16.cpp
androidImpl/trace-host.cpp
androidImpl/Unicode.cpp)
android_add_shared_library(cutils)
target_include_directories(cutils PRIVATE ${ANDROID_EMUGL_DIR}/host/include .)
target_include_directories(cutils PUBLIC .)
target_link_libraries(cutils PUBLIC android-emu-base)
target_link_libraries(cutils PRIVATE log emugl_base)
android_target_compile_options(cutils Clang PRIVATE -fvisibility=default -Wno-invalid-constexpr)
target_compile_definitions(cutils PRIVATE -D__ANDROID_API__=28)
set(grallocusage_src libgrallocusage/GrallocUsageConversion.cpp)
android_add_shared_library(grallocusage)
target_include_directories(grallocusage PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(grallocusage PUBLIC emugl_base)
target_compile_definitions(grallocusage PRIVATE -D__ANDROID_API__=28)
# The gui library
set(gui_src
androidImpl/AHardwareBuffer.cpp
androidImpl/AndroidBufferQueue.cpp
androidImpl/ANativeWindow.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
)
android_add_shared_library(gui)
target_link_libraries(gui PUBLIC android-emu-base)
target_include_directories(gui PUBLIC ${ANDROID_EMUGL_DIR}/guest)
target_compile_options(gui PRIVATE -fvisibility=default)
target_compile_definitions(gui PRIVATE -D__ANDROID_API__=28)
target_link_libraries(gui PRIVATE cutils log emugl_base grallocusage)
# The unit tests
set(gui_unittests_src androidImpl/libgui_unittest.cpp)
android_add_test(gui_unittests)
target_link_libraries(gui_unittests PUBLIC gui emugl_base gtest gtest_main)
set(vulkan_android_src
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
)
android_add_shared_library(vulkan_android)
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 ${ANDROID_EMUGL_DIR}/host/include)
target_compile_options(vulkan_android PRIVATE -fvisibility=hidden -fstrict-aliasing)
target_link_libraries(vulkan_android PRIVATE grallocusage)
target_link_libraries(vulkan_android PUBLIC emugl_base log gui cutils utils)
set(vulkanhal_unittests_src androidImpl/vulkanhal_unittest.cpp)
android_add_test(vulkanhal_unittests)
target_include_directories(
vulkanhal_unittests PRIVATE
${ANDROID_EMUGL_DIR}/host/include
${ANDROID_EMUGL_DIR}/combined
${ANDROID_EMUGL_DIR}/guest/grallocusage)
target_link_libraries(
vulkanhal_unittests PRIVATE
grallocusage aemugraphics PRIVATE
gtest_main)
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'")