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
This commit is contained in:
Brecht Van Lommel 2011-04-28 13:47:27 +00:00
parent d263fee952
commit 774584d7e8
19 changed files with 168 additions and 167 deletions

@ -173,6 +173,9 @@ endif()
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)
# Cycles
option(WITH_CYCLES "Enable Cycles Render Engine" ON)
# Debug
option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF)
mark_as_advanced(WITH_CXX_GUARDEDALLOC)
@ -1177,13 +1180,19 @@ add_subdirectory(extern)
# Blender Application
add_subdirectory(source/creator)
#-----------------------------------------------------------------------------
# Blender Player
if(WITH_PLAYER)
add_subdirectory(source/blenderplayer)
endif()
#-----------------------------------------------------------------------------
# Cycles
if(WITH_CYCLES)
add_subdirectory(intern/cycles)
endif()
#-----------------------------------------------------------------------------
# CPack for generating packages
include(build_files/cmake/packaging.cmake)

@ -52,3 +52,4 @@ endif()
if(WITH_IK_ITASC)
add_subdirectory(itasc)
endif()

@ -1,38 +1,57 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(cycles)
SET(CYCLES_VERSION_MAJOR 0)
SET(CYCLES_VERSION_MINOR 0)
SET(CYCLES_VERSION ${CYCLES_VERSION_MAJOR}.${CYCLES_VERSION_MINOR})
# Options
OPTION(WITH_OSL "Build with Open Shading Language support" OFF)
OPTION(WITH_CUDA "Build with CUDA support" OFF)
OPTION(WITH_OPENCL "Build with OpenCL support (not working)" OFF)
OPTION(WITH_BLENDER "Build Blender Python extension" OFF)
OPTION(WITH_PARTIO "Build with Partio point cloud support (unfinished)" OFF)
OPTION(WITH_NETWORK "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_MULTI "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_DOCS "Build html documentation" OFF)
OPTION(WITH_CYCLES_OSL "Build with Open Shading Language support" OFF)
OPTION(WITH_CYCLES_CUDA "Build with CUDA support" OFF)
OPTION(WITH_CYCLES_OPENCL "Build with OpenCL support (not working)" OFF)
OPTION(WITH_CYCLES_BLENDER "Build Blender Python extension" ON)
OPTION(WITH_CYCLES_PARTIO "Build with Partio point cloud support (unfinished)" OFF)
OPTION(WITH_CYCLES_NETWORK "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_CYCLES_MULTI "Build with network rendering support (unfinished)" OFF)
OPTION(WITH_CYCLES_DOCS "Build html documentation" OFF)
# 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
SET(OSL_PATH "" CACHE PATH "Path to OpenShadingLanguage installation")
SET(OIIO_PATH "" CACHE PATH "Path to OpenImageIO installation")
SET(BOOST_PATH "/usr" CACHE PATH "Path to Boost installation")
SET(CUDA_PATH "/usr/local/cuda" CACHE PATH "Path to CUDA installation")
SET(OPENCL_PATH "" CACHE PATH "Path to OpenCL installation")
SET(PYTHON_PATH "" CACHE PATH "Path to Python installation")
SET(BLENDER_PATH "" CACHE PATH "Path to Blender installation")
SET(PARTIO_PATH "" CACHE PATH "Path to Partio installation")
SET(GLEW_PATH "" CACHE PATH "Path to GLEW installation")
SET(GLUT_PATH "" CACHE PATH "Path to GLUT installation")
SET(INSTALL_PATH "${CMAKE_BINARY_DIR}/install" CACHE PATH "Path to install to")
SET(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation")
SET(CYCLES_OIIO "" CACHE PATH "Path to OpenImageIO installation")
SET(CYCLES_BOOST "/usr" CACHE PATH "Path to Boost installation")
SET(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation")
SET(CYCLES_OPENCL "" CACHE PATH "Path to OpenCL installation")
SET(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation")
SET(CYCLES_GLEW "" CACHE PATH "Path to GLUT installation")
# Install, todo: deduplicate install path code
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
@ -44,9 +63,9 @@ INCLUDE(cmake/platforms.cmake)
# Subdirectories
IF(WITH_BLENDER)
IF(WITH_CYCLES_BLENDER)
ADD_SUBDIRECTORY(blender)
ENDIF(WITH_BLENDER)
ENDIF(WITH_CYCLES_BLENDER)
ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(bvh)

@ -1,48 +1,54 @@
INCLUDE_DIRECTORIES(. ../device ../kernel ../kernel/svm ../bvh ../util ../render ../subd)
INCLUDE_DIRECTORIES(
.
../device
../kernel
../kernel/svm
../bvh
../util
../render
../subd)
SET(LIBRARIES
device
kernel
render
bvh
subd
util
cycles_device
cycles_kernel
cycles_render
cycles_bvh
cycles_subd
cycles_util
${Boost_LIBRARIES}
${OPENGL_LIBRARIES}
${GLEW_LIBRARIES}
${GLEW_LIBRARY}
${OPENIMAGEIO_LIBRARY}
${GLUT_LIBRARIES})
IF(WITH_OSL)
LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES})
ENDIF(WITH_OSL)
IF(WITH_CYCLES_OSL)
LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES})
ENDIF()
IF(WITH_PARTIO)
IF(WITH_CYCLES_PARTIO)
LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES})
ENDIF(WITH_PARTIO)
ENDIF()
IF(WITH_OPENCL)
IF(WITH_CYCLES_OPENCL)
LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES})
ENDIF(WITH_OPENCL)
ENDIF()
ADD_EXECUTABLE(cycles_test cycles_test.cpp cycles_xml.cpp cycles_xml.h)
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)
SET_TARGET_PROPERTIES(cycles_test PROPERTIES INSTALL_RPATH $ORIGIN/lib)
ENDIF()
IF(WITH_NETWORK)
IF(WITH_CYCLES_NETWORK)
ADD_EXECUTABLE(cycles_server cycles_server.cpp)
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)
SET_TARGET_PROPERTIES(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib)
ENDIF()
ENDIF()
INSTALL(CODE "FILE(MAKE_DIRECTORY ${INSTALL_PATH}/cycles/cache)")

