From 360fcd73fe2868ba32c65697e21ed1bbab8b649a Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Aug 2011 16:15:34 +0000 Subject: Cycles: * add some (disabled) test code for using OpenImageIO in imbuf * link cycles, openimageio and boost into blender instead of a shared library * some cmakefile changes to simplify the code and follow conventions better * this may solve running cycles problems on windows XP, or give a different and hopefully more useful error message --- intern/cycles/cmake/external_libs.cmake | 254 ++++++++++---------------------- intern/cycles/cmake/platforms.cmake | 27 ---- 2 files changed, 80 insertions(+), 201 deletions(-) delete mode 100644 intern/cycles/cmake/platforms.cmake (limited to 'intern/cycles/cmake') diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake index 6da71c8235f..01f3cc1af0d 100644 --- a/intern/cycles/cmake/external_libs.cmake +++ b/intern/cycles/cmake/external_libs.cmake @@ -1,227 +1,133 @@ -########################################################################### -# Windows and Darwin lib directory libraries - -IF(WIN32) - IF(CMAKE_CL_64) - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64) - ELSE() - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows) - ENDIF() -ENDIF() - -IF(APPLE) - SET(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin-9.x.universal) - SET(OIIO_STATIC ON) -ENDIF() - -IF(LIBDIR) - SET(CYCLES_OIIO ${LIBDIR}/openimageio) - SET(CYCLES_BOOST ${LIBDIR}/boost) - SET(Boost_USE_STATIC_LIBS ON) -ENDIF() - -########################################################################### -# Boost setup - -SET(BOOST_ROOT ${CYCLES_BOOST}) - -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") - -SET(Boost_USE_MULTITHREADED ON) - -FIND_PACKAGE(Boost 1.34 REQUIRED COMPONENTS filesystem regex system 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}") - -ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB) - -IF(WITH_CYCLES_NETWORK) - ADD_DEFINITIONS(-DWITH_NETWORK) -ENDIF() - -IF(WITH_CYCLES_MULTI) - ADD_DEFINITIONS(-DWITH_MULTI) -ENDIF() - -########################################################################### -# OpenImageIO - -FIND_LIBRARY(OPENIMAGEIO_LIBRARY NAMES OpenImageIO PATHS ${CYCLES_OIIO}/lib ${CYCLES_OIIO}/dist) -FIND_PATH(OPENIMAGEIO_INCLUDES OpenImageIO/imageio.h PATHS ${CYCLES_OIIO}/include ${CYCLES_OIIO}/dist) -FIND_PROGRAM(OPENIMAGEIO_IDIFF NAMES idiff PATHS ${CYCLES_OIIO}/bin ${CYCLES_OIIO}/dist) - -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) - -IF(OIIO_STATIC) - ADD_DEFINITIONS(-DOIIO_STATIC_BUILD) - - SET(OPENIMAGEIO_LIBRARY - ${OPENIMAGEIO_LIBRARY} - ${PNG_LIBRARIES} - ${JPEG_LIBRARIES} - ${TIFF_LIBRARY} - ${OPENEXR_LIBRARIES} - ${ZLIB_LIBRARIES}) - - LINK_DIRECTORIES( - ${JPEG_LIBPATH} - ${PNG_LIBPATH} - ${TIFF_LIBPATH} - ${OPENEXR_LIBPATH} - ${ZLIB_LIBPATH}) -ENDIF() ########################################################################### # GLUT -IF(WITH_CYCLES_TEST) - SET(GLUT_ROOT_PATH ${CYCLES_GLUT}) +if(WITH_CYCLES_TEST) + set(GLUT_ROOT_PATH ${CYCLES_GLUT}) - FIND_PACKAGE(GLUT) - MESSAGE(STATUS "GLUT_FOUND=${GLUT_FOUND}") + find_package(GLUT) + message(STATUS "GLUT_FOUND=${GLUT_FOUND}") - INCLUDE_DIRECTORIES(${GLUT_INCLUDE_DIR}) -ENDIF() + include_directories(${GLUT_INCLUDE_DIR}) +endif() -IF(WITH_BUILTIN_GLEW) - SET(CYCLES_GLEW_LIBRARY extern_glew) -ELSE() - SET(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY}) -ENDIF() +if(WITH_BUILTIN_GLEW) + set(CYCLES_GLEW_LIBRARY extern_glew) +else() + set(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY}) +endif() ########################################################################### # OpenShadingLanguage -IF(WITH_CYCLES_OSL) +if(WITH_CYCLES_OSL) + + set(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation") - MESSAGE(STATUS "CYCLES_OSL = ${CYCLES_OSL}") + message(STATUS "CYCLES_OSL = ${CYCLES_OSL}") - FIND_LIBRARY(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist) - FIND_PATH(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include ${CYCLES_OSL}/dist) - FIND_PROGRAM(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin ${CYCLES_OSL}/dist) + find_library(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist) + find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include ${CYCLES_OSL}/dist) + find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin ${CYCLES_OSL}/dist) - 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() + 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) + include_directories(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec) -ENDIF() +endif() ########################################################################### # Partio -IF(WITH_CYCLES_PARTIO) +if(WITH_CYCLES_PARTIO) - MESSAGE(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}") + set(CYCLES_PARTIO "" CACHE PATH "Path to Partio installation") - FIND_LIBRARY(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib) - FIND_PATH(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include) + message(STATUS "CYCLES_PARTIO = ${CYCLES_PARTIO}") - FIND_PACKAGE(ZLIB) + find_library(PARTIO_LIBRARIES NAMES partio PATHS ${CYCLES_PARTIO}/lib) + find_path(PARTIO_INCLUDES Partio.h ${CYCLES_PARTIO}/include) - 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() + find_package(ZLIB) - ADD_DEFINITIONS(-DWITH_PARTIO) - INCLUDE_DIRECTORIES(${PARTIO_INCLUDES}) + 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() -ENDIF() + include_directories(${PARTIO_INCLUDES}) + +endif() ########################################################################### # Blender -IF(WITH_CYCLES_BLENDER) - # FIND_PATH(BLENDER_INCLUDE_DIRS RNA_blender.h PATHS ${CMAKE_BINARY_DIR}/include) - SET(BLENDER_INCLUDE_DIRS +if(WITH_CYCLES_BLENDER) + + set(BLENDER_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/intern/guardedalloc ${CMAKE_SOURCE_DIR}/source/blender/makesdna ${CMAKE_SOURCE_DIR}/source/blender/makesrna ${CMAKE_SOURCE_DIR}/source/blender/blenloader ${CMAKE_BINARY_DIR}/source/blender/makesrna/intern) - IF(WIN32) - SET(BLENDER_LIBRARIES ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/blender.lib) - ENDIF() ADD_DEFINITIONS(-DBLENDER_PLUGIN) -ENDIF() +endif() ########################################################################### # CUDA -IF(WITH_CYCLES_CUDA) +if(WITH_CYCLES_CUDA) + + set(CYCLES_CUDA "/usr/local/cuda" CACHE PATH "Path to CUDA installation") + 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") - 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) + 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}") - MESSAGE(STATUS "CUDA library = ${CUDA_LIBRARIES}") - MESSAGE(STATUS "CUDA nvcc = ${CUDA_NVCC}") - ELSE() - MESSAGE(STATUS "CUDA not found") - ENDIF() + 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}) + include_directories(${CUDA_INCLUDES}) -ENDIF() +endif() ########################################################################### # OpenCL -IF(WITH_CYCLES_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_LIBRARIES "OpenCL") - ENDIF() +if(WITH_CYCLES_OPENCL) - IF(UNIX AND NOT APPLE) - SET(OPENCL_INCLUDES ${CYCLES_OPENCL}) - SET(OPENCL_LIBRARIES "OpenCL") - ENDIF() + if(APPLE) + set(OPENCL_INCLUDE_DIR "/System/Library/Frameworks/OpenCL.framework/Headers") + set(OPENCL_LIBRARIES "-framework OpenCL") + endif() - ADD_DEFINITIONS(-DWITH_OPENCL) - INCLUDE_DIRECTORIES(${OPENCL_INCLUDES}) + if(WIN32) + set(OPENCL_INCLUDE_DIR "") + set(OPENCL_LIBRARIES "OpenCL") + endif() -ENDIF() + if(UNIX AND NOT APPLE) + set(OPENCL_INCLUDE_DIR ${CYCLES_OPENCL}) + set(OPENCL_LIBRARIES "OpenCL") + endif() +endif() diff --git a/intern/cycles/cmake/platforms.cmake b/intern/cycles/cmake/platforms.cmake deleted file mode 100644 index e4364d8fc5d..00000000000 --- a/intern/cycles/cmake/platforms.cmake +++ /dev/null @@ -1,27 +0,0 @@ - -# Platform specific build flags - -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) - 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 "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -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=}) - -- cgit v1.2.3