blob: 4a5c6b0454757c2dd73c7b03323a961cec0f8eb5 [file] [log] [blame]
PROJECT (Raytrace)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
ADD_DEFINITIONS(-DTHIS_IS_CMAKE)
# =============================================================================
SET(RTTL_DEFAULT_BVH_BUILDER "default" CACHE STRING "Default BVH builder")
SET(RTTL_STATS_BVH "default" CACHE STRING "Track stats for BVH traversal")
SET(NEEDS_PTHREAD_BARRIER_T_WRAPPER ON CACHE BOOL "Whether we need to write out own wrappers for pthread_barrier_t ")
IF (APPLE)
SET(NEEDS_PTHREAD_BARRIER_T_WRAPPER ON)
ENDIF (APPLE)
# =============================================================================
# support for PBOs on or off.
# by default, we enable it. if your GL version doesn't support it
# you'll notice early enough....
# passed on via config.h
SET(USE_PBOS 1 CACHE BOOL "Whether compiling with or a/o PBO support")
SET(NEED_ARB_WRAPPERS 0 CACHE BOOL "Whether we need a special ARB string for old gl libs")
# =============================================================================
# will read file from source_dir,
# replace all cmake variables with their current cmake content,
# and write modified file to binary_dir
CONFIGURE_FILE(
${CMAKE_CURRENT_SOURCE_DIR}/RTTL/common/cmake_autoconfig_template.h
${CMAKE_BINARY_DIR}/RTTL/common/cmake_autoconfig.h
)
# =============================================================================
# X11,OpenGL, GLU, GLUT
SET (OPENGL_INCLUDE_DIR /usr/include/GL)
SET (OPENGL_gl_LIBRARY /usr/lib/x86_64-linux-gnu/libGL.so)
SET (OPENGL_glu_LIBRARY /usr/lib/x86_64-linux-gnu/libGLU.so)
SET (GLUT_glut_LIBRARY /usr/lib/x86_64-linux-gnu/libglut.so)
IF (APPLE)
SET (OPENGL_INCLUDE_DIR /usr/X11R6/include)
SET (OPENGL_gl_LIBRARY /usr/X11R6/lib/libGL.dylib)
SET (OPENGL_glu_LIBRARY /usr/X11R6/lib/libGLU.dylib)
SET (GLUT_glut_LIBRARY /opt/local/lib/libglut.dylib)
# ADD_DEFINITIONS(-DTHIS_IS_APPLE)
ENDIF (APPLE)
IF (CYGWIN)
SET (OPENGL_INCLUDE_DIR /usr/X11R6/include)
IF (BUILD_SHARED_LIBS)
SET (OPENGL_gl_LIBRARY /usr/X11R6/bin/libGL.dll)
SET (OPENGL_glu_LIBRARY /usr/X11R6/bin/libGLU.dll)
ELSE (BUILD_SHARED_LIBS)
SET (OPENGL_gl_LIBRARY /usr/X11R6/lib/libGL.dll.a)
SET (OPENGL_glu_LIBRARY /usr/X11R6/lib/libGLU.dll.a)
ENDIF (BUILD_SHARED_LIBS)
ENDIF (CYGWIN)
INCLUDE (${CMAKE_ROOT}/Modules/FindX11.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindGLU.cmake)
INCLUDE (${CMAKE_ROOT}/Modules/FindGLUT.cmake)
IF (CYGWIN)
# this is windows, have our own glut lib in this project...
# --------------------------------------------
# all cygwin libs (GL,GLUT)
SET(GLUT_INCLUDE_DIR "/usr/include")
SET (OPENGL_gl_LIBRARY /lib/w32api/libopengl32.a)
SET (OPENGL_glut_LIBRARY /lib/w32api/libglut32.a)
SET (OPENGL_glu_LIBRARY "")
ADD_DEFINITIONS(-DWIN32)
# SET(GLUT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Utils/glut-win32")
# SET (OPENGL_gl_LIBRARY "") #/lib/w32api/libopengl32.a)
# SET (OPENGL_glut_LIBRARY "") #/lib/w32api/libglut32.a)
# SET (OPENGL_glut_LIBRARY "${CMAKE_CURRENT_SOURCE_DIR}/Utils/glut-win32/glut32.lib")
# SET (OPENGL_glu_LIBRARY "")
##/usr/X11R6/bin/cygGLU-1.dll)
# ADD_DEFINITIONS(-DWIN32)
ENDIF (CYGWIN)
SET(GL_LIBS ${OPENGL_glu_LIBRARY} ${OPENGL_gl_LIBRARY})
MARK_AS_ADVANCED(
GL_LIBS
)
# =============================================================================
# =============================================================================
# whether system supports glMapBuffer() etc, or old-style
# glMapBufferARB(). by default, we assume you have a new opengl
# installation that supports pixel buffer objects natively. if not
# you'll notice early enough....
# =============================================================================
SET(DEFAULT_BUILD_SHARED_LIBS ON)
SET(BUILD_SHARED_LIBS ${DEFAULT_BUILD_SHARED_LIBS} CACHE BOOL "Building shared or static libraries")
SET(CMAKE_VERBOSE_MAKEFILE ON)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
INCLUDE_DIRECTORIES(
${GLUT_INCLUDE_DIR}
${OPENGL_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/RTTL/
${CMAKE_CURRENT_SOURCE_DIR}/RTTL/common/
${CMAKE_CURRENT_BINARY_DIR}/RTTL/common/
# for the auto-generated header file ...
${CMAKE_CURRENT_SOURCE_DIR}/RTTL/BVH/
${CMAKE_CURRENT_SOURCE_DIR}/SG
${CMAKE_CURRENT_SOURCE_DIR}/LRT/include
${CMAKE_CURRENT_SOURCE_DIR}/LRT/
)
IF(NOT WIN32)
SET(ICC_PROCESSOR_FLAG "-xT")
# FIND_PROGRAM(uname_executable NAMES uname PATHS /bin /usr/bin /usr/local/bin)
# IF(uname_executable)
# EXEC_PROGRAM(${uname_executable} ARGS -p OUTPUT_VARIABLE uname_output)
# IF (${uname_output} MATCHES 'Core2')
# SET(ICC_PROCESSOR_FLAG "-xT")
# ELSE (${uname_output} MATCHES 'Core2')
# SET(ICC_PROCESSOR_FLAG "-xT")
# ENDIF(${uname_output} MATCHES 'Core2')
# ENDIF(uname_executable)
ENDIF(NOT WIN32)
#SET(CMAKE_CXX_COMPILER "g++")
#SET(CMAKE_CXX_FLAGS " -Os -fno-strict-aliasing -fno-align-labels -DDEBUG -D_MM_NO_ALIGN_CHECK")
#ADD_LIBRARY(OpenRT SHARED ${OSE_OpenRT_SRCS})
SET(PASSED_FIRST_CONFIGURE ON CACHE INTERNAL "Already Configured once?")
ADD_DEFINITIONS(-D__$(USER)__)
SUBDIRS(
RTTL # core library
LRT # low level ray tracer
MiniView # frontends
)
ADD_EXECUTABLE(test_glut Testing/testglut)
TARGET_LINK_LIBRARIES(test_glut ${GLUT_glut_LIBRARY} ${GL_LIBS} $ENV{LIBS})
#ADD_EXECUTABLE(test_pbo Testing/testpbo)
#TARGET_LINK_LIBRARIES(test_pbo ${GLUT_glut_LIBRARY} ${GL_LIBS} $ENV{LIBS} stdc++)
INSTALL(TARGETS test_glut RUNTIME DESTINATION bin)
#INSTALL(TARGETS test_pbo RUNTIME DESTINATION bin)