# dEQP-VK.amber

include_directories(..)

set(DEQP_VK_AMBER_SRCS
	vktAmberHelper.hpp
	vktAmberHelper.cpp
	vktAmberTestCase.hpp
	vktAmberTestCase.cpp
	vktAmberTestCaseUtil.cpp
	vktAmberGraphicsFuzzTests.hpp
	vktAmberGraphicsFuzzTests.cpp
	vktAmberGlslTests.hpp
	vktAmberGlslTests.cpp
	)

set(DEQP_VK_AMBER_LIBS
	tcutil
	libamber
	)

add_definitions(-DAMBER_CTS_VULKAN_HEADER=1)

if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
	set(CMAKE_CXX_FLAGS	"${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
	set_source_files_properties(
		FILES vktAmberHelper.cpp
		PROPERTIES COMPILE_FLAGS "${DE_3RD_PARTY_CXX_FLAGS}")
elseif (DE_COMPILER_IS_MSC)
	set(CMAKE_CXX_FLAGS	"${CMAKE_CXX_FLAGS} /wd4068")
endif ()

include_directories("../../../../amber/src/include")
add_library(deqp-vk-amber STATIC ${DEQP_VK_AMBER_SRCS})
target_link_libraries(deqp-vk-amber ${DEQP_VK_AMBER_LIBS})

add_custom_target(deqp-vk-amber-data)
add_dependencies(deqp-vk-amber deqp-vk-amber-data)
add_data_dir(deqp-vk-amber ../../../data/vulkan/amber amber)
