# 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
)
if (DEQP_SUPPORT_EGL)
set(TCUTIL_PLATFORM_SRCS
${TCUTIL_PLATFORM_SRCS}
win32/tcuWin32EGLNativeDisplayFactory.hpp
win32/tcuWin32EGLNativeDisplayFactory.cpp
)
endif()
elseif ((DE_OS_IS_UNIX OR DE_OS_IS_OSX) AND DEQP_USE_X11)
set(TCUTIL_PLATFORM_SRCS
X11/tcuX11.cpp
X11/tcuX11.hpp
X11/tcuX11Platform.hpp
X11/tcuX11Platform.cpp
)
if (DEQP_SUPPORT_EGL)
set(TCUTIL_PLATFORM_SRCS
${TCUTIL_PLATFORM_SRCS}
X11/tcuX11EglPlatform.hpp
X11/tcuX11EglPlatform.cpp
)
endif()
if (DEQP_SUPPORT_GLX)
set(TCUTIL_PLATFORM_SRCS
${TCUTIL_PLATFORM_SRCS}
X11/tcuX11GlxPlatform.hpp
X11/tcuX11GlxPlatform.cpp
)
endif()
if (NOT (DEQP_SUPPORT_EGL OR DEQP_SUPPORT_GLX))
message(FATAL_ERROR "At least one of EGL and GLX must be enabled for X11")
endif ()
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/tcuAndroidInternals.cpp
android/tcuAndroidInternals.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
)
else ()
set(TCUTIL_PLATFORM_SRCS
vanilla/tcuVanillaPlatform.cpp
)
endif ()
endif ()
add_library(tcutil-platform STATIC ${TCUTIL_PLATFORM_SRCS})
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)
# Link to eglutil if platform supports EGL
if (DEQP_SUPPORT_EGL)
target_link_libraries(tcutil-platform eglutil eglwrapper)
endif ()
# X11 libraries
if (DEQP_USE_X11)
find_package(X11 REQUIRED)
target_link_libraries(tcutil-platform ${X11_LIBRARIES})
if (DEQP_SUPPORT_GLX)
# GLX functions don't currently have wrappers, so link directly to libGL.
target_link_libraries(tcutil-platform GL)
endif ()
endif ()