set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/../testIntegration)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../testIntegration)

file(GLOB UWP_COMMON_SOURCES "../../../../examples/windows/Common/*")
file(GLOB UWP_CONTENT_SOURCES "../../../../examples/windows/Content/*")

file(COPY ${UWP_COMMON_SOURCES} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Common/)
file(COPY ${UWP_CONTENT_SOURCES} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Content/)

set(integrationTestRunnerHeaders
  pch.h
  IntegrationTestRunner.hpp
  App.h
  Common/DeviceResources.h
  Common/DirectXHelper.h
  Common/TextureAndSRVNV12.hpp
  Common/TextureMapper.hpp
  Content/SampleRenderer.h
  Content/ShaderStructures.h
)

set(integrationTestRunnerSources
  pch.cpp
  IntegrationTestRunner.cpp
  App.cpp
  Common/DeviceResources.cpp
  Common/TextureAndSRVNV12.cpp
  Common/TextureMapper.cpp
  Content/SampleRenderer.cpp
)

# Assets will be copied from UWP_RESOURCE_DIR
set(integrationTestRunnerAssets
  Assets/LockScreenLogo.scale-200.png
  Assets/SplashScreen.png
  Assets/Square150x150Logo.scale-200.png
  Assets/Square44x44Logo.scale-200.png
  Assets/Square44x44Logo.targetsize-24_altform-unplated.png
  Assets/StoreLogo.png
  Assets/Wide310x150Logo.scale-200.png
)

copy_resources(
  SOURCE ${UWP_RESOURCE_DIR}
  DESTINATION Assets
  FILES ${integrationTestRunnerAssets}
)

# Pixels and vertex shaders
set(PIXEL_SHADERS
    Common/SamplePixelShader.hlsl
)
set(VERTEX_SHADERS
    Common/SampleVertexShader.hlsl
)

# Certificate Key will be copied from UWP_RESOURCE_DIR
set(integrationTestRunnerCertKey playercore_TemporaryKey.pfx)

copy_resources(
  SOURCE ${UWP_RESOURCE_DIR}
  DESTINATION .
  FILES ${integrationTestRunnerCertKey}
)

set(integrationTestRunnerContentFiles
)

set(integrationTestRunnerManifest package.appxmanifest)

set(integrationTestRunnerResources
  ${integrationTestRunnerAssets}
  ${integrationTestRunnerContentFiles}
  ${integrationTestRunnerCertKey}
)

set_property(SOURCE ${integrationTestRunnerAssets} PROPERTY VS_DEPLOYMENT_CONTENT 1)
set_property(SOURCE ${integrationTestRunnerAssets} PROPERTY VS_DEPLOYMENT_LOCATION "Assets")
set_property(SOURCE ${integrationTestRunnerContentFiles} PROPERTY VS_DEPLOYMENT_CONTENT 1)
set_property(SOURCE ${integrationTestRunnerManifest} PROPERTY VS_DEPLOYMENT_CONTENT 1)

set_source_files_properties(App.xaml PROPERTIES VS_XAML_TYPE ApplicationDefinition)

source_group("Header Files" FILES ${integrationTestRunnerHeaders})
source_group("Source Files" FILES ${integrationTestRunnerSources})
source_group("Resource Files" FILES ${integrationTestRunnerResources})

add_executable(integrationTestRunner
  ${integrationTestRunnerSources}
  ${integrationTestRunnerHeaders}
  ${integrationTestRunnerResources}
  ${integrationTestRunnerManifest}
  ${PIXEL_SHADERS}
  ${VERTEX_SHADERS}
)

set_property(SOURCE ${PIXEL_SHADERS} PROPERTY VS_SHADER_TYPE Pixel)
set_property(SOURCE ${PIXEL_SHADERS} PROPERTY VS_SHADER_MODEL 4.0_level_9_3)
set_property(SOURCE ${PIXEL_SHADERS} PROPERTY VS_SHADER_ENTRYPOINT main)
set_property(SOURCE ${PIXEL_SHADERS} PROPERTY VS_DEPLOYMENT_CONTENT 1)

set_property(SOURCE ${VERTEX_SHADERS} PROPERTY VS_SHADER_TYPE Vertex)
set_property(SOURCE ${VERTEX_SHADERS} PROPERTY VS_SHADER_MODEL 4.0_level_9_3)
set_property(SOURCE ${VERTEX_SHADERS} PROPERTY VS_SHADER_ENTRYPOINT main)
set_property(SOURCE ${VERTEX_SHADERS} PROPERTY VS_DEPLOYMENT_CONTENT 1)

set_property(TARGET integrationTestRunner PROPERTY VS_WINRT_COMPONENT TRUE)
target_include_directories(integrationTestRunner PRIVATE
  ${CMAKE_CURRENT_SOURCE_DIR}
)
target_link_libraries(integrationTestRunner
  json11
  optionparser
  gtest
  mediaplayer
  testenv
  util
  integrationtest
  mincore
  d3d12
  dxgi
  dxguid
) 