@ -185,7 +185,7 @@ static void options_parse(int argc, const char **argv)
{
options.width= 1024;
options.height= 512;
options.filepath = path_get("../../../test/models/elephants.xml");
options.filepath = "";
options.session = NULL;
options.quiet = false;

@ -32,12 +32,12 @@ INCLUDE_DIRECTORIES(
${PYTHON_INCLUDE_DIRS})
SET(LIBRARIES
render
bvh
device
kernel
util
subd
cycles_render
cycles_bvh
cycles_device
cycles_kernel
cycles_util
cycles_subd
${Boost_LIBRARIES}
${OPENGL_LIBRARIES}
${OPENIMAGEIO_LIBRARY}
@ -46,25 +46,25 @@ SET(LIBRARIES
${GLEW_LIBRARIES}
${BLENDER_LIBRARIES})
IF(WITH_OSL)
LIST(APPEND LIBRARIES kernel_osl ${OSL_LIBRARIES})
ENDIF(WITH_OSL)
IF(WITH_CYCLES_OSL)
LIST(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES})
ENDIF()
IF(WITH_PARTIO)
IF(WITH_CYCLES_PARTIO)
LIST(APPEND LIBRARIES ${PARTIO_LIBRARIES})
ENDIF(WITH_PARTIO)
ENDIF()
IF(WITH_OPENCL)
IF(WITH_CYCLES_OPENCL)
LIST(APPEND LIBRARIES ${OPENCL_LIBRARIES})
ENDIF(WITH_OPENCL)
ENDIF()
SET(CMAKE_MODULE_LINKER_FLAGS ${PYTHON_MODULE_FLAGS})
ADD_LIBRARY(cycles_blender MODULE ${sources} ${headers})
TARGET_LINK_LIBRARIES(cycles_blender ${LIBRARIES})
INSTALL(FILES ${addonfiles} DESTINATION ${INSTALL_PATH}/cycles)
INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${INSTALL_PATH}/cycles)
INSTALL(FILES ${addonfiles} DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
INSTALL(TARGETS cycles_blender LIBRARY DESTINATION ${CYCLES_INSTALL_PATH}/cycles)
IF(UNIX AND NOT APPLE)
SET_TARGET_PROPERTIES(cycles_blender PROPERTIES INSTALL_RPATH $ORIGIN/lib)

@ -14,5 +14,5 @@ SET(headers
bvh_params.h
bvh_sort.h)
ADD_LIBRARY(bvh ${sources} ${headers})
ADD_LIBRARY(cycles_bvh ${sources} ${headers})

@ -1,14 +0,0 @@
#!/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))

@ -1,8 +1,8 @@
###########################################################################
# Boost setup
MESSAGE(STATUS "BOOST_PATH ${BOOST_PATH}")
SET(BOOST_ROOT ${BOOST_PATH})
MESSAGE(STATUS "CYCLES_BOOST ${CYCLES_BOOST}")
SET(BOOST_ROOT ${CYCLES_BOOST})
SET(Boost_ADDITIONAL_VERSIONS "1.45" "1.44"
"1.43" "1.43.0" "1.42" "1.42.0"
@ -26,22 +26,22 @@ MESSAGE(STATUS "Boost libraries ${Boost_LIBRARIES}")
INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
LINK_DIRECTORIES("${Boost_LIBRARY_DIRS}")
IF(WITH_NETWORK)
IF(WITH_CYCLES_NETWORK)
ADD_DEFINITIONS(-DWITH_NETWORK)
ENDIF()
IF(WITH_MULTI)
IF(WITH_CYCLES_MULTI)
ADD_DEFINITIONS(-DWITH_MULTI)
ENDIF()
###########################################################################
# OpenImageIO
MESSAGE(STATUS "OIIO_PATH = ${OIIO_PATH}")
MESSAGE(STATUS "CYCLES_OIIO = ${CYCLES_OIIO}")
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)
FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib)
FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h ${CYCLES_OIIO}/include)
FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin)
IF(OPENIMAGEIO_INCLUDES AND OPENIMAGEIO_LIBRARY)
SET(OPENIMAGEIO_FOUND TRUE)
@ -54,50 +54,26 @@ 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})
SET(GLUT_ROOT_PATH ${CYCLES_GLUT})
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)
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_PATH(OSL_INCLUDES OSL/oslclosure.h ${OSL_PATH}/include)
FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${OSL_PATH}/bin)
FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib)
FIND_PATH(OSL_INCLUDES OSL/oslclosure.h ${CYCLES_OSL}/include)
FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
IF(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
SET(OSL_FOUND TRUE)
@ -116,12 +92,12 @@ ENDIF()
###########################################################################
# 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_PATH(PARTIO_INCLUDES Partio.h ${PARTIO_PATH}/include)
FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib)
FIND_PATH(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include)
FIND_PACKAGE(ZLIB)
@ -139,36 +115,24 @@ IF(WITH_PARTIO)
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(WITH_CYCLES_BLENDER)
FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include)
IF(WIN32)
SET(BLENDER_LIBRARIES ${BLENDER_PATH}/bin/Release/blender.lib)
SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/Release/blender.lib)
ENDIF()
ENDIF()
###########################################################################
# 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_PATH(CUDA_INCLUDES cuda.h ${CUDA_PATH}/include NO_DEFAULT_PATH)
FIND_PROGRAM(CUDA_NVCC NAMES nvcc PATHS ${CUDA_PATH}/bin 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 ${CYCLES_CUDA}/include 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)
MESSAGE(STATUS "CUDA includes = ${CUDA_INCLUDES}")
@ -186,7 +150,7 @@ ENDIF()
###########################################################################
# OpenCL
IF(WITH_OPENCL)
IF(WITH_CYCLES_OPENCL)
IF(APPLE)
SET(OPENCL_INCLUDES "/System/Library/Frameworks/OpenCL.framework/Headers")
@ -199,7 +163,7 @@ IF(WITH_OPENCL)
ENDIF()
IF(UNIX AND NOT APPLE)
SET(OPENCL_INCLUDES ${OPENCL_PATH})
SET(OPENCL_INCLUDES ${CYCLES_OPENCL})
SET(OPENCL_LIRBARIES "OpenCL")
ENDIF()

