################################################################################
# Set cmake version and do some general work (set project, CMAKE_MODULE_PATH,...)
################################################################################
cmake_minimum_required(VERSION 2.6)

PROJECT(HelloGlut)

#check for special glut script in windows
IF(WIN32)
 # set custom .cmake GLUT scripts also to the module path
 SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${PROJECT_SOURCE_DIR}")
ENDIF(WIN32)

################################################################################
# Platform specific definitions
################################################################################
IF(WIN32)
    IF(MSVC)
        ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS)
        ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
    ENDIF(MSVC)
ENDIF(WIN32)

################################################################################
# check for necessary libraries
################################################################################
# Check for OpenGL libaries.
INCLUDE(FindOpenGL) 	# sets OPENGL_FOUND
# FindGLUT will check for glut and look for GLUT_INCLUDE_DIR and GLUT_LIBRARIES
INCLUDE(FindGLUT)       # sets GLUT_FOUND

#########################################################################
# Set target name und set path to data folder of the target
#########################################################################
SET(TARGETNAME HelloGlutProgram)

#########################################################################
# Set basic include directories and libraries
#########################################################################
INCLUDE_DIRECTORIES(
    # do this for general use
    ${OPENGL_INCLUDE_DIR}
	${GLUT_INCLUDE_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}
)

SET( LIBRARY_FILES  
	${OPENGL_LIBRARIES} 
	${GLUT_LIBRARIES} )


#########################################################################
# Collect header and source files 
#########################################################################
SET(TARGET_H
)

# collect the sources
SET(TARGET_SRC
	hello_glut.cpp
)

#########################################################################
# Setup groups for resources (mainly for MSVC project folders)
#########################################################################
ADD_EXECUTABLE( ${TARGETNAME} ${TARGET_SRC} ${TARGET_H} )
TARGET_LINK_LIBRARIES(${TARGETNAME} ${LIBRARY_FILES} )