5
5
cmake_minimum_required (VERSION 3.20.0)
6
6
7
7
option (GLES_ALLOW_DIRECT_LINK "Allow direct linking to GLES libraries" OFF )
8
+ option (DEQP_ANDROID_EXE "Build dEQP modules as executables rather than a library on Android" OFF )
8
9
9
10
# Target selection:
10
11
# SELECTED_BUILD_TARGETS is a CMake option that can be set to a list of targets
@@ -204,6 +205,22 @@ if (DEFINED DEQP_EGL_LIBRARIES AND GLES_ALLOW_DIRECT_LINK)
204
205
add_definitions (-DDEQP_EGL_DIRECT_LINK=1)
205
206
endif ()
206
207
208
+ # Android build variants
209
+ if (DE_OS_IS_ANDROID)
210
+ if (DEQP_ANDROID_EXE)
211
+ message (STATUS "DEQP_ANDROID_BUILD = EXE" )
212
+ set (DEQP_ANDROID_APP OFF )
213
+ else ()
214
+ message (STATUS "DEQP_ANDROID_BUILD = APP" )
215
+ set (DEQP_ANDROID_APP ON )
216
+
217
+ add_definitions (-DDEQP_IS_ANDROID_APP=1)
218
+ endif ()
219
+ else ()
220
+ set (DEQP_ANDROID_EXE OFF )
221
+ set (DEQP_ANDROID_APP OFF )
222
+ endif ()
223
+
207
224
# Legacy APIs that don't support run-time loading
208
225
if (DEQP_SUPPORT_GLES1)
209
226
add_definitions (-DDEQP_SUPPORT_GLES1=1)
@@ -275,7 +292,7 @@ include_directories(
275
292
external/vulkancts/framework /vulkan
276
293
)
277
294
278
- if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
295
+ if (DEQP_ANDROID_APP OR DE_OS_IS_IOS)
279
296
# On Android deqp modules are compiled as libraries and linked into final .so
280
297
set (DEQP_MODULE_LIBRARIES )
281
298
set (DEQP_MODULE_ENTRY_POINTS )
@@ -319,7 +336,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
319
336
set (DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE)
320
337
set (DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE)
321
338
322
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
339
+ if (NOT DEQP_ANDROID_APP AND NOT DE_OS_IS_IOS)
323
340
# Executable target
324
341
add_executable (${MODULE_NAME} ${PROJECT_SOURCE_DIR} /framework /platform/tcuMain.cpp ${ENTRY} )
325
342
target_link_libraries (${MODULE_NAME} PUBLIC "${EXECLIBS} " "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX} " )
@@ -341,7 +358,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
341
358
add_library ("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX} " STATIC ${SRCS} )
342
359
target_link_libraries ("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX} " ${LIBS} )
343
360
344
- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
361
+ if (NOT DEQP_ANDROID_APP AND NOT DE_OS_IS_IOS)
345
362
# Executable target
346
363
add_executable (${MODULE_NAME} ${PROJECT_SOURCE_DIR} /framework /platform/tcuMain.cpp ${ENTRY} )
347
364
target_link_libraries (${MODULE_NAME} PUBLIC "${EXECLIBS} " "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX} " )
@@ -355,10 +372,10 @@ endmacro (add_deqp_module_skip_android)
355
372
356
373
# Macro for adding data dirs to module
357
374
macro (add_data_dir MODULE_NAME SRC_DIR DST_DIR)
358
- if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX)
375
+ if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX OR DEQP_ANDROID_EXE )
359
376
add_custom_command (TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX} " POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} /${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR} /${DST_DIR} )
360
377
361
- elseif (DE_OS_IS_ANDROID )
378
+ elseif (DEQP_ANDROID_APP )
362
379
add_custom_command (TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX} " POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR} /${SRC_DIR} ${CMAKE_BINARY_DIR} /assets/${DST_DIR} )
363
380
364
381
elseif (DE_OS_IS_IOS)
@@ -368,10 +385,10 @@ endmacro (add_data_dir)
368
385
369
386
# Macro for adding individual data files to module
370
387
macro (add_data_file MODULE_NAME SRC_FILE DST_FILE)
371
- if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX)
388
+ if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX OR DEQP_ANDROID_EXE )
372
389
add_custom_command (TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX} " POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR} /${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR} /${DST_FILE} )
373
390
374
- elseif (DE_OS_IS_ANDROID )
391
+ elseif (DEQP_ANDROID_APP )
375
392
add_custom_command (TARGET "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX} " POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR} /${SRC_FILE} ${CMAKE_BINARY_DIR} /assets/${DST_FILE} )
376
393
377
394
elseif (DE_OS_IS_IOS)
@@ -393,7 +410,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL})
393
410
add_subdirectory (external/openglcts ${MAYBE_EXCLUDE_FROM_ALL} )
394
411
395
412
# Single-binary targets
396
- if (DE_OS_IS_ANDROID )
413
+ if (DEQP_ANDROID_APP )
397
414
include_directories (executor)
398
415
include_directories (${PROJECT_BINARY_DIR} /external/vulkancts/framework /vulkan)
399
416
0 commit comments