if(COMMAND cmake_policy)
    # Allow VERSION in the project() statement.
    cmake_policy(SET CMP0048 NEW)
endif()

cmake_minimum_required(VERSION 3.10)

set(GTE_VERSION_MAJOR 8)
set(GTE_VERSION_MINOR 4)

project(Graphics VERSION ${GTE_VERSION_MAJOR}.${GTE_VERSION_MINOR})

add_subdirectory(AppendConsumeBuffers)
add_subdirectory(AreaLights)
add_subdirectory(BlendedTerrain)
add_subdirectory(BufferUpdating)
add_subdirectory(BumpMaps)
add_subdirectory(CubeMaps)
add_subdirectory(GeometryShaders)
add_subdirectory(GlossMaps)
add_subdirectory(IEEEFloatingPoint)
add_subdirectory(Lights)
add_subdirectory(LightTexture)
add_subdirectory(MultipleRenderTargets)
add_subdirectory(PlanarReflections)
add_subdirectory(PlanarShadows)
add_subdirectory(PlaneMeshIntersection)
add_subdirectory(ProjectedTextures)
add_subdirectory(ShaderReflection)
add_subdirectory(ShadowMaps)
add_subdirectory(Skinning)
add_subdirectory(SphereMaps)
add_subdirectory(StructuredBuffers)
add_subdirectory(TextureArrays)
add_subdirectory(TextureUpdating)
add_subdirectory(Texturing)
add_subdirectory(VertexColoring)
add_subdirectory(VertexTextures)
add_subdirectory(VolumeFog)
add_subdirectory(WireMesh)

add_custom_target(Samples_Graphics)
add_dependencies(Samples_Graphics
    AppendConsumeBuffers
    AreaLights
    BlendedTerrain
    BufferUpdating
    BumpMaps
    CubeMaps
    GeometryShaders
    GlossMaps
    IEEEFloatingPoint
    Lights
    LightTexture
    MultipleRenderTargets
    PlanarReflections
    PlanarShadows
    PlaneMeshIntersection
    ProjectedTextures
    ShaderReflection
    ShadowMaps
    Skinning
    SphereMaps
    StructuredBuffers
    TextureArrays
    TextureUpdating
    Texturing
    VertexColoring
    VertexTextures
    VolumeFog
    WireMesh
)
