Skip to content
Snippets Groups Projects
Commit 774584d7 authored by Brecht Van Lommel's avatar Brecht Van Lommel
Browse files

Cycles: hook up the CMake build system.

New build instructions for Ubuntu Linux in the wiki:
http://wiki.blender.org/index.php/Dev:2.5/Source/Cycles
parent d263fee9
Branches
Tags
No related merge requests found
Showing
with 168 additions and 167 deletions
...@@ -173,6 +173,9 @@ endif() ...@@ -173,6 +173,9 @@ endif()
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON) option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
option(WITH_API_INSTALL "Copy API header files into the blender install folder" ON) option(WITH_API_INSTALL "Copy API header files into the blender install folder" ON)
# Cycles
option(WITH_CYCLES "Enable Cycles Render Engine" ON)
# Debug # Debug
option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF) option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF)
mark_as_advanced(WITH_CXX_GUARDEDALLOC) mark_as_advanced(WITH_CXX_GUARDEDALLOC)
...@@ -1177,13 +1180,19 @@ add_subdirectory(extern) ...@@ -1177,13 +1180,19 @@ add_subdirectory(extern)
# Blender Application # Blender Application
add_subdirectory(source/creator) add_subdirectory(source/creator)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Blender Player # Blender Player
if(WITH_PLAYER) if(WITH_PLAYER)
add_subdirectory(source/blenderplayer) add_subdirectory(source/blenderplayer)
endif() endif()
#-----------------------------------------------------------------------------
# Cycles
if(WITH_CYCLES)
add_subdirectory(intern/cycles)
endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# CPack for generating packages # CPack for generating packages
include(build_files/cmake/packaging.cmake) include(build_files/cmake/packaging.cmake)
...@@ -52,3 +52,4 @@ endif() ...@@ -52,3 +52,4 @@ endif()
if(WITH_IK_ITASC) if(WITH_IK_ITASC)
add_subdirectory(itasc) add_subdirectory(itasc)
endif() endif()
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(cycles)
SET(CYCLES_VERSION_MAJOR 0) SET(CYCLES_VERSION_MAJOR 0)
SET(CYCLES_VERSION_MINOR 0) SET(CYCLES_VERSION_MINOR 0)
SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR}) SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR})
# Options # Options
OPTION(WITH_OSL "Build with Open Shading Language support" OFF) OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF)
OPTION(WITH_CUDA "Build with CUDA support" OFF) OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF)
OPTION(WITH_OPENCL "Build with OpenCL support (not working)" OFF) OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF)
OPTION(WITH_BLENDER "Build Blender Python extension" OFF) OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON)
OPTION(WITH_PARTIO "Build with Partio point cloud support (unfinished)" OFF) OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF)
OPTION(WITH_NETWORK "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_MULTI "Build with network rendering support (unfinished)" OFF) OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_DOCS "Build html documentation" OFF) OPTION(WITH_CYCLES_DOCS "Build html documentation" OFF)
# Flags # Flags
SET(CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for")
SET(CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use") SET(CYCLES_CUDA_ARCH sm_10 sm_11 sm_12 sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build for")
SET(CYCLES_CUDA_MAXREG 24 CACHE STRING "CUDA maximum number of register to use")
# Paths # Paths
SET(OSL_PATH "" CACHE PATH "Path to OpenShadingLanguage installation") SET(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation")
SET(OIIO_PATH "" CACHE PATH "Path to OpenImageIO installation") SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation")
SET(BOOST_PATH "/usr" CACHE PATH "Path to Boost installation") SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation")
SET(CUDA_PATH "/usr/local/cuda" CACHE PATH "Path to CUDA installation") SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation")
SET(OPENCL_PATH "" CACHE PATH "Path to OpenCL installation") SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation")
SET(PYTHON_PATH "" CACHE PATH "Path to Python installation") SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation")
SET(BLENDER_PATH "" CACHE PATH "Path to Blender installation") SET(CYCLES_GLEW "" CACHE PATH "Path to GLUT installation")
SET(PARTIO_PATH "" CACHE PATH "Path to Partio installation")
SET(GLEW_PATH "" CACHE PATH "Path to GLEW installation") # Install, todo: deduplicate install path code
SET(GLUT_PATH "" CACHE PATH "Path to GLUT installation")
SET(INSTALL_PATH "${CMAKE_BINARY_DIR}/install" CACHE PATH "Path to install to") if(MSVC_IDE)
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
elseif(APPLE)
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
else()
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH})
endif()
if(UNIX AND NOT APPLE)
if(WITH_INSTALL_PORTABLE)
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
else()
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/share/blender/${BLENDER_VERSION})
endif()
elseif(WIN32)
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
elseif(APPLE)
set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION})
endif()
SET(CYCLES_INSTALL_PATH "${TARGETDIR_VER}/scripts/addons")
# External Libraries # External Libraries
...@@ -44,9 +63,9 @@ INCLUDE(cmake/platforms.cmake) ...@@ -44,9 +63,9 @@ INCLUDE(cmake/platforms.cmake)
# Subdirectories # Subdirectories
IF(WITH_BLENDER) IF(WITH_CYCLES_BLENDER)
ADD_SUBDIRECTORY(blender) ADD_SUBDIRECTORY(blender)
ENDIF(WITH_BLENDER) ENDIF(WITH_CYCLES_BLENDER)
ADD_SUBDIRECTORY(app) ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(bvh) ADD_SUBDIRECTORY(bvh)
......
INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../bvh ../util ../render ../subd) INCLUDE_DIRECTORIES(
.
../device
../kernel
../kernel/svm
../bvh
../util
../render
../subd)
SET(LIBRARIES SET(LIBRARIES
device cycles_device
kernel cycles_kernel
render cycles_render
bvh cycles_bvh
subd cycles_subd
util cycles_util
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARIES} ${GLEW_LIBRARY}
${OPENIMAGEIO_LIBRARY} ${OPENIMAGEIO_LIBRARY}
${GLUT_LIBRARIES}) ${GLUT_LIBRARIES})
IF(WITH_OSL) IF(WITH_CYCLES_OSL)
LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES})
ENDIF(WITH_OSL) ENDIF()
IF(WITH_PARTIO) IF(WITH_CYCLES_PARTIO)
LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES})
ENDIF(WITH_PARTIO) ENDIF()
IF(WITH_OPENCL) IF(WITH_CYCLES_OPENCL)
LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES})
ENDIF(WITH_OPENCL) ENDIF()
ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h) ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h)
TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES}) TARGET_LINK_LIBRARIES(cycles_test ${LIBRARIES})
INSTALL(TARGETS cycles_test DESTINATION ${INSTALL_PATH}/cycles) INSTALL(TARGETS cycles_test DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib) SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib)
ENDIF() ENDIF()
IF(WITH_NETWORK) IF(WITH_CYCLES_NETWORK)
ADD_EXECUTABLE(cycles_server cycles_server.cpp) ADD_EXECUTABLE(cycles_server cycles_server.cpp)
TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES}) TARGET_LINK_LIBRARIES(cycles_server ${LIBRARIES})
INSTALL(TARGETS cycles_server DESTINATION ${INSTALL_PATH}/cycles) INSTALL(TARGETS cycles_server DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib)
ENDIF() ENDIF()
ENDIF() ENDIF()
INSTALL(CODE "FILE(MAKE_DIRECTORY ${INSTALL_PATH}/cycles/cache)")
...@@ -185,7 +185,7 @@ static void options_parse(int argc, const char **argv) ...@@ -185,7 +185,7 @@ static void options_parse(int argc, const char **argv)
{ {
options.width= 1024; options.width= 1024;
options.height= 512; options.height= 512;
options.filepath = path_get("../../../test/models/elephants.xml"); options.filepath = "";
options.session = NULL; options.session = NULL;
options.quiet = false; options.quiet = false;
......
...@@ -32,12 +32,12 @@ INCLUDE_DIRECTORIES( ...@@ -32,12 +32,12 @@ INCLUDE_DIRECTORIES(
${PYTHON_INCLUDE_DIRS}) ${PYTHON_INCLUDE_DIRS})
SET(LIBRARIES SET(LIBRARIES
render cycles_render
bvh cycles_bvh
device cycles_device
kernel cycles_kernel
util cycles_util
subd cycles_subd
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${OPENIMAGEIO_LIBRARY} ${OPENIMAGEIO_LIBRARY}
...@@ -46,25 +46,25 @@ SET(LIBRARIES ...@@ -46,25 +46,25 @@ SET(LIBRARIES
${GLEW_LIBRARIES} ${GLEW_LIBRARIES}
${BLENDER_LIBRARIES}) ${BLENDER_LIBRARIES})
IF(WITH_OSL) IF(WITH_CYCLES_OSL)
LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES}) LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES})
ENDIF(WITH_OSL) ENDIF()
IF(WITH_PARTIO) IF(WITH_CYCLES_PARTIO)
LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES}) LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES})
ENDIF(WITH_PARTIO) ENDIF()
IF(WITH_OPENCL) IF(WITH_CYCLES_OPENCL)
LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES}) LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES})
ENDIF(WITH_OPENCL) ENDIF()
SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS}) SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS})
ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers}) ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers})
TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES}) TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES})
INSTALL(FILES ${addonfiles} DESTINATION ${INSTALL_PATH}/cycles) INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${INSTALL_PATH}/cycles) INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib) SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib)
......
...@@ -14,5 +14,5 @@ SET(headers ...@@ -14,5 +14,5 @@ SET(headers
bvh_params.h bvh_params.h
bvh_sort.h) bvh_sort.h)
ADD_LIBRARY(bvh ${sources} ${headers}) ADD_LIBRARY(cycles_bvh ${sources} ${headers})
#!/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))
########################################################################### ###########################################################################
# Boost setup # Boost setup
MESSAGE(STATUS "BOOST_PATH ${BOOST_PATH}") MESSAGE(STATUS "CYCLES_BOOST ${CYCLES_BOOST}")
SET(BOOST_ROOT ${BOOST_PATH}) SET(BOOST_ROOT ${CYCLES_BOOST})
SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44" SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44"
"1.43" "1.43.0" "1.42" "1.42.0" "1.43" "1.43.0" "1.42" "1.42.0"
...@@ -26,22 +26,22 @@ MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}") ...@@ -26,22 +26,22 @@ MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}")
INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}") INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}") LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}")
IF(WITH_NETWORK) IF(WITH_CYCLES_NETWORK)
ADD_DEFINITIONS(-DWITH_NETWORK) ADD_DEFINITIONS(-DWITH_NETWORK)
ENDIF() ENDIF()
IF(WITH_MULTI) IF(WITH_CYCLES_MULTI)
ADD_DEFINITIONS(-DWITH_MULTI) ADD_DEFINITIONS(-DWITH_MULTI)
ENDIF() ENDIF()
########################################################################### ###########################################################################
# OpenImageIO # OpenImageIO
MESSAGE(STATUS "OIIO_PATH = ${OIIO_PATH}") MESSAGE(STATUS "CYCLES_OIIO = ${CYCLES_OIIO}")
FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${OIIO_PATH}/lib) FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib)
FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${OIIO_PATH}/include) FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include)
FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${OIIO_PATH}/bin) FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin)
IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY) IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY)
SET(OPENIMAGEIO_FOUND TRUE) SET(OPENIMAGEIO_FOUND TRUE)
...@@ -54,50 +54,26 @@ ENDIF() ...@@ -54,50 +54,26 @@ ENDIF()
ADD_DEFINITIONS(-DWITH_OIIO) ADD_DEFINITIONS(-DWITH_OIIO)
INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO) INCLUDE_DIRECTORIES(${OPENIMAGEIO_INCLUDES} ${OPENIMAGEIO_INCLUDES}/OpenImageIO)
###########################################################################
# OpenGL
FIND_PACKAGE(OpenGL)
MESSAGE(STATUS "OPENGL_FOUND=${OPENGL_FOUND}")
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
########################################################################### ###########################################################################
# GLUT # GLUT
SET(GLUT_ROOT_PATH ${GLUT_PATH}) SET(GLUT_ROOT_PATH ${CYCLES_GLUT})
FIND_PACKAGE(GLUT) FIND_PACKAGE(GLUT)
MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}")
INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) 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 # OpenShadingLanguage
IF(WITH_OSL) IF(WITH_CYCLES_OSL)
MESSAGE(STATUS "OSL_PATH = ${OSL_PATH}") MESSAGE(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${OSL_PATH}/lib) FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib)
FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${OSL_PATH}/include) FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${CYCLES_OSL}/include)
FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${OSL_PATH}/bin) FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
IF(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER) IF(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
SET(OSL_FOUND TRUE) SET(OSL_FOUND TRUE)
...@@ -116,12 +92,12 @@ ENDIF() ...@@ -116,12 +92,12 @@ ENDIF()
########################################################################### ###########################################################################
# Partio # Partio
IF(WITH_PARTIO) IF(WITH_CYCLES_PARTIO)
MESSAGE(STATUS "PARTIO_PATH = ${PARTIO_PATH}") MESSAGE(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}")
FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${PARTIO_PATH}/lib) FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib)
FIND_PATH(PARTIO_INCLUDES Partio.h ${PARTIO_PATH}/include) FIND_PATH(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include)
FIND_PACKAGE(ZLIB) FIND_PACKAGE(ZLIB)
...@@ -139,36 +115,24 @@ IF(WITH_PARTIO) ...@@ -139,36 +115,24 @@ IF(WITH_PARTIO)
ENDIF() 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 # Blender
IF(WITH_BLENDER) IF(WITH_CYCLES_BLENDER)
FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${BLENDER_PATH}/include) FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include)
IF(WIN32) IF(WIN32)
SET(BLENDER_LIBRARIES ${BLENDER_PATH}/bin/Release/blender.lib) SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/Release/blender.lib)
ENDIF() ENDIF()
ENDIF() ENDIF()
########################################################################### ###########################################################################
# CUDA # CUDA
IF(WITH_CUDA) IF(WITH_CYCLES_CUDA)
FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CUDA_PATH}/lib ${CUDA_PATH}/lib/Win32 NO_DEFAULT_PATH) FIND_LIBRARY(CUDA_LIBRARIES NAMES cuda PATHS ${CYCLES_CUDA}/lib ${CYCLES_CUDA}/lib/Win32 NO_DEFAULT_PATH)
FIND_PATH(CUDA_INCLUDES cuda.h ${CUDA_PATH}/include NO_DEFAULT_PATH) FIND_PATH(CUDA_INCLUDES cuda.h ${CYCLES_CUDA}/include NO_DEFAULT_PATH)
FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CUDA_PATH}/bin NO_DEFAULT_PATH) FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CYCLES_CUDA}/bin NO_DEFAULT_PATH)
IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC) IF(CUDA_INCLUDES AND CUDA_LIBRARIES AND CUDA_NVCC)
MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}") MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}")
...@@ -186,7 +150,7 @@ ENDIF() ...@@ -186,7 +150,7 @@ ENDIF()
########################################################################### ###########################################################################
# OpenCL # OpenCL
IF(WITH_OPENCL) IF(WITH_CYCLES_OPENCL)
IF(APPLE) IF(APPLE)
SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers") SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers")
...@@ -199,7 +163,7 @@ IF(WITH_OPENCL) ...@@ -199,7 +163,7 @@ IF(WITH_OPENCL)
ENDIF() ENDIF()
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET(OPENCL_INCLUDES ${OPENCL_PATH}) SET(OPENCL_INCLUDES ${CYCLES_OPENCL})
SET(OPENCL_LIRBARIES "OpenCL") SET(OPENCL_LIRBARIES "OpenCL")
ENDIF() ENDIF()
......
# Platform specific build flags # Platform specific build flags
SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long") # -pedantic SET(GCC_WARNING_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-long-long")
SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native") SET(GCC_OPTIM_FLAGS "-ffast-math -fPIC -msse -msse2 -msse3 -mtune=native")
IF(APPLE) IF(APPLE)
......
INCLUDE_DIRECTORIES(. ../kernel ../kernel/svm ../kernel/osl ../util ../render) INCLUDE_DIRECTORIES(
.
../kernel
../kernel/svm
../kernel/osl
../util
../render
${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR})
SET(sources SET(sources
device.cpp device.cpp
...@@ -14,5 +22,5 @@ SET(headers ...@@ -14,5 +22,5 @@ SET(headers
device_intern.h device_intern.h
device_network.h) device_network.h)
ADD_LIBRARY(device ${sources} ${headers}) ADD_LIBRARY(cycles_device ${sources} ${headers})
INSTALL(DIRECTORY license DESTINATION ${INSTALL_PATH}/cycles) INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".svn" EXCLUDE)
SET(doc_sources SET(doc_sources
index.html index.html
...@@ -76,12 +76,12 @@ SET(doc_templates ...@@ -76,12 +76,12 @@ SET(doc_templates
templates/nodes.html templates/nodes.html
templates/reference.html) templates/reference.html)
IF(WITH_DOCS) IF(WITH_CYCLES_DOCS)
MACRO(install_doc_file source_file html_file) MACRO(install_doc_file source_file html_file)
GET_FILENAME_COMPONENT(subdir ${source_file} PATH) GET_FILENAME_COMPONENT(subdir ${source_file} PATH)
INSTALL( INSTALL(
FILES ${html_file} FILES ${html_file}
DESTINATION ${INSTALL_PATH}/cycles/doc/${subdir}) DESTINATION ${CYCLES_INSTALL_PATH}/cycles/doc/${subdir})
ENDMACRO() ENDMACRO()
FOREACH(_file ${doc_sources}) FOREACH(_file ${doc_sources})
...@@ -100,6 +100,6 @@ IF(WITH_DOCS) ...@@ -100,6 +100,6 @@ IF(WITH_DOCS)
install_doc_file(${_file} ${_file}) install_doc_file(${_file} ${_file})
ENDFOREACH() ENDFOREACH()
ADD_CUSTOM_TARGET(doc ALL DEPENDS ${html_files}) ADD_CUSTOM_TARGET(cycles_doc ALL DEPENDS ${html_files})
ENDIF() ENDIF()
...@@ -71,34 +71,38 @@ SET(headers ...@@ -71,34 +71,38 @@ SET(headers
# CUDA module # CUDA module
IF(WITH_CUDA) IF(WITH_CYCLES_CUDA)
SET(cuda_sources kernel.cu ${headers}) SET(cuda_sources kernel.cu ${headers})
SET(cuda_cubins) SET(cuda_cubins)
FOREACH(arch ${CUDA_ARCH}) FOREACH(arch ${CYCLES_CUDA_ARCH})
SET(cuda_cubin kernel_${arch}.cubin) SET(cuda_cubin kernel_${arch}.cubin)
ADD_CUSTOM_COMMAND( ADD_CUSTOM_COMMAND(
OUTPUT ${cuda_cubin} OUTPUT ${cuda_cubin}
COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END= COMMAND ${CUDA_NVCC} -arch=${arch} -m64 --cubin ${CMAKE_CURRENT_SOURCE_DIR}/kernel.cu --use_fast_math -o ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} --ptxas-options="-v" --maxrregcount=${CYCLES_CUDA_MAXREG} --opencc-options -OPT:Olimit=0 -I${CMAKE_CURRENT_SOURCE_DIR}/../util -I${CMAKE_CURRENT_SOURCE_DIR}/svm -DCCL_NAMESPACE_BEGIN= -DCCL_NAMESPACE_END=
DEPENDS ${cuda_sources}) DEPENDS ${cuda_sources})
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${INSTALL_PATH}/cycles/lib) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${cuda_cubin} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/lib)
LIST(APPEND cuda_cubins ${cuda_cubin}) LIST(APPEND cuda_cubins ${cuda_cubin})
ENDFOREACH() ENDFOREACH()
ADD_CUSTOM_TARGET(kernel_cuda ALL DEPENDS ${cuda_cubins}) ADD_CUSTOM_TARGET(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins})
ENDIF(WITH_CUDA) ENDIF()
# OSL module # OSL module
IF(WITH_OSL) IF(WITH_CYCLES_OSL)
ADD_SUBDIRECTORY(osl) ADD_SUBDIRECTORY(osl)
ENDIF(WITH_OSL) ENDIF()
# CPU module # CPU module
INCLUDE_DIRECTORIES(. ../util osl svm) INCLUDE_DIRECTORIES(. ../util osl svm)
ADD_LIBRARY(kernel ${sources} ${headers}) ADD_LIBRARY(cycles_kernel ${sources} ${headers})
IF(WITH_CYCLES_CUDA)
add_dependencies(cycles_kernel cycles_kernel_cuda)
ENDIF()
...@@ -217,8 +217,7 @@ typedef struct ShaderData { ...@@ -217,8 +217,7 @@ typedef struct ShaderData {
/* primitive id if there is one, ~0 otherwise */ /* primitive id if there is one, ~0 otherwise */
int prim; int prim;
/* parametric coordinates /* parametric coordinates
* - barycentric weights for triangles * - barycentric weights for triangles */
* - latlong coordinates for background */
float u, v; float u, v;
/* object id if there is one, ~0 otherwise */ /* object id if there is one, ~0 otherwise */
int object; int object;
......
...@@ -65,5 +65,5 @@ ENDFOREACH() ...@@ -65,5 +65,5 @@ ENDFOREACH()
ADD_CUSTOM_TARGET(shader ALL DEPENDS ${oso_sources} ${osl_headers}) ADD_CUSTOM_TARGET(shader ALL DEPENDS ${oso_sources} ${osl_headers})
INSTALL(FILES ${oso_sources} DESTINATION ${INSTALL_PATH}/cycles/shader) INSTALL(FILES ${oso_sources} DESTINATION ${CYCLES_INSTALL_PATH}/cycles/shader)
...@@ -50,5 +50,5 @@ SET(headers ...@@ -50,5 +50,5 @@ SET(headers
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}")
ADD_LIBRARY(render ${sources} ${headers}) ADD_LIBRARY(cycles_render ${sources} ${headers})
...@@ -22,5 +22,5 @@ SET(headers ...@@ -22,5 +22,5 @@ SET(headers
subd_stencil.h subd_stencil.h
subd_vert.h) subd_vert.h)
ADD_LIBRARY(subd ${sources} ${headers}) ADD_LIBRARY(cycles_subd ${sources} ${headers})
INCLUDE_DIRECTORIES(.) INCLUDE_DIRECTORIES(
.
${GLEW_INCLUDE_PATH}
${OPENGL_INCLUDE_DIR})
SET(sources SET(sources
util_cache.cpp util_cache.cpp
...@@ -43,5 +46,5 @@ SET(headers ...@@ -43,5 +46,5 @@ SET(headers
util_vector.h util_vector.h
util_xml.h) util_xml.h)
ADD_LIBRARY(util ${sources} ${headers}) ADD_LIBRARY(cycles_util ${sources} ${headers})
...@@ -129,13 +129,15 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) ...@@ -129,13 +129,15 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4])
Transform transform_inverse(const Transform& tfm) Transform transform_inverse(const Transform& tfm)
{ {
Transform R = transform_identity(); union { Transform T; float M[4][4]; } R, M;
Transform M = tfm;
if(!transform_matrix4_gj_inverse((float(*)[4])&R, (float(*)[4])&M)) R.T = transform_identity();
M.T = tfm;
if(!transform_matrix4_gj_inverse(R.M, M.M))
return transform_identity(); return transform_identity();
return R; return R.T;
} }
CCL_NAMESPACE_END CCL_NAMESPACE_END
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment