Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2011-04-27 15:58:34 +0400
committerTon Roosendaal <ton@blender.org>2011-04-27 15:58:34 +0400
commitda376e0237517543aa21740ee2363234ee1c20ae (patch)
tree014a513ed8d0eccc5e54fef42347781e85bae56a /intern/cycles/cmake
parent693780074388111e7b9ef1c3825e462f398dc6c4 (diff)
Cycles render engine, initial commit. This is the engine itself, blender modifications and build instructions will follow later.
Cycles uses code from some great open source projects, many thanks them: * BVH building and traversal code from NVidia's "Understanding the Efficiency of Ray Traversal on GPUs": http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/ * Open Shading Language for a large part of the shading system: http://code.google.com/p/openshadinglanguage/ * Blender for procedural textures and a few other nodes. * Approximate Catmull Clark subdivision from NVidia Mesh tools: http://code.google.com/p/nvidia-mesh-tools/ * Sobol direction vectors from: http://web.maths.unsw.edu.au/~fkuo/sobol/ * Film response functions from: http://www.cs.columbia.edu/CAVE/software/softlib/dorf.php
Diffstat (limited to 'intern/cycles/cmake')
-rwxr-xr-xintern/cycles/cmake/create_dmg.py14
-rw-r--r--intern/cycles/cmake/external_libs.cmake210
-rw-r--r--intern/cycles/cmake/platforms.cmake27
3 files changed, 251 insertions, 0 deletions
diff --git a/intern/cycles/cmake/create_dmg.py b/intern/cycles/cmake/create_dmg.py
new file mode 100755
index 00000000000..bba7f8d3509
--- /dev/null
+++ b/intern/cycles/cmake/create_dmg.py
@@ -0,0 +1,14 @@
+#!/usr/bin/python
+
+import os
+import string
+import sys
+
+name = string.replace(sys.argv[1], ".zip", "")
+
+os.system("rm -f %s.dmg" % (name))
+os.system("mkdir -p /tmp/cycles_dmg")
+os.system("rm /tmp/cycles_dmg/*")
+os.system("cp %s.zip /tmp/cycles_dmg/" % (name))
+os.system("/usr/bin/hdiutil create -fs HFS+ -srcfolder /tmp/cycles_dmg -volname %s %s.dmg" % (name, name))
+
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
new file mode 100644
index 00000000000..6f6f00ed6bc
--- /dev/null
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -0,0 +1,210 @@
+###########################################################################
+# Boost setup
+
+MESSAGE(STATUS "BOOST_PATH ${BOOST_PATH}")
+SET(BOOST_ROOT ${BOOST_PATH})
+
+SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44"
+ "1.43" "1.43.0" "1.42" "1.42.0"
+ "1.41" "1.41.0" "1.40" "1.40.0"
+ "1.39" "1.39.0" "1.38" "1.38.0"
+ "1.37" "1.37.0" "1.34.1" "1_34_1")
+IF(LINKSTATIC)
+ SET(Boost_USE_STATIC_LIBS ON)
+ENDIF()
+
+SET(Boost_USE_MULTITHREADED ON)
+
+FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system serialization thread)
+
+MESSAGE(STATUS "Boost found ${Boost_FOUND}")
+MESSAGE(STATUS "Boost version ${Boost_VERSION}")
+MESSAGE(STATUS "Boost include dirs ${Boost_INCLUDE_DIRS}")
+MESSAGE(STATUS "Boost library dirs ${Boost_LIBRARY_DIRS}")
+MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}")
+
+INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
+LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}")
+
+IF(WITH_NETWORK)
+ ADD_DEFINITIONS(-DWITH_NETWORK)
+ENDIF()
+
+IF(WITH_MULTI)
+ ADD_DEFINITIONS(-DWITH_MULTI)
+ENDIF()
+
+###########################################################################
+# OpenImageIO
+
+MESSAGE(STATUS "OIIO_PATH = ${OIIO_PATH}")
+
+FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${OIIO_PATH}/lib)
+FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${OIIO_PATH}/include)
+FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${OIIO_PATH}/bin)
+
+IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY)
+ SET(OPENIMAGEIO_FOUND TRUE)
+ MESSAGE(STATUS "OpenImageIO includes = ${OPENIMAGEIO_INCLUDES}")
+ MESSAGE(STATUS "OpenImageIO library = ${OPENIMAGEIO_LIBRARY}")
+ELSE()
+ MESSAGE(STATUS "OpenImageIO not found")
+ENDIF()
+
+ADD_DEFINITIONS(-DWITH_OIIO)
+INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO)
+
+###########################################################################
+# OpenGL
+
+FIND_PACKAGE(OpenGL)
+MESSAGE(STATUS "OPENGL_FOUND=${OPENGL_FOUND}")
+
+INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
+
+###########################################################################
+# GLUT
+
+SET(GLUT_ROOT_PATH ${GLUT_PATH})
+
+FIND_PACKAGE(GLUT)
+MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}")
+
+INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR})
+
+###########################################################################
+# GLEW
+
+SET(GLEW_VERSION 1.5.1)
+FIND_LIBRARY(GLEW_LIBRARIES NAMES GLEW PATHS ${GLEW_PATH}/lib)
+FIND_PATH(GLEW_INCLUDES NAMES glew.h PATH_SUFFIXES GL PATHS ${GLEW_PATH}/include)
+
+IF(GLEW_INCLUDES AND GLEW_LIBRARIES)
+ MESSAGE(STATUS "GLEW includes = ${GLEW_INCLUDES}")
+ MESSAGE(STATUS "GLEW library = ${GLEW_LIBRARIES}")
+ELSE()
+ MESSAGE(STATUS "GLEW not found")
+ENDIF()
+
+INCLUDE_DIRECTORIES("${GLEW_INCLUDES}")
+
+###########################################################################
+# OpenShadingLanguage
+
+IF(WITH_OSL)
+
+ MESSAGE(STATUS "OSL_PATH = ${OSL_PATH}")
+
+ FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${OSL_PATH}/lib)
+ FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${OSL_PATH}/include)
+ FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${OSL_PATH}/bin)
+
+ IF(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
+ SET(OSL_FOUND TRUE)
+ MESSAGE(STATUS "OSL includes = ${OSL_INCLUDES}")
+ MESSAGE(STATUS "OSL library = ${OSL_LIBRARIES}")
+ MESSAGE(STATUS "OSL compiler = ${OSL_COMPILER}")
+ ELSE()
+ MESSAGE(STATUS "OSL not found")
+ ENDIF()
+
+ ADD_DEFINITIONS(-DWITH_OSL)
+ INCLUDE_DIRECTORIES(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec)
+
+ENDIF()
+
+###########################################################################
+# Partio
+
+IF(WITH_PARTIO)
+
+ MESSAGE(STATUS "PARTIO_PATH = ${PARTIO_PATH}")
+
+ FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${PARTIO_PATH}/lib)
+ FIND_PATH(PARTIO_INCLUDES Partio.h ${PARTIO_PATH}/include)
+
+ FIND_PACKAGE(ZLIB)
+
+ IF(PARTIO_INCLUDES AND PARTIO_LIBRARIES AND ZLIB_LIBRARIES)
+ LIST(APPEND PARTIO_LIBRARIES ${ZLIB_LIBRARIES})
+ SET(PARTIO_FOUND TRUE)
+ MESSAGE(STATUS "PARTIO includes = ${PARTIO_INCLUDES}")
+ MESSAGE(STATUS "PARTIO library = ${PARTIO_LIBRARIES}")
+ ELSE()
+ MESSAGE(STATUS "PARTIO not found")
+ ENDIF()
+
+ ADD_DEFINITIONS(-DWITH_PARTIO)
+ INCLUDE_DIRECTORIES(${PARTIO_INCLUDES})
+
+ENDIF()
+
+###########################################################################
+# Python
+
+IF(WITH_BLENDER)
+
+ FIND_PATH(PYTHON_INCLUDE_DIRS Python.h PATHS ${PYTHON_PATH} ${PYTHON_PATH}/include ${PYTHON_PATH}/include/python3.1 ${PYTHON_PATH}/include/python3.2 NO_DEFAULT_PATH)
+ IF(WIN32)
+ FIND_LIBRARY(PYTHON_LIBRARIES NAMES python31 PATHS ${PYTHON_PATH}/lib)
+ ENDIF()
+
+ENDIF()
+
+###########################################################################
+# Blender
+
+IF(WITH_BLENDER)
+ FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${BLENDER_PATH}/include)
+ IF(WIN32)
+ SET(BLENDER_LIBRARIES ${BLENDER_PATH}/bin/Release/blender.lib)
+ ENDIF()
+ENDIF()
+
+###########################################################################
+# CUDA
+
+IF(WITH_CUDA)
+
+ FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CUDA_PATH}/lib ${CUDA_PATH}/lib/Win32 NO_DEFAULT_PATH)
+ FIND_PATH(CUDA_INCLUDES cuda.h ${CUDA_PATH}/include NO_DEFAULT_PATH)
+ FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CUDA_PATH}/bin NO_DEFAULT_PATH)
+
+ IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC)
+ MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}")
+ MESSAGE(STATUS "CUDA library = ${CUDA_LIBRARIES}")
+ MESSAGE(STATUS "CUDA nvcc = ${CUDA_NVCC}")
+ ELSE()
+ MESSAGE(STATUS "CUDA not found")
+ ENDIF()
+
+ ADD_DEFINITIONS(-DWITH_CUDA)
+ INCLUDE_DIRECTORIES(${CUDA_INCLUDES})
+
+ENDIF()
+
+###########################################################################
+# OpenCL
+
+IF(WITH_OPENCL)
+
+ IF(APPLE)
+ SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers")
+ SET(OPENCL_LIBRARIES "-framework OpenCL")
+ ENDIF()
+
+ IF(WIN32)
+ SET(OPENCL_INCLUDES "")
+ SET(OPENCL_LIRBARIES "OpenCL")
+ ENDIF()
+
+ IF(UNIX AND NOT APPLE)
+ SET(OPENCL_INCLUDES ${OPENCL_PATH})
+ SET(OPENCL_LIRBARIES "OpenCL")
+ ENDIF()
+
+ ADD_DEFINITIONS(-DWITH_OPENCL)
+ INCLUDE_DIRECTORIES(${OPENCL_INCLUDES})
+
+ENDIF()
+
diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake
new file mode 100644
index 00000000000..ebc4b01edbc
--- /dev/null
+++ b/intern/cycles/cmake/platforms.cmake
@@ -0,0 +1,27 @@
+
+# Platform specific build flags
+
+SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") # -pedantic
+SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native")
+
+IF(APPLE)
+ SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}")
+ SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
+ SET(PYTHON_MODULE_FLAGS "-undefined dynamic_lookup")
+ENDIF(APPLE)
+
+IF(WIN32)
+ SET(CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast")
+ SET(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
+ SET(PYTHON_MODULE_FLAGS "-DLL")
+ENDIF(WIN32)
+
+IF(UNIX AND NOT APPLE)
+ SET(CMAKE_CXX_FLAGS "${GCC_WARNING_FLAGS} ${GCC_OPTIM_FLAGS}")
+ SET(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
+ SET(PYTHON_MODULE_FLAGS "-fPIC")
+ENDIF(UNIX AND NOT APPLE)
+
+ADD_DEFINITIONS(-DCCL_NAMESPACE_BEGIN=namespace\ ccl\ {)
+ADD_DEFINITIONS(-DCCL_NAMESPACE_END=})
+