Merge vk-gl-cts/vulkan-cts-1.3.2 into vk-gl-cts/vulkan-cts-1.3.3
[platform/upstream/VK-GL-CTS.git] / CMakeLists.txt
index 00dcc13..0c69f3f 100644 (file)
@@ -108,6 +108,10 @@ include_directories(${SPIRV_INCLUDE_PATH})
 add_subdirectory(external/amber)
 include_directories(external/amber)
 
+# jsoncpp
+add_subdirectory(external/jsoncpp)
+include_directories(external/jsoncpp/src/include)
+
 # RenderDoc API
 include_directories(external/renderdoc/src)
 
@@ -233,6 +237,7 @@ include_directories(
        framework/egl/wrapper
        framework/xexml
        external/vulkancts/framework/vulkan
+       external/vulkancts/framework/vulkan/generated/vulkan
        )
 
 if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS)
@@ -266,7 +271,7 @@ set(MODULE_DATA_TARGET_POSTFIX      "-data")
 #      ${MODULE_NAME}-package:         Static library that contains all SRCS and links to LIBS
 #      ${MODULE_NAME}-data:            Custom target that is used for data file copies
 #      ${MODULE_NAME}:                         Executable binary (if supported by the platform)
-macro (add_deqp_module MODULE_NAME SRCS LIBS ENTRY)
+macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
 
        # Library target
        add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS})
@@ -282,7 +287,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS ENTRY)
        if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
                # Executable target
                add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
-               target_link_libraries(${MODULE_NAME} tcutil-platform "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
+               target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
                target_copy_files(${MODULE_NAME} platform-libs-${MODULE_NAME} "${DEQP_PLATFORM_COPY_LIBRARIES}")
        endif ()
 
@@ -291,6 +296,28 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS ENTRY)
        add_dependencies("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}")
 endmacro (add_deqp_module)
 
+# Macro add_deqp_module_skip_android does not add module to DEQP_MODULE_LIBRARIES, so that it is not created on Android.
+# It's a temporary solution to disable Vulkan SC tests on Android, because later defined deqp library
+# uses both deqp-vk and deqp-vksc and this means that definitions CTS_USES_VULKAN and CTS_USES_VULKANSC
+# exist in deqp library at the same time which causes code to not compile.
+macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY)
+
+       # Library target
+       add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS})
+       target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS})
+
+       if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS)
+               # Executable target
+               add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY})
+               target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}")
+               target_copy_files(${MODULE_NAME} platform-libs-${MODULE_NAME} "${DEQP_PLATFORM_COPY_LIBRARIES}")
+       endif ()
+
+       # Data file target
+       add_custom_target("${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}")
+       add_dependencies("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" "${MODULE_NAME}${MODULE_DATA_TARGET_POSTFIX}")
+endmacro (add_deqp_module_skip_android)
+
 # Macro for adding data dirs to module
 macro (add_data_dir MODULE_NAME SRC_DIR DST_DIR)
        if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_QNX)
@@ -326,6 +353,8 @@ endif ()
 
 add_subdirectory(modules)
 add_subdirectory(external/vulkancts/modules/vulkan)
+add_subdirectory(external/vulkancts/vkscserver)
+add_subdirectory(external/vulkancts/vkscpc)
 add_subdirectory(external/openglcts)
 
 # Single-binary targets