cmake_minimum_required(VERSION 2.6)
project ("Filtering Solid Gabor Noise")


find_package(OpenGL)
if(NOT OPENGL_FOUND)
  message(FATAL_ERROR "OpenGL not found")
else()
  message(STATUS "DEBUG: OpenGL found")
endif()


find_package(GLUT) 
if(WIN32 AND NOT GLUT_FOUND)
  find_path(GLUT_INCLUDE_DIR NAMES GL/glut.h PATHS ${GLUT_ROOT_PATH}/include ${PROJECT_SOURCE_DIR}/glut)
  #find_library(GLUT_glut_LIBRARY NAMES glut glut32 PATHS ${OPENGL_LIBRARY_DIR} ${GLUT_ROOT_PATH}/Release ${PROJECT_SOURCE_DIR}/glut) 
  find_library(GLUT_glut_LIBRARY NAMES glut glut32 freeglut freeglut_static PATHS ${OPENGL_LIBRARY_DIR} ${GLUT_ROOT_PATH}/Release ${GLUT_ROOT_PATH}/lib ${GLUT_ROOT_PATH} ${PROJECT_SOURCE_DIR}/glut)
  set(GLUT_FOUND "NO")
  if(GLUT_INCLUDE_DIR)
    if(GLUT_glut_LIBRARY)
      set(GLUT_LIBRARIES ${GLUT_glut_LIBRARY})
      set(GLUT_FOUND "YES")
    endif()
  endif()
  mark_as_advanced(GLUT_INCLUDE_DIR GLUT_glut_LIBRARY)
  if(${GLUT_glut_LIBRARY} STREQUAL ${PROJECT_SOURCE_DIR}/glut/glut32.lib)
    install(FILES ${PROJECT_SOURCE_DIR}/glut/glut32.dll DESTINATION ${PROJECT_BINARY_DIR}/../bin)
  endif()
endif()
if(NOT GLUT_FOUND)
  message(FATAL_ERROR "GLUT not found")
else()
  message(STATUS "DEBUG: GLUT found")
  message(STATUS "DEBUG: GLUT_INCLUDE_DIR: ${GLUT_INCLUDE_DIR}")
  message(STATUS "DEBUG: GLUT_glut_LIBRARY: ${GLUT_glut_LIBRARY}")
  include_directories(${GLUT_INCLUDE_DIR})
endif()


add_subdirectory(GLEW)
include_directories(${PROJECT_SOURCE_DIR}/GLEW)


add_subdirectory(AntTweakBar)
include_directories(${PROJECT_SOURCE_DIR}/AntTweakBar)


add_executable(filtering_solid_gabor_noise filtering_solid_gabor_noise.cpp)
target_link_libraries(filtering_solid_gabor_noise ${OPENGL_LIBRARY} ${GLUT_LIBRARIES} GLEW AntTweakBar)
install(TARGETS filtering_solid_gabor_noise DESTINATION ${PROJECT_BINARY_DIR}/../bin)
install(FILES ${PROJECT_SOURCE_DIR}/filtering_solid_gabor_noise.vert DESTINATION ${PROJECT_BINARY_DIR}/../bin)
install(FILES ${PROJECT_SOURCE_DIR}/filtering_solid_gabor_noise.frag DESTINATION ${PROJECT_BINARY_DIR}/../bin)
install(FILES ${PROJECT_SOURCE_DIR}/filtering_solid_gabor_noise_glsl120.vert DESTINATION ${PROJECT_BINARY_DIR}/../bin)
install(FILES ${PROJECT_SOURCE_DIR}/filtering_solid_gabor_noise_glsl120.frag DESTINATION ${PROJECT_BINARY_DIR}/../bin)