@ -1,7 +1,7 @@
# 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")
IF(APPLE)

@ -1,5 +1,13 @@
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
device.cpp
@ -14,5 +22,5 @@ SET(headers
device_intern.h
device_network.h)
ADD_LIBRARY(device ${sources} ${headers})
ADD_LIBRARY(cycles_device ${sources} ${headers})

@ -1,5 +1,5 @@
INSTALL(DIRECTORY license DESTINATION ${INSTALL_PATH}/cycles)
INSTALL(DIRECTORY license DESTINATION ${CYCLES_INSTALL_PATH}/cycles PATTERN ".svn" EXCLUDE)
SET(doc_sources
index.html
@ -76,12 +76,12 @@ SET(doc_templates
templates/nodes.html
templates/reference.html)
IF(WITH_DOCS)
IF(WITH_CYCLES_DOCS)
MACRO(install_doc_file source_file html_file)
GET_FILENAME_COMPONENT(subdir ${source_file} PATH)
INSTALL(
FILES ${html_file}
DESTINATION ${INSTALL_PATH}/cycles/doc/${subdir})
DESTINATION ${CYCLES_INSTALL_PATH}/cycles/doc/${subdir})
ENDMACRO()
FOREACH(_file ${doc_sources})
@ -100,6 +100,6 @@ IF(WITH_DOCS)
install_doc_file(${_file} ${_file})
ENDFOREACH()
ADD_CUSTOM_TARGET(doc ALL DEPENDS ${html_files})
ADD_CUSTOM_TARGET(cycles_doc ALL DEPENDS ${html_files})
ENDIF()

