set (MODULE_NAME GL)

if(WIN32)
# Windows MSVC/Intel compiler hits: 
# - dwonload free libraries package glew and glut/freeglut from the Internet
# - add x64/x86 binaries with glew and glut/freeglut libraries (.lib) to the directory lib/x64 or lib/x86.
#   Include folder libs as cmake argument -DCLConform_GL_LIBRARIES_DIR=lib\x64 while solution generation 
# - GL headers files should be added to project source directory and GL subdirectory
# - Add .dll files: glut glew to the test binary location.
    list(APPEND CLConform_LIBRARIES opengl32 freeglut glew32)
else(WIN32)
    list(APPEND CLConform_LIBRARIES  GL glut GLEW GLU)
endif(WIN32)

set (${MODULE_NAME}_SOURCES
    main.cpp
    test_buffers.cpp
    test_image_methods.cpp
    test_images_1D.cpp
    test_images_1Darray.cpp
    test_images_2D.cpp
    test_images_2Darray.cpp
    test_images_3D.cpp
    test_images_depth.cpp
    test_images_getinfo_common.cpp
    test_images_multisample.cpp
    test_images_read_common.cpp
    test_images_write_common.cpp
    test_renderbuffer.cpp
    test_renderbuffer_info.cpp
    test_fence_sync.cpp
    helpers.cpp
    ../../test_common/gl/helpers.cpp
    )

if (WIN32)
    list (APPEND ${MODULE_NAME}_SOURCES ../../test_common/gl/setup_win32.cpp)
else(WIN32)
    list (APPEND ${MODULE_NAME}_SOURCES ../../test_common/gl/setup_x11.cpp)
endif(WIN32)

# Compiling GLEW along with the project if the compiler is MINGW.
# The mingw linker was giving weird errors while linking to glew32.lib generated by
# MSVC.
if(MINGW)
    list (APPEND ${MODULE_NAME}_SOURCES GLEW/glew.c)
    set_source_files_properties(
        ${${MODULE_NAME}_SOURCES}
        COMPILE_FLAGS -DGLEW_STATIC)
    include_directories("./GLEW/")
endif(MINGW)

set_source_files_properties(
        ${${MODULE_NAME}_SOURCES}
        PROPERTIES LANGUAGE CXX)

# Add the current folder to the include path, so that
# test_common/gl/setup_x11.cpp can find testBase.h which is located in this
# folder.
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

include(../CMakeCommon.txt)