# Platform port library # Target file may define TCUTIL_PLATFORM_SRCS if (NOT DEFINED TCUTIL_PLATFORM_SRCS) if (DE_OS_IS_WIN32) set(TCUTIL_PLATFORM_SRCS win32/tcuWin32Platform.hpp win32/tcuWin32Platform.cpp win32/tcuWGLContextFactory.hpp win32/tcuWGLContextFactory.cpp win32/tcuWGL.hpp win32/tcuWGL.cpp win32/tcuWin32API.h win32/tcuWin32Window.cpp win32/tcuWin32Window.hpp win32/tcuWin32EGLNativeDisplayFactory.hpp win32/tcuWin32EGLNativeDisplayFactory.cpp win32/tcuWin32VulkanPlatform.hpp win32/tcuWin32VulkanPlatform.cpp ) elseif ((DE_OS_IS_UNIX OR DE_OS_IS_OSX) AND (DEQP_USE_X11 OR DEQP_USE_WAYLAND OR DEQP_USE_HEADLESS)) set(TCUTIL_PLATFORM_SRCS lnx/tcuLnx.cpp lnx/tcuLnx.cpp lnx/tcuLnxPlatform.cpp lnx/tcuLnxPlatform.hpp lnx/tcuLnxEglPlatform.hpp lnx/tcuLnxEglPlatform.cpp lnx/tcuLnxVulkanPlatform.hpp lnx/tcuLnxVulkanPlatform.cpp ) include_directories(lnx) if (DEQP_USE_X11) add_definitions(-DDEQP_SUPPORT_X11=1) include_directories(lnx/X11) message(STATUS "DEQP_SUPPORT_GLX = ${DEQP_SUPPORT_GLX}") if (DEQP_SUPPORT_GLX) add_definitions(-DDEQP_SUPPORT_GLX=1) endif () set(TCUTIL_PLATFORM_SRCS ${TCUTIL_PLATFORM_SRCS} lnx/X11/tcuLnxX11.cpp lnx/X11/tcuLnxX11.hpp lnx/X11/tcuLnxX11EglDisplayFactory.hpp lnx/X11/tcuLnxX11EglDisplayFactory.cpp ) if (DEQP_USE_XCB) set(TCUTIL_PLATFORM_SRCS ${TCUTIL_PLATFORM_SRCS} lnx/X11/tcuLnxX11Xcb.hpp lnx/X11/tcuLnxX11Xcb.cpp ) endif() if (DEQP_SUPPORT_GLX) set(TCUTIL_PLATFORM_SRCS ${TCUTIL_PLATFORM_SRCS} lnx/X11/tcuLnxX11GlxPlatform.hpp lnx/X11/tcuLnxX11GlxPlatform.cpp ) endif() endif() if (DEQP_USE_WAYLAND) add_definitions(-DDEQP_SUPPORT_WAYLAND=1) include_directories(lnx/wayland) set(TCUTIL_PLATFORM_SRCS ${TCUTIL_PLATFORM_SRCS} lnx/wayland/tcuLnxWayland.hpp lnx/wayland/tcuLnxWayland.cpp lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp lnx/wayland/tcuLnxWaylandEglDisplayFactory.hpp ) include_directories(wayland) endif() if (DEQP_USE_HEADLESS) add_definitions(-DDEQP_SUPPORT_HEADLESS=1) endif() elseif (DE_OS_IS_UNIX AND DEQP_USE_SURFACELESS) set(TCUTIL_PLATFORM_SRCS surfaceless/tcuSurfacelessPlatform.hpp surfaceless/tcuSurfacelessPlatform.cpp ) elseif (DE_OS_IS_ANDROID) set(TCUTIL_PLATFORM_SRCS android/tcuAndroidExecService.cpp android/tcuAndroidExecService.hpp ) if (DE_ANDROID_API GREATER 8) # Add NativeActivity code set(TCUTIL_PLATFORM_SRCS ${TCUTIL_PLATFORM_SRCS} android/tcuAndroidAssets.cpp android/tcuAndroidAssets.hpp android/tcuAndroidNativeActivity.cpp android/tcuAndroidNativeActivity.hpp android/tcuAndroidPlatform.cpp android/tcuAndroidPlatform.hpp android/tcuAndroidRenderActivity.cpp android/tcuAndroidRenderActivity.hpp android/tcuAndroidTestActivity.cpp android/tcuAndroidTestActivity.hpp android/tcuAndroidUtil.cpp android/tcuAndroidUtil.hpp android/tcuAndroidWindow.cpp android/tcuAndroidWindow.hpp ) endif () elseif (DE_OS_IS_IOS) set(TCUTIL_PLATFORM_SRCS ios/tcuIOSApp.mm ios/tcuIOSApp.h ios/tcuIOSPlatform.mm ios/tcuIOSPlatform.hh ) elseif (DE_OS_IS_OSX) set(TCUTIL_PLATFORM_SRCS osx/tcuOSXPlatform.cpp osx/tcuOSXPlatform.hpp osx/tcuOSXVulkanPlatform.cpp osx/tcuOSXVulkanPlatform.hpp osx/tcuOSXMetalView.mm osx/tcuOSXMetalView.hpp ) list(APPEND TCUTIL_PLATFORM_LIBS ${QUARTZCORE_LIBRARY} ${COCOA_LIBRARY}) else () set(TCUTIL_PLATFORM_SRCS vanilla/tcuVanillaPlatform.cpp ) endif () endif () include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan) add_library(tcutil-platform STATIC ${TCUTIL_PLATFORM_SRCS}) # Add vkutil to the deps before tcutil so that it picks up the c++11 dependencies target_link_libraries(tcutil-platform vkutil) target_link_libraries(tcutil-platform tcutil ${TCUTIL_PLATFORM_LIBS}) # Always link to glutil as some platforms such as Win32 always support GL target_link_libraries(tcutil-platform glutil) # Always link to eglutil target_link_libraries(tcutil-platform eglutil) # X11 libraries if (DEQP_USE_X11) find_package(X11 REQUIRED) target_link_libraries(tcutil-platform ${X11_LIBRARIES}) if (DEQP_USE_XCB) find_package(XCB REQUIRED) target_link_libraries(tcutil-platform ${XCB_LIBRARIES}) add_definitions(-DDEQP_SUPPORT_XCB=1) endif () if (DEQP_SUPPORT_GLX) # GLX functions don't currently have wrappers, so link directly to libGL. target_link_libraries(tcutil-platform GL) endif () if (DEQP_USE_WAYLAND) find_package(Wayland REQUIRED) target_link_libraries(tcutil-platform ${WAYLAND_LIBRARIES}) add_definitions(-DDEQP_SUPPORT_WAYLAND=1) endif () endif () if (DE_OS_IS_WIN32) target_link_libraries(tcutil-platform "version") endif()