@ -71,34 +71,38 @@ SET(headers
# CUDA module
IF(WITH_CUDA)
IF(WITH_CYCLES_CUDA)
SET(cuda_sources kernel.cu ${headers})
SET(cuda_cubins)
FOREACH(arch ${CUDA_ARCH})
FOREACH(arch ${CYCLES_CUDA_ARCH})
SET(cuda_cubin kernel_${arch}.cubin)
ADD_CUSTOM_COMMAND(
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})
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})
ENDFOREACH()
ADD_CUSTOM_TARGET(kernel_cuda ALL DEPENDS ${cuda_cubins})
ENDIF(WITH_CUDA)
ADD_CUSTOM_TARGET(cycles_kernel_cuda ALL DEPENDS ${cuda_cubins})
ENDIF()
# OSL module
IF(WITH_OSL)
IF(WITH_CYCLES_OSL)
ADD_SUBDIRECTORY(osl)
ENDIF(WITH_OSL)
ENDIF()
# CPU module
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 {
/* primitive id if there is one, ~0 otherwise */
int prim;
/* parametric coordinates
* - barycentric weights for triangles
* - latlong coordinates for background */
* - barycentric weights for triangles */
float u, v;
/* object id if there is one, ~0 otherwise */
int object;

@ -65,5 +65,5 @@ ENDFOREACH()
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
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
subd_stencil.h
subd_vert.h)
ADD_LIBRARY(subd ${sources} ${headers})
ADD_LIBRARY(cycles_subd ${sources} ${headers})

@ -1,5 +1,8 @@
INCLUDE_DIRECTORIES(.)
INCLUDE_DIRECTORIES(
.
${GLEW_INCLUDE_PATH}
${OPENGL_INCLUDE_DIR})
SET(sources
util_cache.cpp
@ -43,5 +46,5 @@ SET(headers
util_vector.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])
Transform transform_inverse(const Transform& tfm)
{
Transform R = transform_identity();
Transform M = tfm;
union { Transform T; float M[4][4]; } R, M;
R.T = transform_identity();
M.T = tfm;
if(!transform_matrix4_gj_inverse((float(*)[4])&R, (float(*)[4])&M))
if(!transform_matrix4_gj_inverse(R.M, M.M))
return transform_identity();
return R;
return R.T;
}
CCL_NAMESPACE_END