@ -1,83 +1,152 @@
# C o p y r i g h t 2 0 1 1 - 2 0 2 0 B l e n d e r F o u n d a t i o n
#
# L i c e n s e d u n d e r t h e A p a c h e L i c e n s e , V e r s i o n 2 . 0 ( the "License" ) ;
# y o u m a y n o t u s e t h i s f i l e e x c e p t i n c o m p l i a n c e w i t h t h e L i c e n s e .
# Y o u m a y o b t a i n a c o p y o f t h e L i c e n s e a t
#
# h t t p : / / w w w . a p a c h e . o r g / l i c e n s e s / L I C E N S E - 2 . 0
#
# U n l e s s r e q u i r e d b y a p p l i c a b l e l a w o r a g r e e d t o i n w r i t i n g , s o f t w a r e
# d i s t r i b u t e d u n d e r t h e L i c e n s e i s d i s t r i b u t e d o n a n " A S I S " B A S I S ,
# W I T H O U T W A R R A N T I E S O R C O N D I T I O N S O F A N Y K I N D , e i t h e r e x p r e s s o r i m p l i e d .
# S e e t h e L i c e n s e f o r t h e s p e c i f i c l a n g u a g e g o v e r n i n g p e r m i s s i o n s a n d
# l i m i t a t i o n s u n d e r t h e L i c e n s e .
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# H e l p e r m a c r o s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# P r e c o m p i l e d l i b r a r i e s t i p s a n d h i n t s , f o r find_package ( ) .
if ( CYCLES_STANDALONE_REPOSITORY )
if ( APPLE OR WIN32 )
include ( precompiled_libs )
endif ( )
endif ( )
macro( _set_default variable value )
if ( NOT ${ variable } )
set ( ${ variable } ${ value } )
endif ( )
end macro ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# G L U T
# P r e c o m p i l e d l i b r a r i e s d e t e c t i o n
#
# U s e p r e c o m p i l e d l i b r a r i e s f r o m B l e n d e r r e p o s i t o r y
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI )
set ( GLUT_ROOT_PATH ${ CYCLES_GLUT } )
if ( CYCLES_STANDALONE_REPOSITORY )
if ( APPLE )
set ( _cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/darwin" )
elseif ( WIN32 )
if ( CMAKE_CL_64 )
set ( _cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/win64_vc15" )
else ( )
message ( FATAL_ERROR "Unsupported Visual Studio Version" )
endif ( )
else ( )
# P a t h t o a l o c a l l y c o m p i l e d l i b r a r i e s .
set ( LIBDIR_NAME ${ CMAKE_SYSTEM_NAME } _ ${ CMAKE_SYSTEM_PROCESSOR } )
string ( TOLOWER ${ LIBDIR_NAME } LIBDIR_NAME )
set ( LIBDIR_NATIVE_ABI ${ CMAKE_SOURCE_DIR } /../lib/ ${ LIBDIR_NAME } )
find_package ( GLUT )
message ( STATUS "GLUT_FOUND=${GLUT_FOUND}" )
# P a t h t o p r e c o m p i l e d l i b r a r i e s w i t h k n o w n C e n t O S 7 A B I .
set ( LIBDIR_CENTOS7_ABI ${ CMAKE_SOURCE_DIR } /../lib/linux_centos7_x86_64 )
include_directories (
S Y S T E M
$ { G L U T _ I N C L U D E _ D I R }
)
endif ( )
# C h o o s e t h e b e s t s u i t a b l e l i b r a r i e s .
if ( EXISTS ${ LIBDIR_NATIVE_ABI } )
set ( _cycles_lib_dir ${ LIBDIR_NATIVE_ABI } )
elseif ( EXISTS ${ LIBDIR_CENTOS7_ABI } )
set ( _cycles_lib_dir ${ LIBDIR_CENTOS7_ABI } )
set ( WITH_CXX11_ABI OFF )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# G L E W
if ( CMAKE_COMPILER_IS_GNUCC AND
C M A K E _ C _ C O M P I L E R _ V E R S I O N V E R S I O N _ L E S S 9 . 3 )
message ( FATAL_ERROR "GCC version must be at least 9.3 for precompiled libraries, found ${CMAKE_C_COMPILER_VERSION}" )
endif ( )
endif ( )
# W o r k a r o u n d f o r u n c o n v e n t i o n a l v a r i a b l e n a m e u s e i n B l e n d e r .
if ( NOT CYCLES_STANDALONE_REPOSITORY )
set ( GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}" )
endif ( )
# A v o i d n a m e s p a c e p o l l u s t i o n .
unset ( LIBDIR_NATIVE_ABI )
unset ( LIBDIR_CENTOS7_ABI )
endif ( )
if ( EXISTS ${ _cycles_lib_dir } )
_set_default ( BOOST_ROOT "${_cycles_lib_dir}/boost" )
_set_default ( BLOSC_ROOT_DIR "${_cycles_lib_dir}/blosc" )
_set_default ( EMBREE_ROOT_DIR "${_cycles_lib_dir}/embree" )
_set_default ( GLEW_ROOT_DIR "${_cycles_lib_dir}/glew" )
_set_default ( JPEG_ROOT "${_cycles_lib_dir}/jpeg" )
_set_default ( LLVM_ROOT_DIR "${_cycles_lib_dir}/llvm" )
_set_default ( OPENCOLORIO_ROOT_DIR "${_cycles_lib_dir}/opencolorio" )
_set_default ( OPENEXR_ROOT_DIR "${_cycles_lib_dir}/openexr" )
_set_default ( OPENIMAGEDENOISE_ROOT_DIR "${_cycles_lib_dir}/openimagedenoise" )
_set_default ( OPENIMAGEIO_ROOT_DIR "${_cycles_lib_dir}/openimageio" )
_set_default ( OPENJPEG_ROOT_DIR "${_cycles_lib_dir}/openjpeg" )
_set_default ( OPENSUBDIV_ROOT_DIR "${_cycles_lib_dir}/opensubdiv" )
_set_default ( OPENVDB_ROOT_DIR "${_cycles_lib_dir}/openvdb" )
_set_default ( OSL_ROOT_DIR "${_cycles_lib_dir}/osl" )
_set_default ( PNG_ROOT "${_cycles_lib_dir}/png" )
_set_default ( TBB_ROOT_DIR "${_cycles_lib_dir}/tbb" )
_set_default ( TIFF_ROOT "${_cycles_lib_dir}/tiff" )
_set_default ( ZLIB_ROOT "${_cycles_lib_dir}/zlib" )
if ( WITH_CYCLES_STANDALONE )
set ( CYCLES_APP_GLEW_LIBRARY ${ BLENDER_GLEW_LIBRARIES } )
# I g n o r e s y s t e m l i b r a r i e s
set ( CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}" )
else ( )
unset ( _cycles_lib_dir )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# C U D A
# Z l i b
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_CUDA_BINARIES OR NOT WITH_CUDA_DYNLOAD )
find_package ( CUDA ) # T r y t o a u t o l o c a t e C U D A t o o l k i t
if ( CUDA_FOUND )
message ( STATUS "CUDA nvcc = ${CUDA_NVCC_EXECUTABLE}" )
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( ZLIB_INCLUDE_DIRS ${ _cycles_lib_dir } /zlib/include )
set ( ZLIB_LIBRARIES ${ _cycles_lib_dir } /zlib/lib/libz_st.lib )
set ( ZLIB_INCLUDE_DIR ${ _cycles_lib_dir } /zlib/include )
set ( ZLIB_LIBRARY ${ _cycles_lib_dir } /zlib/lib/libz_st.lib )
set ( ZLIB_DIR ${ _cycles_lib_dir } /zlib )
set ( ZLIB_FOUND ON )
else ( )
message ( STATUS "CUDA compiler not found, disabling WITH_CYCLES_CUDA_BINARIES" )
set ( WITH_CYCLES_CUDA_BINARIES OFF )
if ( NOT WITH_CUDA_DYNLOAD )
message ( STATUS "Additionally falling back to dynamic CUDA load" )
set ( WITH_CUDA_DYNLOAD ON )
endif ( )
find_package ( ZLIB REQUIRED )
endif ( )
endif ( )
# P a c k a g e s w h i c h a r e b e i n g f o u n d b y B l e n d e r w h e n b u i l d i n g f r o m i n s i d e B l e n d e r
# s o u r c e c o d e . b u t w h i c h w e n e e d t o t a k e c a r e o f w h e n b u i l d i n g C y c l e s f r o m a
# s t a n d a l o n e r e p o s i t o r y
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# P T h r e a d s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
# P T h r e a d s
# TODO ( sergey ) : B l o o d y e x c e p t i o n , h a n d l e d i n p r e c o m p i l e d _ l i b s . c m a k e .
if ( NOT WIN32 )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( PTHREADS_LIBRARIES "${_cycles_lib_dir}/pthreads/lib/pthreadVC3.lib" )
include_directories ( "${_cycles_lib_dir}/pthreads/include" )
else ( )
set ( CMAKE_THREAD_PREFER_PTHREAD TRUE )
find_package ( Threads REQUIRED )
set ( PTHREADS_LIBRARIES ${ CMAKE_THREAD_LIBS_INIT } )
endif ( )
endif ( )
# # # #
# O p e n G L
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n I m a g e I O a n d i m a g e l i b r a r i e s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# TODO ( sergey ) : W e c u r r e n t l y r e - u s e t h e s a m e v a r i a b l e n a m e a s w e u s e
# i n B l e n d e r . I d e a l l y w e n e e d t o m a k e i t C Y C L E S _ G L _ L I B R A R I E S .
find_package ( OpenGL REQUIRED )
find_package ( GLEW REQUIRED )
list ( APPEND BLENDER_GL_LIBRARIES
" $ { O P E N G L _ g l _ L I B R A R Y } "
" $ { O P E N G L _ g l u _ L I B R A R Y } "
" $ { G L E W _ L I B R A R Y } "
)
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
add_definitions (
# O I I O c h a n g e d t h e n a m e o f t h i s d e f i n e i n n e w e r v e r s i o n s
# w e d e f i n e b o t h , s o i t w o u l d w o r k w i t h b o t h o l d a n d n e w
# v e r s i o n s .
- D O I I O _ S T A T I C _ B U I L D
- D O I I O _ S T A T I C _ D E F I N E
)
# S p e c i a l e x c e p t i o n s f o r l i b r a r i e s w h i c h n e e d s e x p l i c i t d e b u g v e r s i o n
set ( OPENIMAGEIO_LIBRARY
o p t i m i z e d $ { O P E N I M A G E I O _ R O O T _ D I R } / l i b / O p e n I m a g e I O . l i b
o p t i m i z e d $ { O P E N I M A G E I O _ R O O T _ D I R } / l i b / O p e n I m a g e I O _ U t i l . l i b
d e b u g $ { O P E N I M A G E I O _ R O O T _ D I R } / l i b / O p e n I m a g e I O _ d . l i b
d e b u g $ { O P E N I M A G E I O _ R O O T _ D I R } / l i b / O p e n I m a g e I O _ U t i l _ d . l i b
)
endif ( )
# # # #
# O p e n I m a g e I O
find_package ( OpenImageIO REQUIRED )
if ( OPENIMAGEIO_PUGIXML_FOUND )
set ( PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}" )
@ -86,37 +155,143 @@ if(CYCLES_STANDALONE_REPOSITORY)
find_package ( PugiXML REQUIRED )
endif ( )
# O I I O u s u a l l y d e p e n d s o n O p e n E X R , s o f i n d t h i s l i b r a r y
# b u t d o n ' t m a k e i t r e q u i r e d .
find_package ( OpenEXR )
# D e p e n d e n c i e s
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( OPENJPEG_INCLUDE_DIR ${ OPENJPEG } /include/openjpeg-2.3 )
set ( OPENJPEG_LIBRARY ${ _cycles_lib_dir } /openjpeg/lib/openjp2 ${ CMAKE_STATIC_LIBRARY_SUFFIX } )
endif ( )
# # # #
# O p e n S h a d i n g L a n g u a g e
if ( WITH_CYCLES_OSL )
find_package ( OpenShadingLanguage REQUIRED )
find_package ( JPEG REQUIRED )
find_package ( OpenJPEG REQUIRED )
find_package ( TIFF REQUIRED )
find_package ( PNG REQUIRED )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n E X R
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( OPENEXR_IEX_LIBRARY
o p t i m i z e d $ { O P E N E X R _ R O O T _ D I R } / l i b / I e x _ s . l i b
d e b u g $ { O P E N E X R _ R O O T _ D I R } / l i b / I e x _ s _ d . l i b
)
set ( OPENEXR_HALF_LIBRARY
o p t i m i z e d $ { O P E N E X R _ R O O T _ D I R } / l i b / H a l f _ s . l i b
d e b u g $ { O P E N E X R _ R O O T _ D I R } / l i b / H a l f _ s _ d . l i b
)
set ( OPENEXR_ILMIMF_LIBRARY
o p t i m i z e d $ { O P E N E X R _ R O O T _ D I R } / l i b / I l m I m f _ s . l i b
d e b u g $ { O P E N E X R _ R O O T _ D I R } / l i b / I l m I m f _ s _ d . l i b
)
set ( OPENEXR_IMATH_LIBRARY
o p t i m i z e d $ { O P E N E X R _ R O O T _ D I R } / l i b / I m a t h _ s . l i b
d e b u g $ { O P E N E X R _ R O O T _ D I R } / l i b / I m a t h _ s _ d . l i b
)
set ( OPENEXR_ILMTHREAD_LIBRARY
o p t i m i z e d $ { O P E N E X R _ R O O T _ D I R } / l i b / I l m T h r e a d _ s . l i b
d e b u g $ { O P E N E X R _ R O O T _ D I R } / l i b / I l m T h r e a d _ s _ d . l i b
)
endif ( )
find_package ( OpenEXR REQUIRED )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n S h a d i n g L a n g u a g e & L L V M
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_OSL )
if ( CYCLES_STANDALONE_REPOSITORY )
if ( EXISTS ${ _cycles_lib_dir } )
set ( LLVM_STATIC ON )
endif ( )
find_package ( OSL REQUIRED )
find_package ( LLVM REQUIRED )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
# TODO ( sergey ) : O n W i n d o w s l l v m - c o n f i g d o e s n ' t g i v e p r o p e r r e s u l t s f o r t h e
# l i b r a r y n a m e s , u s e h a r d c o d e d l i b r a r i e s f o r n o w .
file ( GLOB _llvm_libs_release ${ LLVM_ROOT_DIR } /lib/*.lib )
file ( GLOB _llvm_libs_debug ${ LLVM_ROOT_DIR } /debug/lib/*.lib )
set ( _llvm_libs )
foreach ( _llvm_lib_path ${ _llvm_libs_release } )
get_filename_component ( _llvm_lib_name ${ _llvm_lib_path } ABSOLUTE )
list ( APPEND _llvm_libs optimized ${ _llvm_lib_name } )
endforeach ( )
foreach ( _llvm_lib_path ${ _llvm_libs_debug } )
get_filename_component ( _llvm_lib_name ${ _llvm_lib_path } ABSOLUTE )
list ( APPEND _llvm_libs debug ${ _llvm_lib_name } )
endforeach ( )
set ( LLVM_LIBRARY ${ _llvm_libs } )
unset ( _llvm_lib_name )
unset ( _llvm_lib_path )
unset ( _llvm_libs )
unset ( _llvm_libs_debug )
unset ( _llvm_libs_release )
set ( OSL_LIBRARIES
o p t i m i z e d $ { O S L _ R O O T _ D I R } / l i b / o s l c o m p . l i b
o p t i m i z e d $ { O S L _ R O O T _ D I R } / l i b / o s l e x e c . l i b
o p t i m i z e d $ { O S L _ R O O T _ D I R } / l i b / o s l q u e r y . l i b
o p t i m i z e d $ { O S L _ R O O T _ D I R } / l i b / p u g i x m l . l i b
d e b u g $ { O S L _ R O O T _ D I R } / l i b / o s l c o m p _ d . l i b
d e b u g $ { O S L _ R O O T _ D I R } / l i b / o s l e x e c _ d . l i b
d e b u g $ { O S L _ R O O T _ D I R } / l i b / o s l q u e r y _ d . l i b
d e b u g $ { O S L _ R O O T _ D I R } / l i b / p u g i x m l _ d . l i b
)
endif ( )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n C o l o r I O
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # #
# O p e n C o l o r I O
if ( WITH_OPENCOLORIO )
if ( WITH_CYCLES_OPENCOLORIO )
if ( CYCLES_STANDALONE_REPOSITORY )
find_package ( OpenColorIO REQUIRED )
set ( WITH_OPENCOLORIO ON )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( OPENCOLORIO_LIBPATH ${ _cycles_lib_dir } /opencolorio/lib )
set ( OPENCOLORIO_LIBRARIES
o p t i m i z e d $ { O P E N C O L O R I O _ L I B P A T H } / O p e n C o l o r I O . l i b
o p t i m i z e d $ { O P E N C O L O R I O _ L I B P A T H } / t i n y x m l . l i b
o p t i m i z e d $ { O P E N C O L O R I O _ L I B P A T H } / l i b y a m l - c p p . l i b
d e b u g $ { O P E N C O L O R I O _ L I B P A T H } / O p e n c o l o r I O _ d . l i b
d e b u g $ { O P E N C O L O R I O _ L I B P A T H } / t i n y x m l _ d . l i b
d e b u g $ { O P E N C O L O R I O _ L I B P A T H } / l i b y a m l - c p p _ d . l i b
)
endif ( )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# B o o s t
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
if ( EXISTS ${ _cycles_lib_dir } )
if ( MSVC )
set ( Boost_USE_STATIC_RUNTIME OFF )
set ( Boost_USE_MULTITHREADED ON )
set ( Boost_USE_STATIC_LIBS ON )
else ( )
set ( BOOST_LIBRARYDIR ${ _cycles_lib_dir } /boost/lib )
set ( Boost_NO_BOOST_CMAKE ON )
set ( Boost_NO_SYSTEM_PATHS ON )
endif ( )
endif ( )
# # # #
# B o o s t
set ( __boost_packages filesystem regex system thread date_time )
if ( WITH_CYCLES_NETWORK )
list ( APPEND __boost_packages serialization )
endif ( )
if ( WITH_CYCLES_OSL )
# TODO ( sergey ) : T h i s i s b e c a u s e o f t h e w a y h o w o u r p r e c o m p i l e d
# l i b r a r i e s w o r k s , c o u l d b e d i f f e r e n t f o r s o m e o n e ' s e l s e l i b s . .
if ( APPLE OR MSVC )
list ( APPEND __boost_packages wave )
elseif ( NOT ( ${ OSL_LIBRARY_VERSION_MAJOR } EQUAL "1" AND ${ OSL_LIBRARY_VERSION_MINOR } LESS "6" ) )
list ( APPEND __boost_packages wave )
endif ( )
list ( APPEND __boost_packages wave )
endif ( )
find_package ( Boost 1.48 COMPONENTS ${ __boost_packages } REQUIRED )
if ( NOT Boost_FOUND )
@ -131,21 +306,233 @@ if(CYCLES_STANDALONE_REPOSITORY)
set ( BOOST_LIBRARIES ${ Boost_LIBRARIES } )
set ( BOOST_LIBPATH ${ Boost_LIBRARY_DIRS } )
set ( BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB" )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# E m b r e e
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_EMBREE )
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( EMBREE_TASKING_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / t a s k i n g . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / t a s k i n g _ d . l i b
)
set ( EMBREE_EMBREE3_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e 3 . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e 3 _ d . l i b
)
set ( EMBREE_EMBREE_AVX_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ a v x . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ a v x _ d . l i b
)
set ( EMBREE_EMBREE_AVX2_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ a v x 2 . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ a v x 2 _ d . l i b
)
set ( EMBREE_EMBREE_SSE42_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ s s e 4 2 . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / e m b r e e _ s s e 4 2 _ d . l i b
)
set ( EMBREE_LEXERS_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / l e x e r s . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / l e x e r s _ d . l i b
)
set ( EMBREE_MATH_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / m a t h . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / m a t h _ d . l i b
)
set ( EMBREE_SIMD_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / s i m d . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / s i m d _ d . l i b
)
set ( EMBREE_SYS_LIBRARY
o p t i m i z e d $ { E M B R E E _ R O O T _ D I R } / l i b / s y s . l i b
d e b u g $ { E M B R E E _ R O O T _ D I R } / l i b / s y s _ d . l i b
)
endif ( )
# # # #
# E m b r e e
if ( WITH_CYCLES_EMBREE )
find_package ( Embree 3.8.0 REQUIRED )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# L o g g i n g
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # #
# L o g g i n g
if ( WITH_CYCLES_LOGGING )
if ( WITH_CYCLES_LOGGING )
if ( CYCLES_STANDALONE_REPOSITORY )
find_package ( Glog REQUIRED )
find_package ( Gflags REQUIRED )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n S u b d i v
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_OPENSUBDIV )
if ( CYCLES_STANDALONE_REPOSITORY )
find_package ( OpenSubdiv REQUIRED )
set ( WITH_OPENSUBDIV ON )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( OPENSUBDIV_LIBRARIES
o p t i m i z e d $ { O P E N S U B D I V _ R O O T _ D I R } / l i b / o s d C P U . l i b
o p t i m i z e d $ { O P E N S U B D I V _ R O O T _ D I R } / l i b / o s d G P U . l i b
d e b u g $ { O P E N S U B D I V _ R O O T _ D I R } / l i b / o s d C P U _ d . l i b
d e b u g $ { O P E N S U B D I V _ R O O T _ D I R } / l i b / o s d G P U _ d . l i b
)
endif ( )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n V D B
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_OPENVDB )
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( BLOSC_LIBRARY
o p t i m i z e d $ { B L O S C _ R O O T _ D I R } / l i b / l i b b l o s c . l i b
d e b u g $ { B L O S C _ R O O T _ D I R } / l i b / l i b b l o s c _ d . l i b )
endif ( )
find_package ( OpenVDB REQUIRED )
find_package ( Blosc REQUIRED )
set ( WITH_OPENVDB ON )
set ( OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n I m a g e D e n o i s e
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_OPENIMAGEDENOISE )
if ( CYCLES_STANDALONE_REPOSITORY )
find_package ( OpenImageDenoise REQUIRED )
set ( WITH_OPENIMAGEDENOISE ON )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( OPENIMAGEDENOISE_LIBRARIES
o p t i m i z e d $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / O p e n I m a g e D e n o i s e . l i b
o p t i m i z e d $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / c o m m o n . l i b
o p t i m i z e d $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / d n n l . l i b
d e b u g $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / O p e n I m a g e D e n o i s e _ d . l i b
d e b u g $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / c o m m o n _ d . l i b
d e b u g $ { O P E N I M A G E D E N O I S E _ R O O T _ D I R } / l i b / d n n l _ d . l i b )
endif ( )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# T B B
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( TBB_LIBRARY
o p t i m i z e d $ { T B B _ R O O T _ D I R } / l i b / t b b . l i b
d e b u g $ { T B B _ R O O T _ D I R } / l i b / d e b u g / t b b _ d e b u g . l i b
)
endif ( )
find_package ( TBB REQUIRED )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# G L E W
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
set ( GLEW_LIBRARY "${_cycles_lib_dir}/opengl/lib/glew.lib" )
set ( GLEW_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include" )
add_definitions ( -DGLEW_STATIC )
endif ( )
find_package ( GLEW REQUIRED )
else ( )
# W o r k a r o u n d f o r u n c o n v e n t i o n a l v a r i a b l e n a m e u s e i n B l e n d e r .
set ( GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}" )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# S y s t e m L i b r a r i e s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# D e t e c t s y s t e m l i b r a r i e s a g a i n
if ( EXISTS ${ _cycles_lib_dir } )
unset ( CMAKE_IGNORE_PATH )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# O p e n G L
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( CYCLES_STANDALONE_REPOSITORY )
if ( NOT DEFINED OpenGL_GL_PREFERENCE )
set ( OpenGL_GL_PREFERENCE "LEGACY" )
endif ( )
find_package ( OpenGL REQUIRED )
unset ( _lib_DIR )
set ( CYCLES_GL_LIBRARIES
$ { O P E N G L _ g l _ L I B R A R Y }
$ { O P E N G L _ g l u _ L I B R A R Y }
$ { G L E W _ L I B R A R Y }
)
else ( )
set ( LLVM_LIBRARIES ${ LLVM_LIBRARY } )
set ( CYCLES_GL_LIBRARIES
b f _ i n t e r n _ g l e w _ m x
$ { B L E N D E R _ G L _ L I B R A R I E S }
$ { B L E N D E R _ G L E W _ L I B R A R I E S } )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# G L U T
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI )
if ( MSVC AND EXISTS ${ _cycles_lib_dir } )
add_definitions ( -DFREEGLUT_STATIC -DFREEGLUT_LIB_PRAGMAS=0 )
set ( GLUT_LIBRARIES "${_cycles_lib_dir}/opengl/lib/freeglut_static.lib" )
set ( GLUT_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include" )
else ( )
find_package ( GLUT )
if ( NOT GLUT_FOUND )
set ( WITH_CYCLES_STANDALONE_GUI OFF )
message ( STATUS "GLUT not found, disabling Cycles standalone GUI" )
endif ( )
endif ( )
include_directories (
S Y S T E M
$ { G L U T _ I N C L U D E _ D I R }
)
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# C U D A
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( WITH_CYCLES_CUDA_BINARIES OR NOT WITH_CUDA_DYNLOAD )
find_package ( CUDA ) # T r y t o a u t o l o c a t e C U D A t o o l k i t
if ( CUDA_FOUND )
message ( STATUS "CUDA nvcc = ${CUDA_NVCC_EXECUTABLE}" )
else ( )
message ( STATUS "CUDA compiler not found, disabling WITH_CYCLES_CUDA_BINARIES" )
set ( WITH_CYCLES_CUDA_BINARIES OFF )
if ( NOT WITH_CUDA_DYNLOAD )
message ( STATUS "Additionally falling back to dynamic CUDA load" )
set ( WITH_CUDA_DYNLOAD ON )
endif ( )
endif ( )
endif ( )
unset ( _cycles_lib_dir )