2008-04-16 22:40:48 +00:00
# ***** BEGIN GPL LICENSE BLOCK *****
2006-11-17 02:27:12 +00:00
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
2008-04-16 22:40:48 +00:00
# of the License, or (at your option) any later version.
2006-11-17 02:27:12 +00:00
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
2010-02-12 13:34:04 +00:00
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2006-11-17 02:27:12 +00:00
#
# The Original Code is Copyright (C) 2006, Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Jacques Beaurain.
#
2008-04-16 22:40:48 +00:00
# ***** END GPL LICENSE BLOCK *****
2006-11-17 02:27:12 +00:00
2006-12-13 02:57:57 +00:00
#-----------------------------------------------------------------------------
2011-09-30 15:51:58 +00:00
# We don't allow in-source builds. This causes no end of troubles because
# all out-of-source builds will use the CMakeCache.txt file there and even
2011-02-19 12:05:20 +00:00
# build the libs and objects in it.
2006-12-13 02:57:57 +00:00
2010-12-08 08:43:06 +00:00
if ( ${ CMAKE_SOURCE_DIR } STREQUAL ${ CMAKE_BINARY_DIR } )
2011-04-21 05:49:47 +00:00
if ( NOT DEFINED WITH_IN_SOURCE_BUILD )
message ( FATAL_ERROR
" C M a k e g e n e r a t i o n f o r b l e n d e r i s n o t a l l o w e d w i t h i n t h e s o u r c e d i r e c t o r y ! "
" \ n R e m o v e t h e C M a k e C a c h e . t x t f i l e a n d t r y a g a i n f r o m a n o t h e r f o l d e r , e . g . : "
" \ n "
" \ n r m C M a k e C a c h e . t x t "
" \ n c d . . "
" \ n m k d i r c m a k e - m a k e "
" \ n c d c m a k e - m a k e "
" \ n c m a k e . . / b l e n d e r "
" \ n "
" \ n A l t e r n a t e l y d e f i n e W I T H _ I N _ S O U R C E _ B U I L D t o f o r c e t h i s option ( not recommended! ) "
)
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2006-12-13 02:57:57 +00:00
2011-02-19 12:05:20 +00:00
cmake_minimum_required ( VERSION 2.8 )
2010-06-07 14:28:37 +00:00
2014-06-13 20:22:54 +00:00
if ( NOT ( ${ CMAKE_VERSION } VERSION_LESS 3.0 ) )
2014-06-11 05:59:03 +00:00
# keep until CMake-3.0 is min requirement
cmake_policy ( SET CMP0043 OLD )
endif ( )
2011-06-19 13:49:20 +00:00
if ( NOT EXECUTABLE_OUTPUT_PATH )
set ( FIRST_RUN "TRUE" )
endif ( )
2011-04-05 23:31:01 +00:00
# this starts out unset
2011-06-17 02:22:38 +00:00
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules" )
2011-04-05 23:31:01 +00:00
2011-06-27 13:18:08 +00:00
# avoid having empty buildtype
set ( CMAKE_BUILD_TYPE_INIT "Release" )
2010-06-07 14:28:37 +00:00
# quiet output for Makefiles, 'make -s' helps too
2010-12-08 08:43:06 +00:00
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
2010-06-07 14:28:37 +00:00
2011-10-26 00:51:29 +00:00
# global compile definitions since add_definitions() adds for all.
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG _DEBUG )
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE NDEBUG )
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL NDEBUG )
2011-10-29 16:14:38 +00:00
set_property ( DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO NDEBUG )
2011-10-26 00:51:29 +00:00
2011-08-22 12:24:14 +00:00
#-----------------------------------------------------------------------------
# Set policy
# see "cmake --help-policy CMP0003"
# So library linking is more sane
cmake_policy ( SET CMP0003 NEW )
# So BUILDINFO and BLENDERPATH strings are automatically quoted
cmake_policy ( SET CMP0005 NEW )
# So syntax problems are errors
cmake_policy ( SET CMP0010 NEW )
# Input directories must have CMakeLists.txt
cmake_policy ( SET CMP0014 NEW )
2011-05-23 14:56:14 +00:00
#-----------------------------------------------------------------------------
# Load some macros.
include ( build_files/cmake/macros.cmake )
2011-04-09 11:16:37 +00:00
2011-05-23 14:56:14 +00:00
#-----------------------------------------------------------------------------
# Initialize project.
2006-11-17 02:27:12 +00:00
2011-05-23 14:56:14 +00:00
blender_project_hack_pre ( )
2011-04-09 11:16:37 +00:00
2011-05-23 14:56:14 +00:00
project ( Blender )
2011-04-09 11:16:37 +00:00
2011-05-23 14:56:14 +00:00
blender_project_hack_post ( )
2011-04-09 11:16:37 +00:00
2011-01-21 00:06:30 +00:00
enable_testing ( )
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Redirect output files
2012-05-19 13:55:54 +00:00
set ( EXECUTABLE_OUTPUT_PATH ${ CMAKE_BINARY_DIR } /bin CACHE INTERNAL "" FORCE )
set ( LIBRARY_OUTPUT_PATH ${ CMAKE_BINARY_DIR } /lib CACHE INTERNAL "" FORCE )
2014-06-18 12:49:17 +00:00
set ( TESTS_OUTPUT_DIR ${ EXECUTABLE_OUTPUT_PATH } /tests CACHE INTERNAL "" FORCE )
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Set default config options
2010-06-06 13:32:58 +00:00
2010-12-08 08:43:06 +00:00
get_blender_version ( )
2010-07-14 20:26:46 +00:00
2014-11-13 22:32:01 +00:00
#-----------------------------------------------------------------------------
# Platform Specific Defaults
# list of var-names
set ( _init_vars )
# initialize to ON
macro ( option_defaults_init )
foreach ( _var ${ ARGV } )
set ( ${ _var } ON )
list ( APPEND _init_vars "${_var}" )
endforeach ( )
unset ( _INC )
endmacro ( )
# remove from namespace
macro ( option_defaults_clear )
foreach ( _var ${ _init_vars } )
unset ( ${ _var } )
endforeach ( )
unset ( _var )
unset ( _init_vars )
endmacro ( )
# values to initialize WITH_****
option_defaults_init (
_ i n i t _ B U I L D I N F O
_ i n i t _ C O D E C _ F F M P E G
_ i n i t _ C Y C L E S _ O S L
_ i n i t _ I M A G E _ O P E N E X R
_ i n i t _ I M A G E _ R E D C O D E
_ i n i t _ I N P U T _ N D O F
_ i n i t _ J A C K
_ i n i t _ L I B M V _ S C H U R _ S P E C I A L I Z A T I O N
_ i n i t _ O P E N C O L L A D A
_ i n i t _ O P E N C O L O R I O
_ i n i t _ S D L
_ i n i t _ F F T W 3
_ i n i t _ G A M E E N G I N E
)
# customize...
if ( UNIX AND NOT APPLE )
# some of these libraries are problematic on Linux
# disable less important dependencies by default
set ( _init_BUILDINFO OFF )
set ( _init_CODEC_FFMPEG OFF )
set ( _init_CYCLES_OSL OFF )
set ( _init_IMAGE_OPENEXR OFF )
set ( _init_IMAGE_REDCODE OFF )
set ( _init_INPUT_NDOF OFF )
set ( _init_JACK OFF )
set ( _init_LIBMV_SCHUR_SPECIALIZATION OFF )
set ( _init_OPENCOLLADA OFF )
set ( _init_OPENCOLORIO OFF )
set ( _init_SDL OFF )
set ( _init_FFTW3 OFF )
set ( _init_GAMEENGINE OFF )
endif ( )
2014-11-26 12:24:56 +00:00
#-----------------------------------------------------------------------------
# Options
# First platform spesific non-cached vars
if ( UNIX AND NOT APPLE )
set ( WITH_X11 ON )
endif ( )
2010-06-06 13:32:58 +00:00
# Blender internal features
2011-07-13 08:15:06 +00:00
option ( WITH_BLENDER "Build blender (disable to build only the blender player)" ON )
mark_as_advanced ( WITH_BLENDER )
2011-03-11 01:24:16 +00:00
option ( WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON )
2011-04-28 06:20:47 +00:00
2011-03-11 01:24:16 +00:00
option ( WITH_PYTHON "Enable Embedded Python API (only disable for development)" ON )
2013-06-10 00:42:16 +00:00
option ( WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON )
2011-04-06 01:51:43 +00:00
mark_as_advanced ( WITH_PYTHON ) # dont want people disabling this unless they really know what they are doing.
2012-09-28 06:45:20 +00:00
mark_as_advanced ( WITH_PYTHON_SECURITY ) # some distributions see this as a security issue, rather than have them patch it, make a build option.
2013-06-10 00:42:16 +00:00
set ( WITH_PYTHON_SECURITY ON CACHE BOOL "ON" FORCE ) # temp force on.
2011-04-28 06:20:47 +00:00
2011-03-11 01:24:16 +00:00
option ( WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency, only enable for development)." OFF )
2012-06-28 08:51:02 +00:00
option ( WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development)" OFF )
2013-03-24 12:13:13 +00:00
if ( APPLE )
2013-02-22 22:24:38 +00:00
option ( WITH_PYTHON_FRAMEWORK "Enable building using the Python available in the framework (OSX only)" OFF )
endif ( )
2014-11-13 22:32:01 +00:00
option ( WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ${ _init_BUILDINFO } )
2014-08-01 17:07:41 +00:00
if ( ${ CMAKE_VERSION } VERSION_LESS 2.8.8 )
# add_library OBJECT arg unsupported
set ( WITH_BUILDINFO OFF )
endif ( )
2011-03-11 01:24:16 +00:00
option ( WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON )
2012-08-18 13:36:29 +00:00
option ( WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON )
2014-11-13 22:32:01 +00:00
option ( WITH_FFTW3 "Enable FFTW3 support (Used for smoke and audio effects)" ${ _init_FFTW3 } )
2010-12-08 08:43:06 +00:00
option ( WITH_BULLET "Enable Bullet (Physics Engine)" ON )
2013-01-03 00:23:52 +00:00
option ( WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
mark_as_advanced ( WITH_SYSTEM_BULLET )
2014-11-13 22:32:01 +00:00
option ( WITH_GAMEENGINE "Enable Game Engine" ${ _init_GAMEENGINE } )
2010-12-08 08:43:06 +00:00
option ( WITH_PLAYER "Build Player" OFF )
2014-11-13 22:32:01 +00:00
option ( WITH_OPENCOLORIO "Enable OpenColorIO color management" ${ _init_OPENCOLORIO } )
2012-06-30 14:14:22 +00:00
option ( WITH_COMPOSITOR "Enable the tile based nodal compositor" ON )
2011-06-04 14:12:55 +00:00
2011-07-13 06:04:54 +00:00
# GHOST Windowing Library Options
option ( WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF )
mark_as_advanced ( WITH_GHOST_DEBUG )
2011-06-23 09:27:56 +00:00
2011-07-13 06:04:54 +00:00
option ( WITH_GHOST_SDL "Enable building blender against SDL for windowing rather then the native APIs" OFF )
mark_as_advanced ( WITH_GHOST_SDL )
2011-07-12 13:17:54 +00:00
2014-11-13 18:43:15 +00:00
if ( WITH_X11 )
option ( WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON )
endif ( )
2011-07-13 06:04:54 +00:00
# Misc...
2011-06-04 14:12:55 +00:00
option ( WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF )
mark_as_advanced ( WITH_HEADLESS )
2011-10-23 15:43:12 +00:00
option ( WITH_AUDASPACE "Build with blenders audio library (only disable if you know what you're doing!)" ON )
2011-07-13 06:04:54 +00:00
mark_as_advanced ( WITH_AUDASPACE )
2014-04-14 09:38:34 +00:00
option ( WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON )
2010-06-06 13:32:58 +00:00
2014-10-07 20:46:19 +00:00
if ( WITH_X11 )
option ( WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON )
option ( WITH_X11_XF86VMODE "Enable X11 video mode switching" ON )
endif ( )
if ( UNIX AND NOT APPLE )
option ( WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON )
option ( WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON )
2011-04-06 01:51:43 +00:00
else ( )
# not an option for other OS's
2012-06-23 13:42:14 +00:00
set ( WITH_SYSTEM_GLEW OFF )
2014-10-07 20:46:19 +00:00
set ( WITH_SYSTEM_GLES OFF )
2011-03-25 04:56:48 +00:00
endif ( )
2012-06-23 14:23:44 +00:00
# (unix defaults to System OpenJPEG On)
2014-11-13 22:32:01 +00:00
option ( WITH_SYSTEM_OPENJPEG "Use the operating systems OpenJPEG library" OFF )
2012-06-23 14:23:44 +00:00
2010-10-23 15:40:13 +00:00
# Modifiers
2012-10-29 15:43:54 +00:00
option ( WITH_MOD_FLUID "Enable Elbeem Modifier (Fluid Simulation)" ON )
option ( WITH_MOD_SMOKE "Enable Smoke Modifier (Smoke Simulation)" ON )
option ( WITH_MOD_BOOLEAN "Enable Boolean Modifier" ON )
option ( WITH_MOD_REMESH "Enable Remesh Modifier" ON )
2012-11-27 09:52:20 +00:00
# option(WITH_MOD_CLOTH_ELTOPO "Enable Experimental cloth solver" OFF) # this is now only available in a branch
# mark_as_advanced(WITH_MOD_CLOTH_ELTOPO)
2011-11-13 14:16:43 +00:00
option ( WITH_MOD_OCEANSIM "Enable Ocean Modifier" OFF )
2010-10-23 15:40:13 +00:00
2010-06-06 13:32:58 +00:00
# Image format support
2014-11-13 22:32:01 +00:00
option ( WITH_OPENIMAGEIO "Enable OpenImageIO Support (http://www.openimageio.org)" ON )
option ( WITH_IMAGE_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" ${ _init_IMAGE_OPENEXR } )
2010-12-08 08:43:06 +00:00
option ( WITH_IMAGE_OPENJPEG "Enable OpenJpeg Support (http://www.openjpeg.org)" ON )
2012-04-12 08:36:07 +00:00
option ( WITH_IMAGE_TIFF "Enable LibTIFF Support" ON )
2010-12-08 08:43:06 +00:00
option ( WITH_IMAGE_DDS "Enable DDS Image Support" ON )
option ( WITH_IMAGE_CINEON "Enable CINEON and DPX Image Support" ON )
option ( WITH_IMAGE_HDR "Enable HDR Image Support" ON )
2014-11-13 22:32:01 +00:00
option ( WITH_IMAGE_REDCODE "Enable RedCode Image Support" ${ _init_IMAGE_REDCODE } )
2011-07-21 23:06:51 +00:00
option ( WITH_IMAGE_FRAMESERVER "Enable image FrameServer Support for rendering" ON )
2010-06-06 13:32:58 +00:00
2010-11-30 18:52:39 +00:00
# Audio/Video format support
2012-10-08 02:51:42 +00:00
option ( WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON )
2014-11-13 22:32:01 +00:00
option ( WITH_CODEC_FFMPEG "Enable FFMPeg Support (http://ffmpeg.org)" ${ _init_CODEC_FFMPEG } )
2010-12-08 08:43:06 +00:00
option ( WITH_CODEC_SNDFILE "Enable libsndfile Support (http://www.mega-nerd.com/libsndfile)" OFF )
2013-11-17 08:23:18 +00:00
2013-11-06 01:45:15 +00:00
if ( APPLE )
2013-11-17 08:23:18 +00:00
option ( WITH_CODEC_QUICKTIME "Enable Quicktime Support" ON )
2010-12-08 08:43:06 +00:00
endif ( )
2006-11-17 02:27:12 +00:00
2010-06-06 13:32:58 +00:00
# 3D format support
2013-11-18 16:12:19 +00:00
# Disable opencollada when we don't have precompiled libs
2014-11-13 22:32:01 +00:00
option ( WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ${ _init_OPENCOLLADA } )
2009-11-19 11:49:42 +00:00
2010-06-06 13:32:58 +00:00
# Sound output
2014-11-13 22:32:01 +00:00
option ( WITH_SDL "Enable SDL for sound and joystick support" ${ _init_SDL } )
2010-12-08 08:43:06 +00:00
option ( WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON )
2014-11-13 22:32:01 +00:00
option ( WITH_JACK "Enable Jack Support (http://www.jackaudio.org)" ${ _init_JACK } )
2013-03-27 07:19:54 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_JACK_DYNLOAD "Enable runtime dynamic Jack libraries loading" OFF )
endif ( )
2014-11-17 11:35:36 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_SDL_DYNLOAD "Enable runtime dynamic SDL libraries loading" OFF )
endif ( )
2010-06-06 13:32:58 +00:00
# Compression
2010-12-08 08:43:06 +00:00
option ( WITH_LZO "Enable fast LZO compression (used for pointcache)" ON )
option ( WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON )
2010-06-06 13:32:58 +00:00
2011-11-07 12:55:18 +00:00
# Camera/motion tracking
option ( WITH_LIBMV "Enable libmv structure from motion library" ON )
2014-11-13 22:32:01 +00:00
option ( WITH_LIBMV_SCHUR_SPECIALIZATIONS "Enable fixed-size schur specializations." ${ _init_LIBMV_SCHUR_SPECIALIZATION } )
mark_as_advanced ( WITH_LIBMV_SCHUR_SPECIALIZATIONS )
2011-11-07 12:55:18 +00:00
2012-12-20 07:57:26 +00:00
# Freestyle
option ( WITH_FREESTYLE "Enable Freestyle (advanced edges rendering)" ON )
2010-06-06 13:32:58 +00:00
# Misc
2014-12-06 23:58:17 +00:00
if ( WIN32 )
option ( WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON )
endif ( )
2014-11-13 22:32:01 +00:00
option ( WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ${ _init_INPUT_NDOF } )
2011-09-30 15:51:58 +00:00
option ( WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON )
2013-11-25 04:33:41 +00:00
option ( WITH_OPENNL "Enable use of Open Numerical Library" ON )
2011-03-06 11:41:30 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON )
2012-11-19 19:43:03 +00:00
option ( WITH_STATIC_LIBS "Try to link with static libraries, as much as possible, to make blender more portable across distributions" OFF )
2013-02-23 20:42:15 +00:00
if ( WITH_STATIC_LIBS )
option ( WITH_BOOST_ICU "Boost uses ICU library (required for linking with static Boost built with libicu)." OFF )
mark_as_advanced ( WITH_BOOST_ICU )
endif ( )
2011-03-06 11:41:30 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
option ( WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON )
2012-04-30 09:38:32 +00:00
option ( WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON )
2014-07-28 14:42:30 +00:00
set ( PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module" )
2012-05-01 23:22:58 +00:00
mark_as_advanced ( PYTHON_NUMPY_PATH )
2014-10-15 08:53:12 +00:00
option ( WITH_CPU_SSE "Enable SIMD instruction if they're detected on the host machine" ON )
mark_as_advanced ( WITH_CPU_SSE )
2012-05-01 23:22:58 +00:00
2014-03-04 18:39:53 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_PYTHON_INSTALL_REQUESTS "Copy system requests into the blender install folder" ON )
2014-07-28 14:42:30 +00:00
set ( PYTHON_REQUESTS_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'requests' module" )
mark_as_advanced ( PYTHON_REQUESTS_PATH )
2014-03-04 18:39:53 +00:00
endif ( )
2011-04-28 13:47:27 +00:00
# Cycles
2012-04-12 08:36:07 +00:00
option ( WITH_CYCLES "Enable cycles Render Engine" ON )
2013-08-27 02:37:48 +00:00
option ( WITH_CYCLES_STANDALONE "Build cycles standalone application" OFF )
2013-08-30 17:34:27 +00:00
option ( WITH_CYCLES_STANDALONE_GUI "Build cycles standalone with GUI" OFF )
2014-11-13 22:32:01 +00:00
option ( WITH_CYCLES_OSL "Build Cycles with OSL support" ${ _init_CYCLES_OSL } )
2011-11-10 12:52:17 +00:00
option ( WITH_CYCLES_CUDA_BINARIES "Build cycles CUDA binaries" OFF )
2014-04-30 08:54:17 +00:00
set ( CYCLES_CUDA_BINARIES_ARCH sm_20 sm_21 sm_30 sm_35 sm_50 CACHE STRING "CUDA architectures to build binaries for" )
2011-11-13 14:16:43 +00:00
mark_as_advanced ( CYCLES_CUDA_BINARIES_ARCH )
2012-05-22 12:30:37 +00:00
unset ( PLATFORM_DEFAULT )
2014-12-03 17:45:12 +00:00
option ( WITH_CYCLES_LOGGING "Build cycles with logging support" ON )
2014-11-15 21:11:41 +00:00
option ( WITH_CYCLES_DEBUG "Build cycles with extra debug capabilities" OFF )
2014-10-04 13:00:26 +00:00
mark_as_advanced ( WITH_CYCLES_LOGGING )
mark_as_advanced ( WITH_CYCLES_DEBUG )
2011-04-28 13:47:27 +00:00
2012-10-06 11:00:45 +00:00
# LLVM
option ( WITH_LLVM "Use LLVM" OFF )
2014-08-06 10:48:06 +00:00
if ( APPLE )
option ( LLVM_STATIC "Link with LLVM static libraries" ON ) # we prefer static llvm build on Apple, dyn build possible though
else ( )
option ( LLVM_STATIC "Link with LLVM static libraries" OFF )
endif ( )
2013-04-15 16:18:35 +00:00
mark_as_advanced ( LLVM_STATIC )
2012-10-06 11:00:45 +00:00
2011-05-12 11:16:32 +00:00
# disable for now, but plan to support on all platforms eventually
option ( WITH_MEM_JEMALLOC "Enable malloc replacement (http://www.canonware.com/jemalloc)" OFF )
mark_as_advanced ( WITH_MEM_JEMALLOC )
2013-10-03 12:22:44 +00:00
# currently only used for BLI_mempool
option ( WITH_MEM_VALGRIND "Enable extended valgrind support for better reporting" OFF )
mark_as_advanced ( WITH_MEM_VALGRIND )
2010-12-08 09:02:08 +00:00
# Debug
2011-03-11 01:24:16 +00:00
option ( WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( WITH_CXX_GUARDEDALLOC )
2011-01-09 15:12:08 +00:00
option ( WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" OFF )
2010-12-15 10:22:26 +00:00
mark_as_advanced ( WITH_ASSERT_ABORT )
2013-11-21 16:38:52 +00:00
option ( WITH_BOOST "Enable features depending on boost" ON )
2013-01-31 23:25:06 +00:00
2014-06-18 12:49:17 +00:00
# Unit testsing
option ( WITH_GTESTS "Enable GTest unit testing" OFF )
2014-11-13 13:07:34 +00:00
# Documentation
if ( UNIX AND NOT APPLE )
option ( WITH_DOC_MANPAGE "Create a manual page (Unix manpage)" OFF )
endif ( )
2014-10-07 20:46:19 +00:00
# OpenGL
2014-10-07 22:11:23 +00:00
option ( WITH_GLEW_MX "Support multiple GLEW contexts (experimental)" OFF )
2014-10-07 20:46:19 +00:00
option ( WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF )
option ( WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF )
option ( WITH_GL_PROFILE_COMPAT "Support using the OpenGL 'compatibility' profile. (deprecated)" ON )
option ( WITH_GL_PROFILE_CORE "Support using the OpenGL 3.2+ 'core' profile." OFF )
option ( WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (thru either EGL or the AGL/WGL/XGL 'es20' profile)" OFF )
mark_as_advanced (
W I T H _ G L E W _ M X
W I T H _ G L E W _ E S
W I T H _ G L _ E G L
W I T H _ G L _ P R O F I L E _ C O M P A T
W I T H _ G L _ P R O F I L E _ C O R E
W I T H _ G L _ P R O F I L E _ E S 2 0
)
2014-11-13 14:03:30 +00:00
if ( WITH_GL_PROFILE_COMPAT )
2014-10-07 20:46:19 +00:00
set ( WITH_GLU ON )
else ( )
set ( WITH_GLU OFF )
endif ( )
if ( WIN32 )
option ( WITH_GL_ANGLE "Link with the ANGLE library, an OpenGL ES 2.0 implementation based on Direct3D, instead of the system OpenGL library." OFF )
mark_as_advanced ( WITH_GL_ANGLE )
endif ( )
if ( WITH_GLEW_ES AND WITH_SYSTEM_GLEW )
message ( WARNING Ignoring WITH_SYSTEM_GLEW and using WITH_GLEW_ES )
set ( WITH_SYSTEM_GLEW OFF )
endif ( )
2014-11-08 10:32:32 +00:00
if ( MSVC )
getDefaultWindowsPrefixBase ( CMAKE_GENERIC_PROGRAM_FILES )
set ( CPACK_INSTALL_PREFIX ${ CMAKE_GENERIC_PROGRAM_FILES } / $ {} )
endif ( )
2014-11-13 22:32:01 +00:00
# avoid using again
option_defaults_clear ( )
# end option(...)
2014-11-11 20:44:26 +00:00
2014-11-08 10:32:32 +00:00
# By default we want to install to the directory we are compiling our executables
# unless specified otherwise, which we currently do not allow
2014-11-13 14:03:30 +00:00
if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
2014-11-13 13:10:30 +00:00
if ( MSVC )
2014-11-13 14:03:30 +00:00
set ( CMAKE_INSTALL_PREFIX ${ EXECUTABLE_OUTPUT_PATH } /\ ${ BUILD_TYPE } CACHE PATH "default install path" FORCE )
2014-11-13 13:10:30 +00:00
elseif ( APPLE )
2014-11-13 14:03:30 +00:00
set ( CMAKE_INSTALL_PREFIX ${ EXECUTABLE_OUTPUT_PATH } /\ ${ BUILD_TYPE } CACHE PATH "default install path" FORCE )
2014-11-13 13:10:30 +00:00
else ( )
2014-11-13 14:03:30 +00:00
if ( WITH_INSTALL_PORTABLE )
set ( CMAKE_INSTALL_PREFIX ${ EXECUTABLE_OUTPUT_PATH } CACHE PATH "default install path" FORCE )
2014-11-13 13:10:30 +00:00
endif ( )
endif ( )
2014-11-08 10:32:32 +00:00
endif ( )
2014-11-11 20:44:26 +00:00
2014-11-08 10:32:32 +00:00
2014-10-07 20:46:19 +00:00
# Apple
2010-12-08 08:43:06 +00:00
if ( APPLE )
2014-09-12 12:42:13 +00:00
if ( ${ CMAKE_VERSION } VERSION_LESS 3.0 ) # else breaks setting CMP0043 policy
cmake_minimum_required ( VERSION 2.8.8 )
cmake_policy ( VERSION 2.8.8 )
endif ( )
2012-11-29 10:28:06 +00:00
2011-03-07 21:28:36 +00:00
if ( NOT CMAKE_OSX_ARCHITECTURES )
set ( CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
" C h o o s e t h e a r c h i t e c t u r e y o u w a n t t o b u i l d B l e n d e r f o r : i 3 8 6 , x 8 6 _ 6 4 o r p p c "
F O R C E )
endif ( )
2012-03-10 16:21:48 +00:00
2013-11-15 22:20:16 +00:00
execute_process ( COMMAND uname -r OUTPUT_VARIABLE MAC_SYS ) # check for actual system-version
2014-08-03 10:51:26 +00:00
if ( ${ MAC_SYS } MATCHES 14 )
set ( OSX_SYSTEM 10.10 )
2014-09-17 23:37:49 +00:00
# throw an error here, older cmake cannot handle 2 digit subversion!
cmake_minimum_required ( VERSION 3.0.0 )
2014-08-03 10:51:26 +00:00
elseif ( ${ MAC_SYS } MATCHES 13 )
2013-11-15 22:20:16 +00:00
set ( OSX_SYSTEM 10.9 )
elseif ( ${ MAC_SYS } MATCHES 12 )
set ( OSX_SYSTEM 10.8 )
elseif ( ${ MAC_SYS } MATCHES 11 )
set ( OSX_SYSTEM 10.7 )
elseif ( ${ MAC_SYS } MATCHES 10 )
set ( OSX_SYSTEM 10.6 )
elseif ( ${ MAC_SYS } MATCHES 9 )
set ( OSX_SYSTEM 10.5 )
else ( )
set ( OSX_SYSTEM unsupported )
endif ( )
message ( STATUS "Detected system-version: " ${ OSX_SYSTEM } )
2012-03-15 15:32:56 +00:00
2013-09-13 21:13:57 +00:00
# workaround for incorrect cmake xcode lookup for developer previews - XCODE_VERSION does not take xcode-select path into accout
# but would always look into /Applications/Xcode.app while dev versions are named Xcode<version>-DP<preview_number>
execute_process ( COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE )
string ( REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${ XCODE_CHECK } ) # truncate to bundlepath in any case
message ( STATUS "Xcode-bundle : " ${ XCODE_BUNDLE } )
if ( ${ CMAKE_GENERATOR } MATCHES "Xcode" )
2013-09-15 10:56:36 +00:00
if ( ${ XCODE_VERSION } VERSION_GREATER 4.2 ) # earlier xcode has no bundled developer dir, no sense in getting xcode path from
string ( SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME ) # reduce to XCode name without dp extension
if ( ${ DP_NAME } MATCHES Xcode5 )
set ( XCODE_VERSION 5 )
endif ( )
endif ( )
2013-09-13 14:57:57 +00:00
2012-11-11 18:06:10 +00:00
##### cmake incompatibility with xcode 4.3 and higher #####
2012-03-15 15:32:56 +00:00
if ( ${ XCODE_VERSION } MATCHES '' ) # cmake fails due looking for xcode in the wrong path, thus will be empty var
2012-11-11 18:06:10 +00:00
message ( FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher" )
2012-03-15 15:32:56 +00:00
endif ( )
2012-11-11 18:06:10 +00:00
### end cmake incompatibility with xcode 4.3 and higher ###
2012-03-15 15:32:56 +00:00
2012-03-14 23:42:46 +00:00
if ( ${ XCODE_VERSION } VERSION_EQUAL 4 OR ${ XCODE_VERSION } VERSION_GREATER 4 AND ${ XCODE_VERSION } VERSION_LESS 4.3 )
2012-02-20 14:19:45 +00:00
# Xcode 4 defaults to the Apple LLVM Compiler.
2012-03-14 23:42:46 +00:00
# Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
2012-02-20 14:19:45 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42" )
message ( STATUS "Setting compiler to: " ${ CMAKE_XCODE_ATTRIBUTE_GCC_VERSION } )
endif ( )
2012-03-10 16:21:48 +00:00
else ( ) # unix makefile generator does not fill XCODE_VERSION var, so we get it with a command
2012-05-17 14:00:54 +00:00
execute_process ( COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR )
string ( SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION ) # truncate away build-nr
unset ( XCODE_VERS_BUILD_NR )
2012-02-02 11:08:48 +00:00
endif ( )
2012-03-10 16:21:48 +00:00
message ( STATUS "Detected Xcode-version: " ${ XCODE_VERSION } )
2012-11-11 17:04:12 +00:00
if ( ${ XCODE_VERSION } VERSION_LESS 4.3 )
set ( CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX ${ OSX_SYSTEM } .sdk CACHE PATH "" FORCE ) # use guaranteed existing sdk
else ( )
2013-09-13 14:57:57 +00:00
# note: xcode-select path could be ambigous, cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
# so i use a selfcomposed bundlepath here
set ( OSX_SYSROOT_PREFIX ${ XCODE_BUNDLE } /Contents/Developer/Platforms/MacOSX.platform )
message ( STATUS "OSX_SYSROOT_PREFIX: " ${ OSX_SYSROOT_PREFIX } )
2012-11-11 17:04:12 +00:00
set ( OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX ${ OSX_SYSTEM } .sdk ) # use guaranteed existing sdk
set ( CMAKE_OSX_SYSROOT ${ OSX_SYSROOT_PREFIX } / ${ OSX_DEVELOPER_PREFIX } CACHE PATH "" FORCE )
2014-01-23 11:34:56 +00:00
if ( ${ CMAKE_GENERATOR } MATCHES "Xcode" )
set ( CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx ${ OSX_SYSTEM } ) # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
endif ( )
2012-11-11 17:04:12 +00:00
endif ( )
2013-11-19 23:38:51 +00:00
2014-01-23 11:34:56 +00:00
if ( OSX_SYSTEM MATCHES 10.9 )
set ( CMAKE_FIND_ROOT_PATH ${ CMAKE_OSX_SYSROOT } ) # make sure syslibs and headers are looked up in sdk ( expecially for 10.9 openGL atm. )
endif ( )
2013-11-19 23:38:51 +00:00
2012-11-11 17:04:12 +00:00
if ( NOT CMAKE_OSX_DEPLOYMENT_TARGET )
2013-11-15 19:05:23 +00:00
set ( CMAKE_OSX_DEPLOYMENT_TARGET "10.6" CACHE STRING "" FORCE ) # 10.6 is our min. target, if you use higher sdk, weak linking happens
2012-11-11 17:04:12 +00:00
endif ( )
2012-03-10 16:21:48 +00:00
2012-11-11 18:06:10 +00:00
if ( NOT ${ CMAKE_GENERATOR } MATCHES "Xcode" )
# force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}" )
2013-05-19 16:47:41 +00:00
add_definitions ( "-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}" )
2012-11-11 18:06:10 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
option ( WITH_LIBS10.5 "Use 10.5 libs (needed for 64bit builds)" OFF )
endif ( )
2010-06-06 13:32:58 +00:00
2012-03-13 22:27:21 +00:00
2011-06-08 01:53:12 +00:00
#-----------------------------------------------------------------------------
# Check for conflicting/unsupported configurations
2013-08-27 02:37:48 +00:00
if ( NOT WITH_BLENDER AND NOT WITH_PLAYER AND NOT WITH_CYCLES_STANDALONE )
2014-01-18 14:19:49 +00:00
message ( FATAL_ERROR "At least one of WITH_BLENDER or WITH_PLAYER or WITH_CYCLES_STANDALONE must be enabled, nothing to do!" )
2011-07-13 08:15:06 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
if ( NOT WITH_GAMEENGINE AND WITH_PLAYER )
message ( FATAL_ERROR "WITH_PLAYER requires WITH_GAMEENGINE" )
endif ( )
2006-11-17 02:27:12 +00:00
2012-11-12 04:50:45 +00:00
if ( NOT WITH_AUDASPACE )
if ( WITH_OPENAL )
message ( FATAL_ERROR "WITH_OPENAL requires WITH_AUDASPACE" )
endif ( )
if ( WITH_JACK )
message ( FATAL_ERROR "WITH_JACK requires WITH_AUDASPACE" )
endif ( )
if ( WITH_GAMEENGINE )
message ( FATAL_ERROR "WITH_GAMEENGINE requires WITH_AUDASPACE" )
endif ( )
2011-06-23 09:27:56 +00:00
endif ( )
2011-07-13 06:04:54 +00:00
if ( NOT WITH_SDL AND WITH_GHOST_SDL )
2012-11-12 04:50:45 +00:00
message ( FATAL_ERROR "WITH_GHOST_SDL requires WITH_SDL" )
2011-07-12 13:17:54 +00:00
endif ( )
2012-01-06 05:13:36 +00:00
if ( WITH_IMAGE_REDCODE AND ( ( NOT WITH_IMAGE_OPENJPEG ) OR ( NOT WITH_CODEC_FFMPEG ) ) )
message ( FATAL_ERROR "WITH_IMAGE_REDCODE requires WITH_IMAGE_OPENJPEG and WITH_CODEC_FFMPEG" )
2010-12-08 08:43:06 +00:00
endif ( )
2010-11-30 18:52:39 +00:00
2011-02-22 14:27:46 +00:00
# python module, needs some different options
if ( WITH_PYTHON_MODULE AND WITH_PLAYER )
message ( FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PLAYER to be OFF" )
endif ( )
if ( WITH_PYTHON_MODULE AND WITH_PYTHON_INSTALL )
message ( FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PYTHON_INSTALL to be OFF" )
endif ( )
2012-04-12 05:34:17 +00:00
2011-06-04 14:12:55 +00:00
# may as well build python module without a UI
if ( WITH_PYTHON_MODULE )
set ( WITH_HEADLESS ON )
endif ( )
2013-08-07 22:40:03 +00:00
if ( NOT WITH_PYTHON )
set ( WITH_CYCLES OFF )
endif ( )
2014-11-13 12:36:33 +00:00
# enable boost for cycles, audaspace or i18n
2013-01-31 23:25:06 +00:00
# otherwise if the user disabled
if ( NOT WITH_BOOST )
# Explicitly disabled. so disable all deps.
2013-04-29 00:44:33 +00:00
macro ( set_and_warn
_ s e t t i n g _ v a l )
if ( ${ ${_setting } } )
2013-04-29 00:49:44 +00:00
message ( STATUS "'WITH_BOOST' is disabled: forceing 'set(${_setting} ${_val})'" )
endif ( )
2013-04-29 00:44:33 +00:00
set ( ${ _setting } ${ _val } )
endmacro ( )
set_and_warn ( WITH_CYCLES OFF )
set_and_warn ( WITH_AUDASPACE OFF )
set_and_warn ( WITH_INTERNATIONAL OFF )
set_and_warn ( WITH_OPENAL OFF ) # depends on AUDASPACE
set_and_warn ( WITH_GAMEENGINE OFF ) # depends on AUDASPACE
2014-11-13 12:36:33 +00:00
elseif ( WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_AUDASPACE OR WITH_INTERNATIONAL )
2013-01-31 23:25:06 +00:00
# Keep enabled
else ( )
# Enabled but we don't need it
set ( WITH_BOOST OFF )
2011-08-16 16:15:34 +00:00
endif ( )
2013-03-27 18:44:46 +00:00
# auto enable openimageio for cycles
if ( WITH_CYCLES )
set ( WITH_OPENIMAGEIO ON )
endif ( )
# auto enable openimageio linking dependencies
if ( WITH_OPENIMAGEIO )
set ( WITH_IMAGE_OPENEXR ON )
set ( WITH_IMAGE_TIFF ON )
endif ( )
2012-10-06 11:00:45 +00:00
# auto enable llvm for cycles_osl
2012-11-15 17:16:27 +00:00
if ( WITH_CYCLES_OSL )
2014-11-13 22:32:01 +00:00
set ( WITH_LLVM ON CACHE BOOL "" FORCE )
2012-10-06 11:00:45 +00:00
endif ( )
2012-09-28 06:45:20 +00:00
# don't store paths to libs for portable distribution
2011-08-23 20:19:08 +00:00
if ( WITH_INSTALL_PORTABLE )
set ( CMAKE_SKIP_BUILD_RPATH TRUE )
endif ( )
2012-03-13 14:28:58 +00:00
if ( WITH_GHOST_SDL OR WITH_HEADLESS )
2014-10-07 20:46:19 +00:00
set ( WITH_X11 OFF )
set ( WITH_X11_XINPUT OFF )
2012-09-16 10:39:19 +00:00
set ( WITH_X11_XF86VMODE OFF )
2014-10-07 20:46:19 +00:00
set ( WITH_GHOST_XDND OFF )
2012-03-13 14:28:58 +00:00
endif ( )
2014-10-15 08:53:12 +00:00
if ( WITH_CPU_SSE )
TEST_SSE_SUPPORT ( COMPILER_SSE_FLAG COMPILER_SSE2_FLAG )
else ( )
message ( STATUS "SSE and SSE2 optimizations are DISABLED!" )
set ( COMPILER_SSE_FLAG )
set ( COMPILER_SSE2_FLAG )
endif ( )
2012-03-13 22:27:21 +00:00
2013-01-01 12:47:58 +00:00
TEST_STDBOOL_SUPPORT ( )
if ( HAVE_STDBOOL_H )
add_definitions ( -DHAVE_STDBOOL_H )
endif ( )
2012-03-13 14:28:58 +00:00
2012-03-14 00:30:20 +00:00
#-----------------------------------------------------------------------------
# Check for valid directories
2014-01-28 12:00:28 +00:00
# ... a partial checkout may cause this.
2014-02-15 20:53:53 +00:00
#
# note: we need to check for a known subdir in both cases.
# since uninitialized git submodules will give blank dirs
2012-03-14 00:30:20 +00:00
if ( WITH_INTERNATIONAL )
2014-02-15 20:53:53 +00:00
if ( NOT EXISTS "${CMAKE_SOURCE_DIR}/release/datafiles/locale/languages" )
2012-03-14 00:30:20 +00:00
message ( WARNING "Translation path '${CMAKE_SOURCE_DIR}/release/datafiles/locale' is missing, "
2014-01-28 12:00:28 +00:00
" T h i s i s a ' g i t s u b m o d u l e ' , w h i c h a r e k n o w n n o t t o w o r k w i t h b r i d g e s t o o t h e r v e r s i o n "
2012-03-14 00:30:20 +00:00
" c o n t r o l s y s t e m s , d i s a b l i n g ' W I T H _ I N T E R N A T I O N A L ' . " )
set ( WITH_INTERNATIONAL OFF )
endif ( )
endif ( )
if ( WITH_PYTHON )
2014-02-15 20:53:53 +00:00
if ( NOT EXISTS "${CMAKE_SOURCE_DIR}/release/scripts/addons/modules" )
2012-03-14 00:30:20 +00:00
message ( WARNING "Addons path '${CMAKE_SOURCE_DIR}/release/scripts/addons' is missing, "
2014-01-28 12:00:28 +00:00
" T h i s i s a ' g i t s u b m o d u l e ' , w h i c h a r e k n o w n n o t t o w o r k w i t h b r i d g e s t o o t h e r v e r s i o n "
2012-03-14 00:30:20 +00:00
" c o n t r o l s y s t e m s : * C O N T I N U I N G W I T H O U T A D D O N S * " )
endif ( )
endif ( )
2011-02-22 06:23:07 +00:00
#-----------------------------------------------------------------------------
# Initialize un-cached vars, avoid unused warning
2011-02-21 13:13:08 +00:00
# linux only, not cached
set ( WITH_BINRELOC OFF )
2011-09-30 15:51:58 +00:00
# MAXOSX only, set to avoid uninitialized
2011-10-01 19:52:33 +00:00
set ( EXETYPE "" )
2011-06-28 02:49:49 +00:00
# C/C++ flags
set ( PLATFORM_CFLAGS )
2011-06-14 00:24:50 +00:00
2011-02-22 06:23:07 +00:00
# these are added to later on.
2011-06-28 02:49:49 +00:00
set ( C_WARNINGS )
set ( CXX_WARNINGS )
2011-10-30 04:48:00 +00:00
# for gcc -Wno-blah-blah
set ( CC_REMOVE_STRICT_FLAGS )
2011-06-28 02:49:49 +00:00
# libraries to link the binary with passed to target_link_libraries()
# known as LLIBS to scons
2011-10-01 19:52:33 +00:00
set ( PLATFORM_LINKLIBS "" )
2011-06-28 02:49:49 +00:00
# Added to linker flags in setup_liblinks
# - CMAKE_EXE_LINKER_FLAGS
# - CMAKE_EXE_LINKER_FLAGS_DEBUG
2011-10-01 19:52:33 +00:00
set ( PLATFORM_LINKFLAGS "" )
set ( PLATFORM_LINKFLAGS_DEBUG "" )
2011-02-22 06:23:07 +00:00
2006-12-06 08:52:43 +00:00
# For alternate Python locations the commandline can be used to override detected/default cache settings, e.g:
2011-09-30 15:51:58 +00:00
# On Unix:
2011-03-08 22:11:15 +00:00
# cmake ../blender \
2014-04-30 13:13:25 +00:00
# -D PYTHON_VERSION=3.4 \
# -D PYTHON_INCLUDE_DIR=/opt/py34/include/python3.4d \
# -D PYTHON_LIBRARY=/opt/py34/lib/libpython3.4d.so
2011-03-08 22:11:15 +00:00
#
2011-09-30 15:51:58 +00:00
# On Macs:
2011-03-08 22:11:15 +00:00
# cmake ../blender \
2014-04-30 13:13:25 +00:00
# -D PYTHON_INCLUDE_DIR=/System/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4 \
# -D PYTHON_LIBPATH=/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/config \
2011-03-08 22:11:15 +00:00
# -G Xcode
2006-12-06 08:52:43 +00:00
#
2010-10-13 14:44:22 +00:00
# When changing any of this remember to update the notes in doc/build_systems/cmake.txt
2006-12-06 08:52:43 +00:00
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
#Platform specifics
2014-10-07 20:46:19 +00:00
if ( WITH_X11 )
find_package ( X11 REQUIRED )
find_path ( X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${ X11_INC_SEARCH_PATH } )
mark_as_advanced ( X11_XF86keysym_INCLUDE_PATH )
list ( APPEND PLATFORM_LINKLIBS ${ X11_X11_LIB } )
if ( WITH_X11_XINPUT )
if ( X11_Xinput_LIB )
list ( APPEND PLATFORM_LINKLIBS ${ X11_Xinput_LIB } )
else ( )
set ( WITH_X11_XINPUT OFF )
endif ( )
endif ( )
if ( WITH_X11_XF86VMODE )
# XXX, why dont cmake make this available?
find_library ( X11_Xxf86vmode_LIB Xxf86vm ${ X11_LIB_SEARCH_PATH } )
mark_as_advanced ( X11_Xxf86vmode_LIB )
if ( X11_Xxf86vmode_LIB )
list ( APPEND PLATFORM_LINKLIBS ${ X11_Xxf86vmode_LIB } )
else ( )
set ( WITH_X11_XF86VMODE OFF )
endif ( )
endif ( )
endif ( )
2010-12-08 08:43:06 +00:00
if ( UNIX AND NOT APPLE )
2012-11-19 19:43:03 +00:00
macro ( find_package_wrapper )
2013-06-19 11:26:11 +00:00
if ( WITH_STATIC_LIBS )
2012-11-19 19:43:03 +00:00
set ( _cmake_find_library_suffixes_back ${ CMAKE_FIND_LIBRARY_SUFFIXES } )
set ( CMAKE_FIND_LIBRARY_SUFFIXES .a ${ CMAKE_FIND_LIBRARY_SUFFIXES } )
endif ( )
find_package ( ${ ARGV } )
2013-06-19 11:26:11 +00:00
if ( WITH_STATIC_LIBS )
2012-11-19 19:43:03 +00:00
set ( CMAKE_FIND_LIBRARY_SUFFIXES ${ _cmake_find_library_suffixes_back } )
unset ( _cmake_find_library_suffixes_back )
endif ( )
endmacro ( )
find_package_wrapper ( JPEG REQUIRED )
find_package_wrapper ( PNG REQUIRED )
find_package_wrapper ( ZLIB REQUIRED )
find_package_wrapper ( Freetype REQUIRED )
2011-06-19 07:46:24 +00:00
if ( WITH_PYTHON )
2014-04-30 13:13:25 +00:00
# No way to set py34. remove for now.
2011-06-19 07:46:24 +00:00
# find_package(PythonLibs)
# Use our own instead, since wothout py is such a rare case,
# require this package
2012-11-19 19:43:03 +00:00
# XXX Linking errors with debian static python :/
# find_package_wrapper(PythonLibsUnix REQUIRED)
2011-06-19 07:46:24 +00:00
find_package ( PythonLibsUnix REQUIRED )
endif ( )
if ( WITH_IMAGE_OPENEXR )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenEXR ) # our own module
2011-06-19 07:46:24 +00:00
if ( NOT OPENEXR_FOUND )
set ( WITH_IMAGE_OPENEXR OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_OPENJPEG )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenJPEG )
2011-06-19 07:46:24 +00:00
if ( NOT OPENJPEG_FOUND )
set ( WITH_IMAGE_OPENJPEG OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_TIFF )
2012-11-19 19:43:03 +00:00
# XXX Linking errors with debian static tiff :/
# find_package_wrapper(TIFF)
2011-06-19 07:46:24 +00:00
find_package ( TIFF )
if ( NOT TIFF_FOUND )
set ( WITH_IMAGE_TIFF OFF )
endif ( )
endif ( )
# Audio IO
2010-12-08 08:43:06 +00:00
if ( WITH_OPENAL )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenAL )
2010-12-08 08:43:06 +00:00
if ( NOT OPENAL_FOUND )
set ( WITH_OPENAL OFF )
endif ( )
endif ( )
2011-06-19 07:46:24 +00:00
if ( WITH_SDL )
2014-11-17 11:35:36 +00:00
if ( WITH_SDL_DYNLOAD )
set ( SDLMAIN_LIBRARY )
set ( SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2" )
set ( SDL_LIBRARY )
set ( SDL_LIBRARY_TEMP )
else ( )
find_package_wrapper ( SDL )
mark_as_advanced (
S D L M A I N _ L I B R A R Y
S D L _ I N C L U D E _ D I R
S D L _ L I B R A R Y
S D L _ L I B R A R Y _ T E M P
)
# unset(SDLMAIN_LIBRARY CACHE)
if ( NOT SDL_FOUND )
set ( WITH_SDL OFF )
endif ( )
2011-06-19 07:46:24 +00:00
endif ( )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_JACK )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( Jack )
2011-06-19 15:03:50 +00:00
if ( NOT JACK_FOUND )
set ( WITH_JACK OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2011-06-19 07:46:24 +00:00
# Codecs
2010-12-08 08:43:06 +00:00
if ( WITH_CODEC_SNDFILE )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( SndFile )
2011-06-18 12:12:19 +00:00
if ( NOT SNDFILE_FOUND )
set ( WITH_CODEC_SNDFILE OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2011-06-19 07:46:24 +00:00
if ( WITH_CODEC_FFMPEG )
2012-11-18 17:26:23 +00:00
set ( FFMPEG /usr CACHE PATH "FFMPEG Directory" )
set ( FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries" )
2011-11-11 14:52:24 +00:00
2011-06-19 07:46:24 +00:00
mark_as_advanced ( FFMPEG )
2012-09-20 07:43:48 +00:00
2012-09-26 20:05:38 +00:00
# lame, but until we have proper find module for ffmpeg
2012-09-20 07:43:48 +00:00
set ( FFMPEG_INCLUDE_DIRS ${ FFMPEG } /include )
if ( EXISTS "${FFMPEG}/include/ffmpeg/" )
2012-10-03 05:49:22 +00:00
list ( APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg" )
2012-09-20 07:43:48 +00:00
endif ( )
# end lameness
2011-06-19 07:46:24 +00:00
mark_as_advanced ( FFMPEG_LIBRARIES )
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_FFTW3 )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( Fftw3 )
2011-06-19 08:57:34 +00:00
if ( NOT FFTW3_FOUND )
set ( WITH_FFTW3 OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_OPENCOLLADA )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenCOLLADA )
2011-08-24 16:04:35 +00:00
if ( OPENCOLLADA_FOUND )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( XML2 )
find_package_wrapper ( PCRE )
2011-08-24 16:04:35 +00:00
else ( )
set ( WITH_OPENCOLLADA OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2011-05-12 11:16:32 +00:00
if ( WITH_MEM_JEMALLOC )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( JeMalloc )
2011-06-19 14:55:51 +00:00
if ( NOT JEMALLOC_FOUND )
set ( WITH_MEM_JEMALLOC OFF )
endif ( )
2011-05-12 11:16:32 +00:00
endif ( )
2013-03-24 12:13:13 +00:00
if ( WITH_INPUT_NDOF )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( Spacenav )
2011-08-02 06:32:53 +00:00
if ( NOT SPACENAV_FOUND )
set ( WITH_INPUT_NDOF OFF )
endif ( )
# use generic names within blenders buildsystem.
if ( SPACENAV_FOUND )
set ( NDOF_INCLUDE_DIRS ${ SPACENAV_INCLUDE_DIRS } )
set ( NDOF_LIBRARIES ${ SPACENAV_LIBRARIES } )
2011-06-27 23:24:24 +00:00
endif ( )
endif ( )
2011-11-07 15:44:09 +00:00
if ( WITH_BOOST )
2011-11-08 21:40:08 +00:00
# uses in build instructions to override include and library variables
if ( NOT BOOST_CUSTOM )
2013-06-19 11:26:11 +00:00
if ( WITH_STATIC_LIBS )
2012-11-19 19:43:03 +00:00
set ( Boost_USE_STATIC_LIBS ON )
endif ( )
2012-12-13 08:46:07 +00:00
set ( Boost_USE_MULTITHREADED ON )
2012-11-15 17:31:18 +00:00
set ( __boost_packages filesystem regex system thread date_time )
2013-03-24 12:13:13 +00:00
if ( WITH_INTERNATIONAL )
2012-11-11 16:54:26 +00:00
list ( APPEND __boost_packages locale )
endif ( )
2013-12-07 01:29:53 +00:00
if ( WITH_CYCLES_NETWORK )
list ( APPEND __boost_packages serialization )
endif ( )
2012-12-13 08:46:07 +00:00
find_package ( Boost 1.48 COMPONENTS ${ __boost_packages } )
2013-12-23 15:52:34 +00:00
if ( NOT Boost_FOUND )
# try to find non-multithreaded if -mt not found, this flag
# doesn't matter for us, it has nothing to do with thread
# safety, but keep it to not disturb build setups
set ( Boost_USE_MULTITHREADED OFF )
find_package ( Boost 1.48 COMPONENTS ${ __boost_packages } )
endif ( )
2013-03-24 12:13:13 +00:00
unset ( __boost_packages )
2013-02-23 20:42:15 +00:00
if ( Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU )
2012-11-19 08:51:35 +00:00
find_package ( IcuLinux )
endif ( )
2011-11-10 03:44:50 +00:00
mark_as_advanced ( Boost_DIR ) # why doesnt boost do this?
2011-11-08 21:40:08 +00:00
endif ( )
2011-11-07 15:44:09 +00:00
set ( BOOST_INCLUDE_DIR ${ Boost_INCLUDE_DIRS } )
set ( BOOST_LIBRARIES ${ Boost_LIBRARIES } )
set ( BOOST_LIBPATH ${ Boost_LIBRARY_DIRS } )
set ( BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB" )
endif ( )
if ( WITH_OPENIMAGEIO )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenImageIO )
2014-11-15 17:56:22 +00:00
if ( NOT OPENIMAGEIO_PUGIXML_FOUND AND WITH_CYCLES_STANDALONE )
find_package_wrapper ( PugiXML )
else ( )
set ( PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}" )
set ( PUGIXML_LIBRARIES "" )
endif ( )
2011-11-07 15:44:09 +00:00
2012-06-04 22:34:28 +00:00
set ( OPENIMAGEIO_LIBRARIES ${ OPENIMAGEIO_LIBRARIES } ${ PNG_LIBRARIES } ${ JPEG_LIBRARIES } ${ ZLIB_LIBRARIES } ${ BOOST_LIBRARIES } )
2011-11-07 15:44:09 +00:00
set ( OPENIMAGEIO_LIBPATH ) # TODO, remove and reference the absolute path everywhere
2013-03-24 12:13:13 +00:00
set ( OPENIMAGEIO_DEFINITIONS "" )
2011-11-07 15:44:09 +00:00
2012-06-04 22:34:28 +00:00
if ( WITH_IMAGE_TIFF )
2012-06-05 06:18:31 +00:00
list ( APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}" )
2012-06-04 22:34:28 +00:00
endif ( )
if ( WITH_IMAGE_OPENEXR )
2012-06-05 06:18:31 +00:00
list ( APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}" )
2012-06-04 22:34:28 +00:00
endif ( )
2011-11-07 15:44:09 +00:00
if ( NOT OPENIMAGEIO_FOUND )
set ( WITH_OPENIMAGEIO OFF )
2011-11-08 17:00:40 +00:00
message ( STATUS "OpenImageIO not found, disabling WITH_CYCLES" )
2011-11-07 15:44:09 +00:00
endif ( )
endif ( )
2012-09-15 10:03:17 +00:00
if ( WITH_OPENCOLORIO )
2012-11-19 19:43:03 +00:00
find_package_wrapper ( OpenColorIO )
2012-09-15 10:03:17 +00:00
set ( OPENCOLORIO_LIBRARIES ${ OPENCOLORIO_LIBRARIES } )
set ( OPENCOLORIO_LIBPATH ) # TODO, remove and reference the absolute path everywhere
set ( OPENCOLORIO_DEFINITIONS )
if ( NOT OPENCOLORIO_FOUND )
set ( WITH_OPENCOLORIO OFF )
message ( STATUS "OpenColorIO not found" )
endif ( )
endif ( )
2012-11-18 17:26:23 +00:00
# XXX Maybe most of this section should go into an llvm module?
2012-10-06 11:00:45 +00:00
if ( WITH_LLVM )
2012-11-18 17:26:23 +00:00
# Set llvm version if not specified
if ( NOT LLVM_VERSION )
set ( LLVM_VERSION "3.0" )
endif ( )
2013-04-15 16:18:35 +00:00
2012-11-21 08:59:20 +00:00
if ( LLVM_DIRECTORY )
2013-08-28 04:32:39 +00:00
find_program ( LLVM_CONFIG llvm-config- ${ LLVM_VERSION } HINTS ${ LLVM_DIRECTORY } /bin NO_CMAKE_PATH )
2012-11-21 08:59:20 +00:00
if ( NOT LLVM_CONFIG )
2013-08-28 04:32:39 +00:00
find_program ( LLVM_CONFIG llvm-config HINTS ${ LLVM_DIRECTORY } /bin NO_CMAKE_PATH )
2012-11-21 08:59:20 +00:00
endif ( )
else ( )
2013-08-28 04:32:39 +00:00
find_program ( LLVM_CONFIG llvm-config- ${ LLVM_VERSION } )
2012-11-21 08:59:20 +00:00
if ( NOT LLVM_CONFIG )
2013-08-28 04:32:39 +00:00
find_program ( LLVM_CONFIG llvm-config )
2012-11-21 08:59:20 +00:00
endif ( )
2012-10-06 11:00:45 +00:00
endif ( )
2013-09-25 17:04:01 +00:00
if ( NOT DEFINED LLVM_VERSION )
execute_process ( COMMAND ${ LLVM_CONFIG } --version
O U T P U T _ V A R I A B L E L L V M _ V E R S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
set ( LLVM_VERSION ${ LLVM_VERSION } CACHE STRING "Version of LLVM to use" )
endif ( )
if ( NOT DEFINED LLVM_DIRECTORY )
execute_process ( COMMAND ${ LLVM_CONFIG } --prefix
O U T P U T _ V A R I A B L E L L V M _ D I R E C T O R Y
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
set ( LLVM_DIRECTORY ${ LLVM_DIRECTORY } CACHE PATH "Path to the LLVM installation" )
endif ( )
if ( NOT DEFINED LLVM_LIBPATH )
execute_process ( COMMAND ${ LLVM_CONFIG } --libdir
O U T P U T _ V A R I A B L E L L V M _ L I B P A T H
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
set ( LLVM_LIBPATH ${ LLVM_LIBPATH } CACHE PATH "Path to the LLVM library path" )
2014-05-05 20:03:52 +00:00
mark_as_advanced ( LLVM_LIBPATH )
2013-09-25 17:04:01 +00:00
endif ( )
2013-04-15 16:18:35 +00:00
if ( LLVM_STATIC )
find_library ( LLVM_LIBRARY
N A M E S L L V M A n a l y s i s # first of a whole bunch of libs to get
2013-09-25 16:31:54 +00:00
P A T H S $ { L L V M _ L I B P A T H } )
2013-04-15 16:18:35 +00:00
else ( )
find_library ( LLVM_LIBRARY
N A M E S L L V M - $ { L L V M _ V E R S I O N }
2013-09-25 16:31:54 +00:00
P A T H S $ { L L V M _ L I B P A T H } )
2013-04-15 16:18:35 +00:00
endif ( )
2012-10-06 11:00:45 +00:00
2013-09-25 16:31:54 +00:00
if ( LLVM_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIBPATH )
2012-10-06 11:00:45 +00:00
if ( LLVM_STATIC )
# if static LLVM libraries were requested, use llvm-config to generate
# the list of what libraries we need, and substitute that in the right
# way for LLVM_LIBRARY.
execute_process ( COMMAND ${ LLVM_CONFIG } --libfiles
O U T P U T _ V A R I A B L E L L V M _ L I B R A R Y
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
2013-09-25 17:04:01 +00:00
string ( REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}" )
2012-10-06 11:00:45 +00:00
endif ( )
else ( )
message ( FATAL_ERROR "LLVM not found." )
endif ( )
2012-11-21 22:28:15 +00:00
2014-11-17 11:35:36 +00:00
endif ( )
if ( WITH_LLVM OR WITH_SDL_DYNLOAD )
2012-11-21 22:28:15 +00:00
# Fix for conflict with Mesa llvmpipe
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map" )
2012-10-06 11:00:45 +00:00
endif ( )
2012-09-10 06:18:20 +00:00
if ( WITH_CYCLES_OSL )
set ( CYCLES_OSL ${ LIBDIR } /osl CACHE PATH "Path to OpenShadingLanguage installation" )
message ( STATUS "CYCLES_OSL = ${CYCLES_OSL}" )
2012-09-10 08:38:51 +00:00
find_library ( OSL_LIB_EXEC NAMES oslexec PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_COMP NAMES oslcomp PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_QUERY NAMES oslquery PATHS ${ CYCLES_OSL } /lib )
2012-10-06 14:35:48 +00:00
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
# otherwise LLVM is missing the osl_allocate_closure_component function
list ( APPEND OSL_LIBRARIES ${ OSL_LIB_COMP } -Wl,--whole-archive ${ OSL_LIB_EXEC } -Wl,--no-whole-archive ${ OSL_LIB_QUERY } )
2014-12-29 09:48:21 +00:00
find_path ( OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${ CYCLES_OSL } /include )
2012-09-10 08:38:51 +00:00
find_program ( OSL_COMPILER NAMES oslc PATHS ${ CYCLES_OSL } /bin )
2012-09-10 06:18:20 +00:00
2014-12-29 09:48:21 +00:00
if ( OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER )
2012-09-10 06:18:20 +00:00
set ( OSL_FOUND TRUE )
else ( )
message ( STATUS "OSL not found" )
2014-11-21 12:07:18 +00:00
set ( WITH_CYCLES_OSL OFF )
2012-09-10 06:18:20 +00:00
endif ( )
endif ( )
2010-10-04 11:42:39 +00:00
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
2014-11-15 15:46:30 +00:00
list ( APPEND PLATFORM_LINKLIBS -lutil -lc -lm )
find_package ( Threads REQUIRED )
list ( APPEND PLATFORM_LINKLIBS ${ CMAKE_THREAD_LIBS_INIT } )
2015-01-09 12:31:38 +00:00
# used by other platforms
set ( PTHREADS_LIBRARIES ${ CMAKE_THREAD_LIBS_INIT } )
2014-11-15 15:46:30 +00:00
if ( CMAKE_DL_LIBS )
list ( APPEND PLATFORM_LINKLIBS ${ CMAKE_DL_LIBS } )
endif ( )
2011-06-04 14:12:55 +00:00
2010-12-08 08:43:06 +00:00
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
2011-02-21 13:13:08 +00:00
if ( NOT WITH_PYTHON_MODULE )
# binreloc is linux only
2011-06-18 14:12:54 +00:00
set ( BINRELOC_INCLUDE_DIRS ${ CMAKE_SOURCE_DIR } /extern/binreloc/include )
2011-02-21 13:13:08 +00:00
set ( WITH_BINRELOC ON )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2006-11-17 02:27:12 +00:00
2011-10-26 00:51:29 +00:00
# lfs on glibc, all compilers should use
add_definitions ( -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE )
2009-01-14 16:40:11 +00:00
2010-11-15 05:32:49 +00:00
# GNU Compiler
2010-12-08 08:43:06 +00:00
if ( CMAKE_COMPILER_IS_GNUCC )
set ( PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing" )
2011-08-21 11:06:49 +00:00
# CLang is the same as GCC for now.
2013-12-02 00:36:33 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "Clang" )
2011-08-21 11:06:49 +00:00
set ( PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing" )
2012-01-12 16:31:27 +00:00
# Solaris CC
2013-12-02 00:36:33 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "SunPro" )
2012-01-12 16:31:27 +00:00
set ( PLATFORM_CFLAGS "-pipe -features=extensions -fPIC -D__FUNCTION__=__func__" )
2010-11-15 05:32:49 +00:00
# Intel C++ Compiler
2010-12-08 08:43:06 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "Intel" )
2010-11-15 05:32:49 +00:00
# think these next two are broken
2011-09-30 15:51:58 +00:00
find_program ( XIAR xiar )
if ( XIAR )
2010-12-08 08:43:06 +00:00
set ( CMAKE_AR "${XIAR}" )
2011-09-30 15:51:58 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
mark_as_advanced ( XIAR )
2010-11-15 05:32:49 +00:00
2011-09-30 15:51:58 +00:00
find_program ( XILD xild )
if ( XILD )
2010-12-08 08:43:06 +00:00
set ( CMAKE_LINKER "${XILD}" )
2011-09-30 15:51:58 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
mark_as_advanced ( XILD )
2010-11-15 05:32:49 +00:00
2010-12-08 08:43:06 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel" )
2010-11-15 05:32:49 +00:00
2010-12-08 08:43:06 +00:00
# set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3")
2010-12-16 09:55:35 +00:00
set ( PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing" )
2010-12-08 08:43:06 +00:00
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel" )
endif ( )
2010-05-29 21:31:57 +00:00
2010-12-08 08:43:06 +00:00
elseif ( WIN32 )
2006-11-17 02:27:12 +00:00
2010-12-08 08:43:06 +00:00
add_definitions ( -DWIN32 )
if ( MSVC )
2014-05-05 19:03:19 +00:00
2014-07-27 03:50:21 +00:00
# needed for some MSVC installations
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO" )
set ( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO" )
set ( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO" )
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi )
2011-06-28 02:49:49 +00:00
2014-12-06 23:58:17 +00:00
if ( WITH_INPUT_IME )
list ( APPEND PLATFORM_LINKLIBS imm32 )
endif ( )
2014-02-24 22:56:55 +00:00
add_definitions (
- D _ C R T _ N O N S T D C _ N O _ D E P R E C A T E
- D _ C R T _ S E C U R E _ N O _ D E P R E C A T E
- D _ S C L _ S E C U R E _ N O _ D E P R E C A T E
- D _ C O N S O L E
- D _ L I B
)
2011-06-28 02:49:49 +00:00
2013-05-14 16:16:25 +00:00
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build
2014-11-15 11:12:19 +00:00
add_definitions ( -D_ALLOW_KEYWORD_MACROS )
2014-02-24 22:56:55 +00:00
if ( CMAKE_CL_64 )
# We want to support Vista level ABI for x64
2014-11-15 11:12:19 +00:00
add_definitions ( -D_WIN32_WINNT=0x600 )
2013-05-14 16:16:25 +00:00
endif ( )
2014-11-15 11:12:19 +00:00
# Make cmake find the msvc redistributables
2014-11-14 09:49:01 +00:00
set ( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE )
include ( InstallRequiredSystemLibraries )
2013-12-22 22:24:47 +00:00
set ( CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc /MP" CACHE STRING "MSVC MT C++ flags " FORCE )
set ( CMAKE_C_FLAGS "/nologo /J /Gd /MP" CACHE STRING "MSVC MT C++ flags " FORCE )
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2014-02-15 07:21:07 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
else ( )
2014-02-15 07:21:07 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
endif ( )
2013-12-22 22:24:47 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2014-02-15 07:21:07 +00:00
set ( CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
else ( )
2014-02-15 07:21:07 +00:00
set ( CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
endif ( )
2013-12-22 22:24:47 +00:00
set ( CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE )
2012-04-27 02:29:37 +00:00
2010-12-08 08:43:06 +00:00
2013-12-22 22:24:47 +00:00
set ( PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib" )
# MSVC only, Mingw doesnt need
if ( CMAKE_CL_64 )
set ( PLATFORM_LINKFLAGS "/MACHINE:X64 /OPT:NOREF ${PLATFORM_LINKFLAGS}" )
else ( )
set ( PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}" )
endif ( )
2014-06-27 09:49:56 +00:00
set ( PLATFORM_LINKFLAGS_DEBUG "/IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib" )
2013-12-22 22:24:47 +00:00
if ( NOT DEFINED LIBDIR )
# Setup 64bit and 64bit windows systems
if ( CMAKE_CL_64 )
message ( STATUS "64 bit compiler detected." )
2014-11-15 11:42:21 +00:00
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/win64_vc12 )
2013-12-22 22:24:47 +00:00
else ( )
message ( STATUS "32 bit compiler detected." )
2014-11-15 11:42:21 +00:00
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/windows_vc12 )
2013-12-22 22:24:47 +00:00
endif ( )
else ( )
message ( STATUS using LIBDIR ${ LIBDIR } )
endif ( )
# Add each of our libraries to our cmake_prefix_path so find_package() could work
2014-11-13 14:03:30 +00:00
file ( GLOB children RELATIVE ${ LIBDIR } ${ LIBDIR } /* )
foreach ( child ${ children } )
if ( IS_DIRECTORY ${ LIBDIR } / ${ child } )
list ( APPEND CMAKE_PREFIX_PATH ${ LIBDIR } / ${ child } )
endif ( )
endforeach ( )
2013-12-22 22:24:47 +00:00
2013-12-20 13:32:51 +00:00
set ( ZLIB_INCLUDE_DIRS ${ LIBDIR } /zlib/include )
set ( ZLIB_LIBRARIES ${ LIBDIR } /zlib/lib/libz_st.lib )
set ( ZLIB_INCLUDE_DIR ${ LIBDIR } /zlib/include )
set ( ZLIB_LIBRARY ${ LIBDIR } /zlib/lib/libz_st.lib )
set ( ZLIB_DIR ${ LIBDIR } /zlib )
2014-07-15 14:33:05 +00:00
#find_package(zlib) # we want to find before finding things that depend on it like png
2013-12-20 13:32:51 +00:00
2010-12-08 08:43:06 +00:00
2013-12-20 13:32:51 +00:00
find_package ( png )
if ( NOT PNG_FOUND )
2013-12-22 22:24:47 +00:00
set ( PNG_PNG_INCLUDE_DIR ${ LIBDIR } /png/include )
2013-12-20 13:32:51 +00:00
message ( WARNING "Using HARDCODED libpng locations" )
set ( PNG_LIBRARIES libpng )
set ( PNG "${LIBDIR}/png" )
2014-06-30 23:36:11 +00:00
set ( PNG_INCLUDE_DIRS "${PNG}/include" )
2013-12-20 13:32:51 +00:00
set ( PNG_LIBPATH ${ PNG } /lib ) # not cmake defined
endif ( )
2010-12-08 08:43:06 +00:00
2014-07-15 14:33:05 +00:00
if ( MSVC )
2014-05-05 22:03:45 +00:00
set ( JPEG_NAMES ${ JPEG_NAMES } libjpeg )
endif ( )
2013-12-22 22:24:47 +00:00
find_package ( jpeg REQUIRED )
2010-12-08 08:43:06 +00:00
2011-06-28 02:49:49 +00:00
set ( PTHREADS_INCLUDE_DIRS ${ LIBDIR } /pthreads/include )
set ( PTHREADS_LIBRARIES ${ LIBDIR } /pthreads/lib/pthreadVC2.lib )
2011-06-29 17:56:32 +00:00
set ( FREETYPE ${ LIBDIR } /freetype )
2011-06-28 02:49:49 +00:00
set ( FREETYPE_INCLUDE_DIRS
2011-06-28 16:57:25 +00:00
$ { L I B D I R } / f r e e t y p e / i n c l u d e
$ { L I B D I R } / f r e e t y p e / i n c l u d e / f r e e t y p e 2
2011-06-28 02:49:49 +00:00
)
set ( FREETYPE_LIBRARY ${ LIBDIR } /freetype/lib/freetype2ST.lib )
2013-12-22 22:24:47 +00:00
find_package ( freetype REQUIRED )
2010-12-08 08:43:06 +00:00
if ( WITH_FFTW3 )
set ( FFTW3 ${ LIBDIR } /fftw3 )
2011-06-18 14:12:54 +00:00
set ( FFTW3_LIBRARIES libfftw )
set ( FFTW3_INCLUDE_DIRS ${ FFTW3 } /include )
2010-12-08 08:43:06 +00:00
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
if ( WITH_OPENCOLLADA )
2012-08-04 12:43:45 +00:00
set ( OPENCOLLADA ${ LIBDIR } /opencollada )
2011-08-24 16:04:35 +00:00
set ( OPENCOLLADA_INCLUDE_DIRS
2013-03-28 18:02:24 +00:00
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A S t r e a m W r i t e r
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A B a s e U t i l s
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A F r a m e w o r k
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A S a x F r a m e w o r k L o a d e r
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / G e n e r a t e d S a x P a r s e r
2011-06-19 13:06:21 +00:00
)
2011-08-24 16:04:35 +00:00
2011-06-19 13:06:21 +00:00
set ( OPENCOLLADA_LIBRARIES
2013-06-17 18:15:56 +00:00
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / O p e n C O L L A D A S a x F r a m e w o r k L o a d e r . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / O p e n C O L L A D A F r a m e w o r k . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / O p e n C O L L A D A B a s e U t i l s . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / O p e n C O L L A D A S t r e a m W r i t e r . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / M a t h M L S o l v e r . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / G e n e r a t e d S a x P a r s e r . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / x m l . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / b u f f e r . l i b
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / f t o a . l i b
2011-06-19 13:06:21 +00:00
)
2014-08-01 12:28:00 +00:00
2014-08-01 13:18:34 +00:00
if ( NOT WITH_LLVM )
2014-08-01 12:28:00 +00:00
list ( APPEND OPENCOLLADA_LIBRARIES ${ OPENCOLLADA } /lib/opencollada/UTF.lib )
endif ( )
2011-09-12 13:58:13 +00:00
set ( PCRE_LIBRARIES
2013-06-17 18:15:56 +00:00
$ { O P E N C O L L A D A } / l i b / o p e n c o l l a d a / p c r e . l i b
2011-06-19 14:14:29 +00:00
)
2010-12-08 08:43:06 +00:00
endif ( )
2011-06-19 13:06:21 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_CODEC_FFMPEG )
2011-06-28 02:49:49 +00:00
set ( FFMPEG_INCLUDE_DIRS
$ { L I B D I R } / f f m p e g / i n c l u d e
$ { L I B D I R } / f f m p e g / i n c l u d e / m s v c
)
2013-12-20 13:32:51 +00:00
find_package ( FFMPEG )
if ( NOT FFMPEG_FOUND )
message ( WARNING "Using HARDCODED ffmpeg locations" )
2014-05-15 05:49:40 +00:00
set ( FFMPEG_LIBRARY_VERSION 55 )
set ( FFMPEG_LIBRARY_VERSION_AVU 52 )
2013-05-14 16:16:25 +00:00
set ( FFMPEG_LIBRARIES
2013-12-20 13:32:51 +00:00
$ { L I B D I R } / f f m p e g / l i b / a v c o d e c - $ { F F M P E G _ L I B R A R Y _ V E R S I O N } . l i b
$ { L I B D I R } / f f m p e g / l i b / a v f o r m a t - $ { F F M P E G _ L I B R A R Y _ V E R S I O N } . l i b
$ { L I B D I R } / f f m p e g / l i b / a v d e v i c e - $ { F F M P E G _ L I B R A R Y _ V E R S I O N } . l i b
$ { L I B D I R } / f f m p e g / l i b / a v u t i l - $ { F F M P E G _ L I B R A R Y _ V E R S I O N _ A V U } . l i b
2013-05-14 16:16:25 +00:00
$ { L I B D I R } / f f m p e g / l i b / s w s c a l e - 2 . l i b
2013-12-20 13:32:51 +00:00
)
2013-05-14 16:16:25 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_OPENEXR )
2013-12-20 13:32:51 +00:00
set ( OPENEXR_ROOT_DIR ${ LIBDIR } /openexr )
set ( OPENEXR_VERSION "2.1" )
find_package ( OPENEXR REQUIRED )
if ( NOT OPENEXR_FOUND )
message ( WARNING "Using HARDCODED OpenEXR locations" )
2013-06-17 18:15:56 +00:00
set ( OPENEXR ${ LIBDIR } /openexr )
2012-08-04 20:25:04 +00:00
set ( OPENEXR_INCLUDE_DIR ${ OPENEXR } /include )
2012-11-19 16:02:29 +00:00
set ( OPENEXR_INCLUDE_DIRS ${ OPENEXR } /include/OpenEXR )
2012-08-04 20:25:04 +00:00
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
2014-11-15 13:36:25 +00:00
set ( OPENEXR_LIBRARIES
$ { O P E N E X R _ L I B P A T H } / I e x - 2 _ 1 . l i b
$ { O P E N E X R _ L I B P A T H } / H a l f . l i b
$ { O P E N E X R _ L I B P A T H } / I l m I m f - 2 _ 1 . l i b
$ { O P E N E X R _ L I B P A T H } / I m a t h - 2 _ 1 . l i b
$ { O P E N E X R _ L I B P A T H } / I l m T h r e a d - 2 _ 1 . l i b
)
2013-12-20 13:32:51 +00:00
endif ( NOT OPENEXR_FOUND )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_TIFF )
2013-12-22 22:24:47 +00:00
# Try to find tiff first then complain and set static and maybe wrong paths
find_package ( TIFF )
if ( NOT TIFF_FOUND )
message ( WARNING "Using HARDCODED libtiff locations" )
2011-06-28 02:49:49 +00:00
set ( TIFF_LIBRARY ${ LIBDIR } /tiff/lib/libtiff.lib )
set ( TIFF_INCLUDE_DIR ${ LIBDIR } /tiff/include )
2010-12-08 08:43:06 +00:00
endif ( )
2013-12-22 22:24:47 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_JACK )
2012-11-11 18:28:45 +00:00
set ( JACK_INCLUDE_DIRS
$ { L I B D I R } / j a c k / i n c l u d e / j a c k
$ { L I B D I R } / j a c k / i n c l u d e
2011-06-28 02:49:49 +00:00
)
2014-02-24 20:25:33 +00:00
set ( JACK_LIBRARIES optimized ${ LIBDIR } /jack/lib/libjack.lib debug ${ LIBDIR } /jack/lib/libjack_d.lib )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_PYTHON )
2014-04-30 13:13:25 +00:00
set ( PYTHON_VERSION 3.4 ) # CACHE STRING)
2012-11-26 12:38:40 +00:00
2013-03-24 12:13:13 +00:00
string ( REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${ PYTHON_VERSION } )
2013-01-03 00:29:13 +00:00
# Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs
set ( PYTHON_LIBRARY ${ LIBDIR } /python/lib/python ${ _PYTHON_VERSION_NO_DOTS } .lib )
2012-11-26 12:38:40 +00:00
unset ( _PYTHON_VERSION_NO_DOTS )
2013-05-14 16:16:25 +00:00
# Shared includes for both vc2008 and vc2010
2012-08-14 16:53:40 +00:00
set ( PYTHON_INCLUDE_DIR ${ LIBDIR } /python/include/python ${ PYTHON_VERSION } )
2011-07-16 06:55:45 +00:00
# uncached vars
set ( PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}" )
set ( PYTHON_LIBRARIES "${PYTHON_LIBRARY}" )
2010-12-08 08:43:06 +00:00
endif ( )
2010-09-16 07:26:06 +00:00
2011-11-07 15:44:09 +00:00
if ( WITH_BOOST )
2013-01-30 21:58:47 +00:00
if ( WITH_CYCLES_OSL )
2013-12-20 13:32:51 +00:00
set ( boost_extra_libs wave )
endif ( WITH_CYCLES_OSL )
2012-11-11 16:54:26 +00:00
if ( WITH_INTERNATIONAL )
2013-12-20 13:32:51 +00:00
list ( APPEND boost_extra_libs locale )
endif ( WITH_INTERNATIONAL )
2014-07-15 14:33:05 +00:00
set ( Boost_USE_STATIC_RUNTIME ON ) # prefix lib
set ( Boost_USE_MULTITHREADED ON ) # suffix -mt
set ( Boost_USE_STATIC_LIBS ON ) # suffix -s
2013-12-20 13:32:51 +00:00
find_package ( Boost COMPONENTS date_time filesystem thread regex system ${ boost_extra_libs } )
2014-11-13 14:03:30 +00:00
if ( NOT Boost_FOUND )
2013-12-20 13:32:51 +00:00
message ( WARNING "USING HARDCODED boost locations" )
set ( BOOST ${ LIBDIR } /boost )
set ( BOOST_INCLUDE_DIR ${ BOOST } /include )
2014-01-27 08:24:44 +00:00
if ( MSVC12 )
set ( BOOST_LIBPATH ${ BOOST } /lib )
set ( BOOST_POSTFIX "vc120-mt-s-1_55.lib" )
set ( BOOST_DEBUG_POSTFIX "vc120-mt-sgd-1_55.lib" )
2013-12-20 13:32:51 +00:00
else ( )
set ( BOOST_LIBPATH ${ BOOST } /lib )
set ( BOOST_POSTFIX "vc90-mt-s-1_49.lib" )
set ( BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_49.lib" )
endif ( )
set ( BOOST_LIBRARIES
o p t i m i z e d l i b b o o s t _ d a t e _ t i m e - $ { B O O S T _ P O S T F I X } o p t i m i z e d l i b b o o s t _ f i l e s y s t e m - $ { B O O S T _ P O S T F I X }
o p t i m i z e d l i b b o o s t _ r e g e x - $ { B O O S T _ P O S T F I X }
o p t i m i z e d l i b b o o s t _ s y s t e m - $ { B O O S T _ P O S T F I X } o p t i m i z e d l i b b o o s t _ t h r e a d - $ { B O O S T _ P O S T F I X }
d e b u g l i b b o o s t _ d a t e _ t i m e - $ { B O O S T _ D E B U G _ P O S T F I X } d e b u g l i b b o o s t _ f i l e s y s t e m - $ { B O O S T _ D E B U G _ P O S T F I X }
d e b u g l i b b o o s t _ r e g e x - $ { B O O S T _ D E B U G _ P O S T F I X }
d e b u g l i b b o o s t _ s y s t e m - $ { B O O S T _ D E B U G _ P O S T F I X } d e b u g l i b b o o s t _ t h r e a d - $ { B O O S T _ D E B U G _ P O S T F I X } )
if ( WITH_CYCLES_OSL )
set ( BOOST_LIBRARIES ${ BOOST_LIBRARIES }
o p t i m i z e d l i b b o o s t _ w a v e - $ { B O O S T _ P O S T F I X }
d e b u g l i b b o o s t _ w a v e - $ { B O O S T _ D E B U G _ P O S T F I X } )
endif ( )
if ( WITH_INTERNATIONAL )
set ( BOOST_LIBRARIES ${ BOOST_LIBRARIES }
o p t i m i z e d l i b b o o s t _ l o c a l e - $ { B O O S T _ P O S T F I X }
d e b u g l i b b o o s t _ l o c a l e - $ { B O O S T _ D E B U G _ P O S T F I X } )
endif ( )
else ( ) # we found boost using find_package
set ( BOOST_INCLUDE_DIR ${ Boost_INCLUDE_DIRS } )
set ( BOOST_LIBRARIES ${ Boost_LIBRARIES } )
set ( BOOST_LIBPATH ${ Boost_LIBRARY_DIRS } )
2013-01-30 21:58:47 +00:00
endif ( )
2011-11-07 15:44:09 +00:00
set ( BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB" )
endif ( )
if ( WITH_OPENIMAGEIO )
2013-12-22 22:24:47 +00:00
find_package ( OpenImageIO )
2011-11-07 15:44:09 +00:00
set ( OPENIMAGEIO ${ LIBDIR } /openimageio )
set ( OPENIMAGEIO_INCLUDE_DIRS ${ OPENIMAGEIO } /include )
2014-08-03 16:35:39 +00:00
set ( OIIO_OPTIMIZED optimized OpenImageIO optimized OpenImageIO_Util )
set ( OIIO_DEBUG debug OpenImageIO_d debug OpenImageIO_Util_d )
set ( OPENIMAGEIO_LIBRARIES ${ OIIO_OPTIMIZED } ${ OIIO_DEBUG } )
2012-08-04 12:43:45 +00:00
set ( OPENIMAGEIO_LIBPATH ${ OPENIMAGEIO } /lib )
2012-11-14 17:18:47 +00:00
set ( OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0" )
2014-11-15 11:42:21 +00:00
set ( OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD" )
2014-11-15 13:36:25 +00:00
add_definitions ( -DOIIO_STATIC_BUILD )
2011-11-07 15:44:09 +00:00
endif ( )
2012-12-09 01:42:26 +00:00
if ( WITH_LLVM )
set ( LLVM_DIRECTORY ${ LIBDIR } /llvm CACHE PATH "Path to the LLVM installation" )
2014-02-24 16:53:14 +00:00
file ( GLOB LLVM_LIBRARY_OPTIMIZED ${ LLVM_DIRECTORY } /lib/*.lib )
if ( EXISTS ${ LLVM_DIRECTORY } /debug/lib )
foreach ( LLVM_OPTIMIZED_LIB ${ LLVM_LIBRARY_OPTIMIZED } )
get_filename_component ( LIBNAME ${ LLVM_OPTIMIZED_LIB } ABSOLUTE )
list ( APPEND LLVM_LIBS optimized ${ LIBNAME } )
endforeach ( LLVM_OPTIMIZED_LIB )
file ( GLOB LLVM_LIBRARY_DEBUG ${ LLVM_DIRECTORY } /debug/lib/*.lib )
foreach ( LLVM_DEBUG_LIB ${ LLVM_LIBRARY_DEBUG } )
get_filename_component ( LIBNAME ${ LLVM_DEBUG_LIB } ABSOLUTE )
list ( APPEND LLVM_LIBS debug ${ LIBNAME } )
endforeach ( LLVM_DEBUG_LIB )
set ( LLVM_LIBRARY ${ LLVM_LIBS } )
else ( )
message ( WARNING "LLVM debug libs not present on this system. Using release libs for debug builds." )
set ( LLVM_LIBRARY ${ LLVM_LIBRARY_OPTIMIZED } )
endif ( )
2012-12-09 01:42:26 +00:00
endif ( )
2012-09-15 10:03:17 +00:00
if ( WITH_OPENCOLORIO )
set ( OPENCOLORIO ${ LIBDIR } /opencolorio )
set ( OPENCOLORIO_INCLUDE_DIRS ${ OPENCOLORIO } /include )
set ( OPENCOLORIO_LIBRARIES OpenColorIO )
2012-09-25 15:11:34 +00:00
set ( OPENCOLORIO_LIBPATH ${ LIBDIR } /opencolorio/lib )
2012-09-15 10:03:17 +00:00
set ( OPENCOLORIO_DEFINITIONS )
endif ( )
2013-12-22 22:24:47 +00:00
2012-09-15 10:03:17 +00:00
2013-12-22 22:24:47 +00:00
if ( WITH_MOD_CLOTH_ELTOPO )
set ( LAPACK ${ LIBDIR } /lapack )
# set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
set ( LAPACK_LIBPATH ${ LAPACK } /lib )
set ( LAPACK_LIBRARIES
$ { L I B D I R } / l a p a c k / l i b / l i b f 2 c . l i b
$ { L I B D I R } / l a p a c k / l i b / c l a p a c k _ n o w r a p . l i b
$ { L I B D I R } / l a p a c k / l i b / B L A S _ n o w r a p . l i b
)
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-18 12:35:40 +00:00
2012-04-26 18:18:09 +00:00
# used in many places so include globally, like OpenGL
2012-09-18 04:40:20 +00:00
blender_include_dirs_sys ( "${PTHREADS_INCLUDE_DIRS}" )
2012-04-26 18:18:09 +00:00
2012-04-23 01:11:42 +00:00
elseif ( CMAKE_COMPILER_IS_GNUCC )
2013-12-22 22:24:47 +00:00
# keep GCC specific stuff here
include ( CheckCSourceCompiles )
# Setup 64bit and 64bit windows systems
CHECK_C_SOURCE_COMPILES ( "
#ifndef __MINGW64__
#error
#endif
i n t main ( void ) { r e t u r n 0 ; }
"
W I T H _ M I N G W 6 4 )
if ( WITH_MINGW64 )
message ( STATUS "Compiling for 64 bit with MinGW-w64." )
2015-01-16 13:02:48 +00:00
execute_process ( COMMAND ${ CMAKE_C_COMPILER } -dumpversion OUTPUT_VARIABLE GCC_VERSION )
if ( GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9 )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/mingw64_gcc49 )
else ( )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/mingw )
endif ( )
2013-12-22 22:24:47 +00:00
else ( )
message ( STATUS "Compiling for 32 bit with MinGW-w32." )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/mingw32 )
if ( WITH_RAYOPTIMIZATION )
message ( WARNING "MinGW-w32 is known to be unstable with 'WITH_RAYOPTIMIZATION' option enabled." )
endif ( )
endif ( )
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi )
2014-12-06 23:58:17 +00:00
if ( WITH_INPUT_IME )
list ( APPEND PLATFORM_LINKLIBS -limm32 )
endif ( )
2012-04-23 01:11:42 +00:00
set ( PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing" )
2012-04-23 20:09:59 +00:00
if ( WITH_MINGW64 )
2012-04-24 16:14:23 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive" )
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS -lpthread )
2012-04-23 20:09:59 +00:00
add_definitions ( -DFREE_WINDOWS64 -DMS_WIN64 )
endif ( )
2012-04-23 01:11:42 +00:00
add_definitions ( -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE )
2010-10-31 13:17:39 +00:00
2010-12-08 08:43:06 +00:00
add_definitions ( -DFREE_WINDOWS )
2010-10-03 23:27:33 +00:00
2012-04-23 01:11:42 +00:00
set ( PNG "${LIBDIR}/png" )
2014-06-30 23:36:11 +00:00
set ( PNG_INCLUDE_DIRS "${PNG}/include" )
2011-12-18 23:32:24 +00:00
set ( PNG_LIBPATH ${ PNG } /lib ) # not cmake defined
2010-05-28 21:25:23 +00:00
2012-04-23 20:09:59 +00:00
if ( WITH_MINGW64 )
set ( JPEG_LIBRARIES jpeg )
else ( )
set ( JPEG_LIBRARIES libjpeg )
endif ( )
2010-12-08 08:43:06 +00:00
set ( PNG_LIBRARIES png )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
set ( ZLIB ${ LIBDIR } /zlib )
2011-01-25 14:43:13 +00:00
set ( ZLIB_INCLUDE_DIRS ${ ZLIB } /include )
2010-12-08 08:43:06 +00:00
set ( ZLIB_LIBPATH ${ ZLIB } /lib )
set ( ZLIB_LIBRARIES z )
2010-05-28 21:25:23 +00:00
2013-12-22 22:24:47 +00:00
set ( JPEG "${LIBDIR}/jpeg" )
set ( JPEG_INCLUDE_DIR "${JPEG}/include" )
set ( JPEG_LIBPATH ${ JPEG } /lib ) # not cmake defined
2013-05-14 16:16:25 +00:00
# comes with own pthread library
2012-04-23 20:09:59 +00:00
if ( NOT WITH_MINGW64 )
set ( PTHREADS ${ LIBDIR } /pthreads )
2012-11-26 19:50:08 +00:00
#set(PTHREADS_INCLUDE_DIRS ${PTHREADS}/include)
2012-04-23 20:09:59 +00:00
set ( PTHREADS_LIBPATH ${ PTHREADS } /lib )
set ( PTHREADS_LIBRARIES pthreadGC2 )
endif ( )
2012-04-23 01:11:42 +00:00
set ( FREETYPE ${ LIBDIR } /freetype )
2010-12-08 08:43:06 +00:00
set ( FREETYPE_INCLUDE_DIRS ${ FREETYPE } /include ${ FREETYPE } /include/freetype2 )
set ( FREETYPE_LIBPATH ${ FREETYPE } /lib )
set ( FREETYPE_LIBRARY freetype )
if ( WITH_FFTW3 )
2012-04-23 01:11:42 +00:00
set ( FFTW3 ${ LIBDIR } /fftw3 )
2011-06-18 14:12:54 +00:00
set ( FFTW3_LIBRARIES fftw3 )
set ( FFTW3_INCLUDE_DIRS ${ FFTW3 } /include )
2010-12-08 08:43:06 +00:00
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
if ( WITH_OPENCOLLADA )
2012-04-23 01:11:42 +00:00
set ( OPENCOLLADA ${ LIBDIR } /opencollada )
2011-08-24 16:04:35 +00:00
set ( OPENCOLLADA_INCLUDE_DIRS
2013-04-02 02:05:03 +00:00
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A S t r e a m W r i t e r
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A B a s e U t i l s
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A F r a m e w o r k
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / C O L L A D A S a x F r a m e w o r k L o a d e r
$ { O P E N C O L L A D A } / i n c l u d e / o p e n c o l l a d a / G e n e r a t e d S a x P a r s e r
2011-08-24 16:04:35 +00:00
)
2013-03-28 18:02:24 +00:00
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib/opencollada )
2013-04-02 13:07:01 +00:00
set ( OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver buffer ftoa xml )
2011-09-12 13:58:13 +00:00
set ( PCRE_LIBRARIES pcre )
2010-12-08 08:43:06 +00:00
endif ( )
2011-09-30 15:51:58 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg )
2012-05-27 13:44:21 +00:00
set ( FFMPEG_INCLUDE_DIRS ${ FFMPEG } /include )
2012-05-10 11:37:41 +00:00
if ( WITH_MINGW64 )
set ( FFMPEG_LIBRARIES avcodec.dll avformat.dll avdevice.dll avutil.dll swscale.dll swresample.dll )
else ( )
2014-03-29 22:51:30 +00:00
set ( FFMPEG_LIBRARIES avcodec-55 avformat-55 avdevice-55 avutil-52 swscale-2 )
2012-05-10 11:37:41 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
if ( WITH_IMAGE_OPENEXR )
2012-08-04 11:39:16 +00:00
set ( OPENEXR ${ LIBDIR } /openexr )
2012-12-09 01:42:26 +00:00
set ( OPENEXR_INCLUDE_DIR ${ OPENEXR } /include )
2012-08-04 11:39:16 +00:00
set ( OPENEXR_INCLUDE_DIRS ${ OPENEXR } /include/OpenEXR )
set ( OPENEXR_LIBRARIES Half IlmImf Imath IlmThread Iex )
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_TIFF )
2012-04-23 01:11:42 +00:00
set ( TIFF ${ LIBDIR } /tiff )
2010-12-08 08:43:06 +00:00
set ( TIFF_LIBRARY tiff )
set ( TIFF_INCLUDE_DIR ${ TIFF } /include )
set ( TIFF_LIBPATH ${ TIFF } /lib )
endif ( )
if ( WITH_JACK )
set ( JACK ${ LIBDIR } /jack )
2011-06-18 14:12:54 +00:00
set ( JACK_INCLUDE_DIRS ${ JACK } /include/jack ${ JACK } /include )
set ( JACK_LIBRARIES jack )
2010-12-08 08:43:06 +00:00
set ( JACK_LIBPATH ${ JACK } /lib )
2011-09-30 15:51:58 +00:00
2010-05-28 21:25:23 +00:00
# TODO, gives linking errors, force off
2010-12-08 08:43:06 +00:00
set ( WITH_JACK OFF )
endif ( )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_PYTHON )
2011-07-16 06:55:45 +00:00
# normally cached but not since we include them with blender
2014-04-30 13:13:25 +00:00
set ( PYTHON_VERSION 3.4 ) # CACHE STRING)
string ( REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${ PYTHON_VERSION } )
2011-07-16 06:55:45 +00:00
set ( PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}" ) # CACHE PATH)
2014-04-30 13:13:25 +00:00
set ( PYTHON_LIBRARY "${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}mw.lib" ) # CACHE FILEPATH)
unset ( _PYTHON_VERSION_NO_DOTS )
2011-07-16 06:55:45 +00:00
# uncached vars
set ( PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}" )
set ( PYTHON_LIBRARIES "${PYTHON_LIBRARY}" )
2010-12-08 08:43:06 +00:00
endif ( )
2010-09-16 07:26:06 +00:00
2011-11-07 15:44:09 +00:00
if ( WITH_BOOST )
2011-11-08 17:19:14 +00:00
set ( BOOST ${ LIBDIR } /boost )
2011-11-07 15:44:09 +00:00
set ( BOOST_INCLUDE_DIR ${ BOOST } /include )
2012-04-23 20:09:59 +00:00
if ( WITH_MINGW64 )
set ( BOOST_POSTFIX "mgw47-mt-s-1_49" )
set ( BOOST_DEBUG_POSTFIX "mgw47-mt-sd-1_49" )
else ( )
2012-09-16 20:26:28 +00:00
set ( BOOST_POSTFIX "mgw46-mt-s-1_49" )
set ( BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_49" )
2012-10-21 05:46:41 +00:00
endif ( )
2011-11-07 15:44:09 +00:00
set ( BOOST_LIBRARIES
2011-11-08 16:03:28 +00:00
o p t i m i z e d b o o s t _ d a t e _ t i m e - $ { B O O S T _ P O S T F I X } b o o s t _ f i l e s y s t e m - $ { B O O S T _ P O S T F I X }
2012-09-24 19:53:33 +00:00
b o o s t _ r e g e x - $ { B O O S T _ P O S T F I X }
2012-09-24 19:06:28 +00:00
b o o s t _ s y s t e m - $ { B O O S T _ P O S T F I X } b o o s t _ t h r e a d - $ { B O O S T _ P O S T F I X }
2011-11-08 16:03:28 +00:00
d e b u g b o o s t _ d a t e _ t i m e - $ { B O O S T _ D E B U G _ P O S T F I X } b o o s t _ f i l e s y s t e m - $ { B O O S T _ D E B U G _ P O S T F I X }
2012-09-24 19:53:33 +00:00
b o o s t _ r e g e x - $ { B O O S T _ D E B U G _ P O S T F I X }
2012-09-24 20:37:18 +00:00
b o o s t _ s y s t e m - $ { B O O S T _ D E B U G _ P O S T F I X } b o o s t _ t h r e a d - $ { B O O S T _ D E B U G _ P O S T F I X } )
2012-11-11 16:54:26 +00:00
if ( WITH_INTERNATIONAL )
set ( BOOST_LIBRARIES ${ BOOST_LIBRARIES }
2012-11-11 22:50:28 +00:00
o p t i m i z e d b o o s t _ l o c a l e - $ { B O O S T _ P O S T F I X }
d e b u g b o o s t _ l o c a l e - $ { B O O S T _ D E B U G _ P O S T F I X } )
endif ( )
2013-01-13 12:32:37 +00:00
if ( WITH_CYCLES_OSL )
set ( BOOST_LIBRARIES ${ BOOST_LIBRARIES }
o p t i m i z e d b o o s t _ w a v e - $ { B O O S T _ P O S T F I X }
d e b u g b o o s t _ w a v e - $ { B O O S T _ D E B U G _ P O S T F I X } )
endif ( )
2012-04-23 01:11:42 +00:00
set ( BOOST_LIBPATH ${ BOOST } /lib )
2011-11-08 16:03:28 +00:00
set ( BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB " )
2011-11-07 15:44:09 +00:00
endif ( )
if ( WITH_OPENIMAGEIO )
2012-04-23 01:11:42 +00:00
set ( OPENIMAGEIO ${ LIBDIR } /openimageio )
2011-11-07 15:44:09 +00:00
set ( OPENIMAGEIO_INCLUDE_DIRS ${ OPENIMAGEIO } /include )
set ( OPENIMAGEIO_LIBRARIES OpenImageIO )
set ( OPENIMAGEIO_LIBPATH ${ OPENIMAGEIO } /lib )
2013-03-24 12:13:13 +00:00
set ( OPENIMAGEIO_DEFINITIONS "" )
2011-11-07 15:44:09 +00:00
endif ( )
2012-01-05 07:52:03 +00:00
2012-12-09 01:42:26 +00:00
if ( WITH_LLVM )
set ( LLVM_DIRECTORY ${ LIBDIR } /llvm CACHE PATH "Path to the LLVM installation" )
2013-09-25 16:31:54 +00:00
set ( LLVM_LIBPATH ${ LLVM_DIRECTORY } /lib )
2013-05-14 16:16:25 +00:00
# Explicitly set llvm lib order.
2012-12-09 01:42:26 +00:00
#---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! ---------
set ( LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive
L L V M A s m P a r s e r L L V M A s m P r i n t e r
L L V M B i t R e a d e r L L V M B i t W r i t e r
L L V M D e b u g I n f o L L V M E x e c u t i o n E n g i n e
L L V M I n s t C o m b i n e L L V M I n s t r u m e n t a t i o n
L L V M I n t e r p r e t e r L L V M J I T
L L V M L i n k e r L L V M M C
L L V M M C D i s a s s e m b l e r L L V M M C J I T
L L V M M C P a r s e r L L V M O b j e c t
L L V M R u n t i m e D y l d
L L V M S u p p o r t
L L V M T a b l e G e n L L V M T a r g e t
L L V M T r a n s f o r m U t i l s L L V M V e c t o r i z e
L L V M X 8 6 A s m P a r s e r L L V M X 8 6 A s m P r i n t e r
L L V M X 8 6 C o d e G e n L L V M X 8 6 D e s c
L L V M X 8 6 D i s a s s e m b l e r L L V M X 8 6 I n f o
L L V M X 8 6 U t i l s L L V M i p a
L L V M i p o L L V M C o r e )
2013-05-14 16:16:25 +00:00
# imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS -limagehlp )
2012-12-09 01:42:26 +00:00
endif ( )
2012-09-15 10:03:17 +00:00
if ( WITH_OPENCOLORIO )
set ( OPENCOLORIO ${ LIBDIR } /opencolorio )
set ( OPENCOLORIO_INCLUDE_DIRS ${ OPENCOLORIO } /include )
set ( OPENCOLORIO_LIBRARIES OpenColorIO )
set ( OPENCOLORIO_LIBPATH ${ OPENCOLORIO } /lib )
set ( OPENCOLORIO_DEFINITIONS )
endif ( )
2011-11-08 16:03:28 +00:00
set ( PLATFORM_LINKFLAGS "-Xlinker --stack=2097152" )
2011-03-12 00:50:34 +00:00
2012-01-05 10:05:24 +00:00
## DISABLE - causes linking errors
2012-09-28 06:45:20 +00:00
## for re-distribution, so users dont need mingw installed
2012-01-05 10:05:24 +00:00
# set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++")
2012-01-05 07:52:03 +00:00
2010-12-08 08:43:06 +00:00
endif ( )
2013-12-22 22:24:47 +00:00
# Things common to both mingw and MSVC should go here
set ( WINTAB_INC ${ LIBDIR } /wintab/include )
if ( WITH_OPENAL )
set ( OPENAL ${ LIBDIR } /openal )
set ( OPENALDIR ${ LIBDIR } /openal )
2014-01-23 11:34:56 +00:00
set ( OPENAL_INCLUDE_DIR ${ OPENAL } /include )
2014-05-15 06:12:15 +00:00
if ( MSVC12 )
2014-01-23 11:34:56 +00:00
set ( OPENAL_LIBRARY openal32 )
else ( )
set ( OPENAL_LIBRARY wrap_oal )
endif ( )
2013-12-22 22:24:47 +00:00
set ( OPENAL_LIBPATH ${ OPENAL } /lib )
endif ( )
if ( WITH_CODEC_SNDFILE )
set ( SNDFILE ${ LIBDIR } /sndfile )
set ( SNDFILE_INCLUDE_DIRS ${ SNDFILE } /include )
set ( SNDFILE_LIBRARIES libsndfile-1 )
set ( SNDFILE_LIBPATH ${ SNDFILE } /lib ) # TODO, deprecate
endif ( )
if ( WITH_SDL )
set ( SDL ${ LIBDIR } /sdl )
set ( SDL_INCLUDE_DIR ${ SDL } /include )
2014-11-13 15:19:57 +00:00
set ( SDL_LIBRARY SDL2 )
2013-12-22 22:24:47 +00:00
set ( SDL_LIBPATH ${ SDL } /lib )
endif ( )
if ( WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD )
add_definitions ( -D__SSE__ -D__MMX__ )
endif ( )
if ( WITH_CYCLES_OSL )
set ( CYCLES_OSL ${ LIBDIR } /osl CACHE PATH "Path to OpenShadingLanguage installation" )
find_library ( OSL_LIB_EXEC NAMES oslexec PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_COMP NAMES oslcomp PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_QUERY NAMES oslquery PATHS ${ CYCLES_OSL } /lib )
2014-02-24 16:53:14 +00:00
find_library ( OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${ CYCLES_OSL } /lib )
list ( APPEND OSL_LIBRARIES optimized ${ OSL_LIB_COMP } optimized ${ OSL_LIB_EXEC } optimized ${ OSL_LIB_QUERY } debug ${ OSL_LIB_EXEC_DEBUG } debug ${ OSL_LIB_COMP_DEBUG } debug ${ OSL_LIB_QUERY_DEBUG } )
2014-12-29 09:48:21 +00:00
find_path ( OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${ CYCLES_OSL } /include )
2013-12-22 22:24:47 +00:00
find_program ( OSL_COMPILER NAMES oslc PATHS ${ CYCLES_OSL } /bin )
2014-12-29 09:48:21 +00:00
if ( OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER )
2013-12-22 22:24:47 +00:00
set ( OSL_FOUND TRUE )
else ( )
message ( STATUS "OSL not found" )
2014-11-21 12:07:18 +00:00
set ( WITH_CYCLES_OSL OFF )
2013-12-22 22:24:47 +00:00
endif ( )
endif ( )
2009-11-11 00:02:49 +00:00
2010-12-08 08:43:06 +00:00
elseif ( APPLE )
2012-03-10 16:21:48 +00:00
if ( ${ CMAKE_OSX_DEPLOYMENT_TARGET } STREQUAL "10.5" OR ${ CMAKE_OSX_DEPLOYMENT_TARGET } STRGREATER "10.5" )
2013-11-15 19:05:23 +00:00
set ( WITH_LIBS10.5 ON CACHE BOOL "Use 10.5 libs" FORCE ) # valid also for 10.6/7/8/9
2011-03-07 21:28:36 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_LIBS10.5 )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/darwin-9.x.universal )
else ( )
if ( CMAKE_OSX_ARCHITECTURES MATCHES i386 )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/darwin-8.x.i386 )
else ( )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/darwin-8.0.0-powerpc )
endif ( )
endif ( )
2011-09-30 15:51:58 +00:00
2009-09-06 01:51:23 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_OPENAL )
find_package ( OpenAL )
if ( OPENAL_FOUND )
set ( WITH_OPENAL ON )
set ( OPENAL_INCLUDE_DIR "${LIBDIR}/openal/include" )
else ( )
set ( WITH_OPENAL OFF )
endif ( )
endif ( )
if ( WITH_JACK )
2012-11-11 18:28:45 +00:00
find_library ( JACK_FRAMEWORK
N A M E S j a c k m p
)
set ( JACK_INCLUDE_DIRS ${ JACK_FRAMEWORK } /headers )
if ( NOT JACK_FRAMEWORK )
set ( WITH_JACK OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_CODEC_SNDFILE )
set ( SNDFILE ${ LIBDIR } /sndfile )
2011-06-18 12:12:19 +00:00
set ( SNDFILE_INCLUDE_DIRS ${ SNDFILE } /include )
set ( SNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc )
set ( SNDFILE_LIBPATH ${ SNDFILE } /lib ${ FFMPEG } /lib ) # TODO, deprecate
2010-12-08 08:43:06 +00:00
endif ( )
2011-07-16 06:55:45 +00:00
if ( WITH_PYTHON )
2014-04-15 12:12:06 +00:00
# we use precompiled libraries for py 3.4 and up by default
set ( PYTHON_VERSION 3.4 )
2013-02-22 22:24:38 +00:00
if ( NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK )
2012-01-16 20:10:38 +00:00
# normally cached but not since we include them with blender
2012-11-19 11:45:25 +00:00
set ( PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m" )
2012-01-16 20:10:38 +00:00
# set(PYTHON_BINARY "${LIBDIR}/python/bin/python${PYTHON_VERSION}") # not used yet
2012-11-19 11:45:25 +00:00
set ( PYTHON_LIBRARY python ${ PYTHON_VERSION } m )
2012-01-16 20:10:38 +00:00
set ( PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}" )
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
else ( )
# module must be compiled against Python framework
set ( PYTHON_INCLUDE_DIR "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/include/python${PYTHON_VERSION}m" )
set ( PYTHON_BINARY "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/bin/python${PYTHON_VERSION}" )
#set(PYTHON_LIBRARY python${PYTHON_VERSION})
2013-02-05 19:49:53 +00:00
set ( PYTHON_LIBPATH "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m" )
2012-01-16 20:10:38 +00:00
#set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python") # won't build with this enabled
endif ( )
2011-07-16 06:55:45 +00:00
# uncached vars
set ( PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}" )
set ( PYTHON_LIBRARIES "${PYTHON_LIBRARY}" )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_FFTW3 )
set ( FFTW3 ${ LIBDIR } /fftw3 )
2011-06-18 14:12:54 +00:00
set ( FFTW3_INCLUDE_DIRS ${ FFTW3 } /include )
set ( FFTW3_LIBRARIES fftw3 )
2010-12-08 08:43:06 +00:00
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
set ( PNG_LIBRARIES png )
2011-01-25 14:43:13 +00:00
set ( JPEG_LIBRARIES jpeg )
2010-12-08 08:43:06 +00:00
set ( ZLIB /usr )
2011-01-25 14:43:13 +00:00
set ( ZLIB_INCLUDE_DIRS "${ZLIB}/include" )
2010-12-08 08:43:06 +00:00
set ( ZLIB_LIBRARIES z bz2 )
set ( FREETYPE ${ LIBDIR } /freetype )
set ( FREETYPE_INCLUDE_DIRS ${ FREETYPE } /include ${ FREETYPE } /include/freetype2 )
set ( FREETYPE_LIBPATH ${ FREETYPE } /lib )
set ( FREETYPE_LIBRARY freetype )
if ( WITH_IMAGE_OPENEXR )
set ( OPENEXR ${ LIBDIR } /openexr )
2012-09-25 18:30:37 +00:00
set ( OPENEXR_INCLUDE_DIR ${ OPENEXR } /include )
2011-06-15 13:54:57 +00:00
set ( OPENEXR_INCLUDE_DIRS ${ OPENEXR } /include/OpenEXR )
2011-06-15 12:09:02 +00:00
set ( OPENEXR_LIBRARIES Iex Half IlmImf Imath IlmThread )
2010-12-08 08:43:06 +00:00
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
endif ( )
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg )
2011-06-18 14:12:54 +00:00
set ( FFMPEG_INCLUDE_DIRS ${ FFMPEG } /include )
set ( FFMPEG_LIBRARIES avcodec avdevice avformat avutil mp3lame swscale x264 xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile ogg )
2010-12-08 08:43:06 +00:00
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
2011-09-30 15:51:58 +00:00
find_library ( SYSTEMSTUBS_LIBRARY
N A M E S
S y s t e m S t u b s
2011-08-02 17:35:07 +00:00
P A T H S
)
mark_as_advanced ( SYSTEMSTUBS_LIBRARY )
if ( SYSTEMSTUBS_LIBRARY )
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS stdc++ SystemStubs )
2011-09-25 12:31:21 +00:00
else ( )
2014-07-25 04:35:53 +00:00
list ( APPEND PLATFORM_LINKLIBS stdc++ )
2011-08-02 17:35:07 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
2013-11-05 15:37:59 +00:00
set ( PLATFORM_CFLAGS "-pipe -funsigned-char" )
set ( PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio" )
2013-11-06 01:45:15 +00:00
if ( WITH_CODEC_QUICKTIME )
2013-11-05 15:37:59 +00:00
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit" )
if ( CMAKE_OSX_ARCHITECTURES MATCHES i386 )
2010-12-08 08:43:06 +00:00
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime" )
2013-11-05 15:37:59 +00:00
# libSDL still needs 32bit carbon quicktime
2010-12-08 08:43:06 +00:00
endif ( )
2013-11-05 15:37:59 +00:00
endif ( )
2011-08-03 14:18:02 +00:00
2013-11-05 15:37:59 +00:00
# XXX - SOME MAC DEV PLEASE TEST WITH THE SDK INSTALLED!
# ALSO SHOULD BE MOVED INTO OWN MODULE WHEN FUNCTIONAL
if ( WITH_INPUT_NDOF )
# This thread it *should* work and check the framework - campbell
# http://www.cmake.org/pipermail/cmake/2005-December/007740.html
find_library ( 3DCONNEXION_CLIENT_FRAMEWORK
N A M E S 3 D c o n n e x i o n C l i e n t
)
if ( NOT 3DCONNEXION_CLIENT_FRAMEWORK )
set ( WITH_INPUT_NDOF OFF )
endif ( )
2011-08-07 15:06:35 +00:00
2013-11-05 15:37:59 +00:00
if ( WITH_INPUT_NDOF )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework 3DconnexionClient" )
set ( NDOF_INCLUDE_DIRS /Library/Frameworks/3DconnexionClient.framework/Headers )
2011-08-03 14:18:02 +00:00
endif ( )
2013-11-05 15:37:59 +00:00
endif ( )
2012-11-11 16:54:26 +00:00
2012-11-11 18:06:10 +00:00
if ( WITH_JACK )
2013-09-10 18:56:33 +00:00
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp" )
2012-11-11 18:06:10 +00:00
endif ( )
2012-01-16 20:10:38 +00:00
2013-02-22 22:24:38 +00:00
if ( WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python" ) # force cmake to link right framework
2012-01-16 20:10:38 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_OPENCOLLADA )
set ( OPENCOLLADA ${ LIBDIR } /opencollada )
2011-08-24 16:04:35 +00:00
set ( OPENCOLLADA_INCLUDE_DIRS
$ { L I B D I R } / o p e n c o l l a d a / i n c l u d e / C O L L A D A S t r e a m W r i t e r
$ { L I B D I R } / o p e n c o l l a d a / i n c l u d e / C O L L A D A B a s e U t i l s
$ { L I B D I R } / o p e n c o l l a d a / i n c l u d e / C O L L A D A F r a m e w o r k
$ { L I B D I R } / o p e n c o l l a d a / i n c l u d e / C O L L A D A S a x F r a m e w o r k L o a d e r
$ { L I B D I R } / o p e n c o l l a d a / i n c l u d e / G e n e r a t e d S a x P a r s e r
)
2010-12-08 08:43:06 +00:00
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib )
2014-07-26 16:10:10 +00:00
set ( OPENCOLLADA_LIBRARIES "OpenCOLLADASaxFrameworkLoader -lOpenCOLLADAFramework -lOpenCOLLADABaseUtils -lOpenCOLLADAStreamWriter -lMathMLSolver -lGeneratedSaxParser -lxml2 -lbuffer -lftoa" )
2014-07-29 17:46:05 +00:00
# Use UTF functions from collada if LLVM is not enabled
if ( NOT WITH_LLVM )
set ( OPENCOLLADA_LIBRARIES "${OPENCOLLADA_LIBRARIES} -lUTF" )
endif ( )
2013-05-14 16:16:25 +00:00
# pcre is bundled with openCollada
2010-12-08 08:43:06 +00:00
#set(PCRE ${LIBDIR}/pcre)
#set(PCRE_LIBPATH ${PCRE}/lib)
2011-09-12 13:58:13 +00:00
set ( PCRE_LIBRARIES pcre )
2009-11-11 00:02:49 +00:00
#libxml2 is used
2010-12-08 08:43:06 +00:00
#set(EXPAT ${LIBDIR}/expat)
#set(EXPAT_LIBPATH ${EXPAT}/lib)
set ( EXPAT_LIB )
endif ( )
if ( WITH_SDL )
set ( SDL ${ LIBDIR } /sdl )
set ( SDL_INCLUDE_DIR ${ SDL } /include )
2014-11-19 18:41:41 +00:00
set ( SDL_LIBRARY SDL2 )
2010-12-08 08:43:06 +00:00
set ( SDL_LIBPATH ${ SDL } /lib )
2014-11-19 18:41:41 +00:00
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lazy_framework ForceFeedback" )
2010-12-08 08:43:06 +00:00
endif ( )
set ( PNG "${LIBDIR}/png" )
2014-06-30 23:36:11 +00:00
set ( PNG_INCLUDE_DIRS "${PNG}/include" )
2010-12-08 08:43:06 +00:00
set ( PNG_LIBPATH ${ PNG } /lib )
set ( JPEG "${LIBDIR}/jpeg" )
2011-01-25 14:43:13 +00:00
set ( JPEG_INCLUDE_DIR "${JPEG}/include" )
2010-12-08 08:43:06 +00:00
set ( JPEG_LIBPATH ${ JPEG } /lib )
if ( WITH_IMAGE_TIFF )
set ( TIFF ${ LIBDIR } /tiff )
set ( TIFF_INCLUDE_DIR ${ TIFF } /include )
set ( TIFF_LIBRARY tiff )
set ( TIFF_LIBPATH ${ TIFF } /lib )
endif ( )
2013-03-24 12:13:13 +00:00
if ( WITH_INPUT_NDOF )
2011-06-27 23:24:24 +00:00
# linker needs "-weak_framework 3DconnexionClient"
endif ( )
2011-11-07 15:44:09 +00:00
if ( WITH_BOOST )
set ( BOOST ${ LIBDIR } /boost )
set ( BOOST_INCLUDE_DIR ${ BOOST } /include )
2012-11-19 19:10:31 +00:00
set ( BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt boost_wave-mt )
2013-03-24 12:13:13 +00:00
if ( WITH_INTERNATIONAL )
2012-11-11 16:54:26 +00:00
list ( APPEND BOOST_LIBRARIES boost_locale-mt )
endif ( )
2013-12-07 01:29:53 +00:00
if ( WITH_CYCLES_NETWORK )
list ( APPEND BOOST_LIBRARIES boost_serialization-mt )
endif ( )
2011-11-07 15:44:09 +00:00
set ( BOOST_LIBPATH ${ BOOST } /lib )
set ( BOOST_DEFINITIONS )
endif ( )
2014-04-13 16:04:35 +00:00
if ( WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv" ) # boost_locale and ffmpeg needs it !
endif ( )
2011-11-07 15:44:09 +00:00
if ( WITH_OPENIMAGEIO )
set ( OPENIMAGEIO ${ LIBDIR } /openimageio )
set ( OPENIMAGEIO_INCLUDE_DIRS ${ OPENIMAGEIO } /include )
2012-10-11 10:15:37 +00:00
set ( OPENIMAGEIO_LIBRARIES ${ OPENIMAGEIO } /lib/libOpenImageIO.a ${ PNG_LIBRARIES } ${ JPEG_LIBRARIES } ${ TIFF_LIBRARY } ${ OPENEXR_LIBRARIES } ${ ZLIB_LIBRARIES } )
2011-11-07 15:44:09 +00:00
set ( OPENIMAGEIO_LIBPATH ${ OPENIMAGEIO } /lib ${ JPEG_LIBPATH } ${ PNG_LIBPATH } ${ TIFF_LIBPATH } ${ OPENEXR_LIBPATH } ${ ZLIB_LIBPATH } )
set ( OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD" )
endif ( )
2012-09-15 10:03:17 +00:00
if ( WITH_OPENCOLORIO )
set ( OPENCOLORIO ${ LIBDIR } /opencolorio )
set ( OPENCOLORIO_INCLUDE_DIRS ${ OPENCOLORIO } /include )
set ( OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp )
set ( OPENCOLORIO_LIBPATH ${ OPENCOLORIO } /lib )
endif ( )
2012-10-06 11:00:45 +00:00
if ( WITH_LLVM )
set ( LLVM_DIRECTORY ${ LIBDIR } /llvm CACHE PATH "Path to the LLVM installation" )
2014-07-26 16:39:45 +00:00
set ( LLVM_VERSION "3.4" CACHE STRING "Version of LLVM to use" )
2012-11-09 03:10:29 +00:00
if ( EXISTS "${LLVM_DIRECTORY}/bin/llvm-config" )
2012-10-06 11:00:45 +00:00
set ( LLVM_CONFIG "${LLVM_DIRECTORY}/bin/llvm-config" )
else ( )
set ( LLVM_CONFIG llvm-config )
endif ( )
execute_process ( COMMAND ${ LLVM_CONFIG } --version
O U T P U T _ V A R I A B L E L L V M _ V E R S I O N
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
execute_process ( COMMAND ${ LLVM_CONFIG } --prefix
O U T P U T _ V A R I A B L E L L V M _ D I R E C T O R Y
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
execute_process ( COMMAND ${ LLVM_CONFIG } --libdir
2013-09-25 16:31:54 +00:00
O U T P U T _ V A R I A B L E L L V M _ L I B P A T H
2012-10-06 11:00:45 +00:00
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
find_library ( LLVM_LIBRARY
2012-11-09 03:10:29 +00:00
N A M E S L L V M A n a l y s i s # first of a whole bunch of libs to get
2013-09-25 16:31:54 +00:00
P A T H S $ { L L V M _ L I B P A T H } )
2012-10-06 11:00:45 +00:00
2013-09-25 16:31:54 +00:00
if ( LLVM_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIBPATH )
2012-10-06 11:00:45 +00:00
if ( LLVM_STATIC )
# if static LLVM libraries were requested, use llvm-config to generate
# the list of what libraries we need, and substitute that in the right
# way for LLVM_LIBRARY.
execute_process ( COMMAND ${ LLVM_CONFIG } --libfiles
O U T P U T _ V A R I A B L E L L V M _ L I B R A R Y
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E )
string ( REPLACE " " ";" LLVM_LIBRARY ${ LLVM_LIBRARY } )
2014-08-06 10:48:06 +00:00
else ( )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lLLVM-3.4" )
2012-10-06 11:00:45 +00:00
endif ( )
else ( )
message ( FATAL_ERROR "LLVM not found." )
endif ( )
endif ( )
2012-09-10 08:38:51 +00:00
if ( WITH_CYCLES_OSL )
set ( CYCLES_OSL ${ LIBDIR } /osl CACHE PATH "Path to OpenShadingLanguage installation" )
find_library ( OSL_LIB_EXEC NAMES oslexec PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_COMP NAMES oslcomp PATHS ${ CYCLES_OSL } /lib )
find_library ( OSL_LIB_QUERY NAMES oslquery PATHS ${ CYCLES_OSL } /lib )
# WARNING! depends on correct order of OSL libs linking
2012-09-24 19:06:28 +00:00
list ( APPEND OSL_LIBRARIES ${ OSL_LIB_COMP } -force_load ${ OSL_LIB_EXEC } ${ OSL_LIB_QUERY } )
2014-12-29 09:48:21 +00:00
find_path ( OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${ CYCLES_OSL } /include )
2012-09-10 08:38:51 +00:00
find_program ( OSL_COMPILER NAMES oslc PATHS ${ CYCLES_OSL } /bin )
2014-12-29 09:48:21 +00:00
if ( OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER )
2012-09-10 08:38:51 +00:00
set ( OSL_FOUND TRUE )
else ( )
message ( STATUS "OSL not found" )
2014-11-21 12:07:18 +00:00
set ( WITH_CYCLES_OSL OFF )
2012-09-10 08:38:51 +00:00
endif ( )
endif ( )
2014-02-18 22:38:48 +00:00
2014-06-30 11:37:00 +00:00
if ( WITH_OPENMP )
execute_process ( COMMAND ${ CMAKE_C_COMPILER } --version OUTPUT_VARIABLE COMPILER_VENDOR )
string ( SUBSTRING "${COMPILER_VENDOR}" 0 5 VENDOR_NAME ) # truncate output
2014-07-07 17:20:24 +00:00
if ( ${ VENDOR_NAME } MATCHES "Apple" ) # Apple does not support OpenMP reliable with gcc and not with clang
2014-06-30 11:37:00 +00:00
set ( WITH_OPENMP OFF )
else ( ) # vanilla gcc or clang_omp support OpenMP
2014-07-07 17:20:24 +00:00
message ( STATUS "Using special OpenMP enabled compiler !" ) # letting find_package(OpenMP) module work for gcc
if ( CMAKE_C_COMPILER_ID MATCHES "Clang" ) # clang-omp in darwin libs
set ( OPENMP_FOUND ON )
set ( OpenMP_C_FLAGS "-fopenmp" CACHE STRING "C compiler flags for OpenMP parallization" FORCE )
set ( OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "C++ compiler flags for OpenMP parallization" FORCE )
include_directories ( ${ LIBDIR } /openmp/include )
link_directories ( ${ LIBDIR } /openmp/lib )
# This is a workaround for our helperbinaries ( datatoc, masgfmt, ... ),
# They are linked also to omp lib, so we need it in builddir for runtime exexcution, TODO: remove all unneeded dependencies from these
2014-11-16 16:12:49 +00:00
execute_process ( COMMAND ditto -arch ${ CMAKE_OSX_ARCHITECTURES } ${ LIBDIR } /openmp/lib/libiomp5.dylib ${ CMAKE_BINARY_DIR } /Resources/lib/libiomp5.dylib ) # for intermediate binaries, in respect to lib ID
2014-07-07 17:20:24 +00:00
endif ( )
2014-06-30 11:37:00 +00:00
endif ( )
2014-02-18 22:38:48 +00:00
endif ( )
2012-09-10 08:38:51 +00:00
2010-12-08 08:43:06 +00:00
set ( EXETYPE MACOSX_BUNDLE )
2012-10-04 11:37:17 +00:00
set ( CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g" )
set ( CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g" )
2012-10-01 14:03:02 +00:00
if ( CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386" )
set ( CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3" )
set ( CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3" )
2013-12-02 00:36:33 +00:00
if ( NOT CMAKE_C_COMPILER_ID MATCHES "Clang" )
2012-10-01 14:03:02 +00:00
set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller" )
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller" )
endif ( )
2010-12-08 08:43:06 +00:00
else ( )
set ( CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing" )
set ( CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing" )
endif ( )
2013-09-09 12:15:14 +00:00
2013-10-24 18:46:00 +00:00
if ( ${ XCODE_VERSION } VERSION_EQUAL 5 OR ${ XCODE_VERSION } VERSION_GREATER 5 )
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024" )
2013-09-10 19:23:39 +00:00
endif ( )
2014-07-26 16:10:10 +00:00
# Get rid of eventually clashes, we export some symbols explicite as local
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker ${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map" )
2010-12-08 08:43:06 +00:00
endif ( )
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Common.
2010-08-11 08:23:48 +00:00
2011-05-23 14:56:14 +00:00
if ( APPLE OR WIN32 )
2011-06-26 08:42:00 +00:00
if ( NOT EXISTS "${LIBDIR}/" )
2011-05-23 14:56:14 +00:00
message ( FATAL_ERROR "Apple and Windows require pre-compiled libs at: '${LIBDIR}'" )
endif ( )
endif ( )
2012-12-05 15:46:31 +00:00
if ( NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM )
message ( FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON" )
endif ( )
2012-07-01 15:26:25 +00:00
if ( WITH_CYCLES )
if ( NOT WITH_OPENIMAGEIO )
2013-09-23 13:21:27 +00:00
message ( FATAL_ERROR "Cycles requires WITH_OPENIMAGEIO, the library may not have been found. Configure OIIO or disable WITH_CYCLES" )
2012-07-01 15:26:25 +00:00
endif ( )
if ( NOT WITH_BOOST )
2013-09-23 13:21:27 +00:00
message ( FATAL_ERROR "Cycles requires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_CYCLES" )
2012-07-01 15:26:25 +00:00
endif ( )
2012-10-06 11:00:45 +00:00
2012-11-15 17:16:27 +00:00
if ( WITH_CYCLES_OSL )
2012-10-06 11:00:45 +00:00
if ( NOT WITH_LLVM )
2013-09-23 13:21:27 +00:00
message ( FATAL_ERROR "Cycles OSL requires WITH_LLVM, the library may not have been found. Configure LLVM or disable WITH_CYCLES_OSL" )
2012-10-06 11:00:45 +00:00
endif ( )
endif ( )
2012-07-01 15:26:25 +00:00
endif ( )
2012-11-11 16:54:26 +00:00
if ( WITH_INTERNATIONAL )
if ( NOT WITH_BOOST )
2013-09-23 13:21:27 +00:00
message ( FATAL_ERROR "Internationalization requires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_INTERNATIONAL" )
2012-11-11 16:54:26 +00:00
endif ( )
endif ( )
2012-07-01 15:26:25 +00:00
2011-08-01 06:11:41 +00:00
# See TEST_SSE_SUPPORT() for how this is defined.
2010-12-08 08:43:06 +00:00
if ( WITH_RAYOPTIMIZATION )
2011-08-01 06:11:41 +00:00
if ( SUPPORT_SSE_BUILD )
2011-10-01 18:29:40 +00:00
set ( PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}" )
2011-08-01 06:11:41 +00:00
add_definitions ( -D__SSE__ -D__MMX__ )
endif ( )
if ( SUPPORT_SSE2_BUILD )
2011-10-01 18:29:40 +00:00
set ( PLATFORM_CFLAGS " ${COMPILER_SSE2_FLAG} ${PLATFORM_CFLAGS}" )
2011-08-01 06:11:41 +00:00
add_definitions ( -D__SSE2__ )
if ( NOT SUPPORT_SSE_BUILD ) # dont double up
add_definitions ( -D__MMX__ )
2010-12-08 08:43:06 +00:00
endif ( )
endif ( )
endif ( )
2011-09-19 08:02:17 +00:00
# set the endian define
2012-08-07 12:03:43 +00:00
if ( MSVC )
2011-09-27 01:32:27 +00:00
# for some reason this fails on msvc
2011-09-19 08:02:17 +00:00
add_definitions ( -D__LITTLE_ENDIAN__ )
2012-08-07 13:51:19 +00:00
# OSX-Note: as we do crosscompiling with specific set architecture,
# endianess-detection and autosetting is counterproductive
# so we just set endianess according CMAKE_OSX_ARCHITECTURES
elseif ( CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 )
add_definitions ( -D__LITTLE_ENDIAN__ )
elseif ( CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64 )
add_definitions ( -D__BIG_ENDIAN__ )
2011-09-27 01:32:27 +00:00
else ( )
include ( TestBigEndian )
test_big_endian ( _SYSTEM_BIG_ENDIAN )
if ( _SYSTEM_BIG_ENDIAN )
add_definitions ( -D__BIG_ENDIAN__ )
else ( )
add_definitions ( -D__LITTLE_ENDIAN__ )
endif ( )
unset ( _SYSTEM_BIG_ENDIAN )
2011-09-19 08:02:17 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_IMAGE_OPENJPEG )
2012-06-23 14:23:44 +00:00
if ( WITH_SYSTEM_OPENJPEG )
2011-06-19 07:46:24 +00:00
# dealt with above
2011-02-15 19:04:51 +00:00
else ( )
2011-06-19 07:46:24 +00:00
set ( OPENJPEG_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/libopenjpeg" )
2012-06-21 14:44:15 +00:00
add_definitions ( -DOPJ_STATIC )
2011-02-15 19:04:51 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2006-11-17 02:27:12 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_IMAGE_REDCODE )
2010-11-30 18:52:39 +00:00
set ( REDCODE ${ CMAKE_SOURCE_DIR } /extern )
set ( REDCODE_INC ${ REDCODE } )
2010-12-08 08:43:06 +00:00
endif ( )
2010-11-30 18:52:39 +00:00
2008-10-07 17:13:35 +00:00
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Configure OpenGL.
2014-10-07 20:46:19 +00:00
2010-12-08 08:43:06 +00:00
find_package ( OpenGL )
2011-06-08 05:39:58 +00:00
blender_include_dirs_sys ( "${OPENGL_INCLUDE_DIR}" )
2014-10-07 20:46:19 +00:00
if ( WITH_GLU )
list ( APPEND BLENDER_GL_LIBRARIES "${OPENGL_glu_LIBRARY}" )
list ( APPEND GL_DEFINITIONS -DWITH_GLU )
endif ( )
if ( WITH_SYSTEM_GLES )
find_package_wrapper ( OpenGLES )
endif ( )
if ( WITH_GL_PROFILE_COMPAT OR WITH_GL_PROFILE_CORE )
list ( APPEND BLENDER_GL_LIBRARIES "${OPENGL_gl_LIBRARY}" )
elseif ( WITH_GL_PROFILE_ES20 )
if ( WITH_SYSTEM_GLES )
if ( NOT OPENGLES_LIBRARY )
message ( FATAL_ERROR "Unable to find OpenGL ES libraries. Install them or disable WITH_SYSTEM_GLES." )
endif ( )
list ( APPEND BLENDER_GL_LIBRARIES OPENGLES_LIBRARY )
else ( )
set ( OPENGLES_LIBRARY "" CACHE FILEPATH "OpenGL ES 2.0 library file" )
mark_as_advanced ( OPENGLES_LIBRARY )
list ( APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}" )
2014-11-13 14:03:30 +00:00
if ( NOT OPENGLES_LIBRARY )
2014-10-07 20:46:19 +00:00
message ( FATAL_ERROR "To compile WITH_GL_EGL you need to set OPENGLES_LIBRARY to the file path of an OpenGL ES 2.0 library." )
endif ( )
endif ( )
if ( WIN32 )
# Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES
set ( OPENGLES_DLL "" CACHE FILEPATH "OpenGL ES 2.0 redistributable DLL file" )
mark_as_advanced ( OPENGLES_DLL )
if ( NOT OPENGLES_DLL )
message ( FATAL_ERROR "To compile WITH_GL_PROFILE_ES20 you need to set OPENGLES_DLL to the file path of an OpenGL ES 2.0 runtime dynamic link library (DLL)." )
endif ( )
if ( WITH_GL_ANGLE )
list ( APPEND GL_DEFINITIONS -DWITH_ANGLE )
set ( D3DCOMPILER_DLL "" CACHE FILEPATH "Direct3D Compiler redistributable DLL file (needed by ANGLE)" )
get_filename_component ( D3DCOMPILER_FILENAME "${D3DCOMPILER_DLL}" NAME )
list ( APPEND GL_DEFINITIONS "-DD3DCOMPILER=\" \\\"${D3DCOMPILER_FILENAME}\\\"\"")
mark_as_advanced ( D3DCOMPILER_DLL )
2014-11-13 14:03:30 +00:00
if ( D3DCOMPILER_DLL STREQUAL "" )
2014-10-07 20:46:19 +00:00
message ( FATAL_ERROR "To compile WITH_GL_ANGLE you need to set D3DCOMPILER_DLL to the file path of a copy of the DirectX redistributable DLL file: D3DCompiler_46.dll" )
endif ( )
endif ( )
endif ( )
endif ( )
if ( WITH_GL_EGL )
list ( APPEND GL_DEFINITIONS -DWITH_GL_EGL )
if ( WITH_SYSTEM_GLES )
if ( NOT OPENGLES_EGL_LIBRARY )
message ( FATAL_ERROR "Unable to find OpenGL ES libraries. Install them or disable WITH_SYSTEM_GLES." )
endif ( )
list ( APPEND BLENDER_GL_LIBRARIES OPENGLES_EGL_LIBRARY )
else ( )
set ( OPENGLES_EGL_LIBRARY "" CACHE FILEPATH "EGL library file" )
mark_as_advanced ( OPENGLES_EGL_LIBRARY )
list ( APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}" "${OPENGLES_EGL_LIBRARY}" )
2014-11-13 14:03:30 +00:00
if ( NOT OPENGLES_EGL_LIBRARY )
2014-10-07 20:46:19 +00:00
message ( FATAL_ERROR "To compile WITH_GL_EGL you need to set OPENGLES_EGL_LIBRARY to the file path of an EGL library." )
endif ( )
endif ( )
if ( WIN32 )
# Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES
set ( OPENGLES_EGL_DLL "" CACHE FILEPATH "EGL redistributable DLL file" )
mark_as_advanced ( OPENGLES_EGL_DLL )
if ( NOT OPENGLES_EGL_DLL )
message ( FATAL_ERROR "To compile WITH_GL_EGL you need to set OPENGLES_EGL_DLL to the file path of an EGL runtime dynamic link library (DLL)." )
endif ( )
endif ( )
endif ( )
if ( WITH_GL_PROFILE_COMPAT )
list ( APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_COMPAT )
endif ( )
if ( WITH_GL_PROFILE_CORE )
list ( APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_CORE )
endif ( )
if ( WITH_GL_PROFILE_ES20 )
list ( APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_ES20 )
endif ( )
if ( WITH_GL_EGL )
list ( APPEND GL_DEFINITIONS -DWITH_EGL )
endif ( )
2009-10-19 16:20:12 +00:00
2010-11-19 11:33:12 +00:00
#-----------------------------------------------------------------------------
# Configure OpenMP.
2014-07-07 22:29:53 +00:00
if ( WITH_OPENMP )
2011-09-30 15:51:58 +00:00
find_package ( OpenMP )
2010-12-08 08:43:06 +00:00
if ( OPENMP_FOUND )
2014-07-08 21:35:04 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
2010-12-08 08:43:06 +00:00
else ( )
set ( WITH_OPENMP OFF )
endif ( )
2010-12-21 03:32:51 +00:00
2011-09-30 15:51:58 +00:00
mark_as_advanced (
O p e n M P _ C _ F L A G S
O p e n M P _ C X X _ F L A G S
)
endif ( )
2010-11-19 11:33:12 +00:00
2011-04-05 23:31:01 +00:00
#-----------------------------------------------------------------------------
# Configure GLEW
2014-10-07 20:46:19 +00:00
if ( WITH_GLEW_MX )
list ( APPEND GL_DEFINITIONS -DWITH_GLEW_MX )
endif ( )
2012-06-23 13:42:14 +00:00
if ( WITH_SYSTEM_GLEW )
2011-04-05 23:31:01 +00:00
find_package ( GLEW )
2014-10-07 20:46:19 +00:00
# Note: There is an assumption here that the system GLEW is not a static library.
2011-04-05 23:31:01 +00:00
if ( NOT GLEW_FOUND )
2014-10-07 20:46:19 +00:00
message ( FATAL_ERROR "GLEW is required to build Blender. Install it or disable WITH_SYSTEM_GLEW." )
2011-04-05 23:31:01 +00:00
endif ( )
2014-10-07 20:46:19 +00:00
if ( WITH_GLEW_MX )
set ( BLENDER_GLEW_LIBRARIES ${ GLEW_MX_LIBRARY } )
else ( )
set ( BLENDER_GLEW_LIBRARIES ${ GLEW_LIBRARY } )
endif ( )
2012-06-23 13:42:14 +00:00
else ( )
2014-10-07 20:46:19 +00:00
if ( WITH_GLEW_ES )
set ( GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew-es/include" )
list ( APPEND GL_DEFINITIONS -DGLEW_STATIC -DWITH_GLEW_ES )
# These definitions remove APIs from glew.h, making GLEW smaller, and catching unguarded API usage
if ( NOT WITH_GL_PROFILE_ES20 )
# No ES functions are needed
list ( APPEND GL_DEFINITIONS -DGLEW_NO_ES )
elseif ( NOT ( WITH_GL_PROFILE_CORE OR WITH_GL_PROFILE_COMPAT ) )
# ES is enabled, but the other functions are all disabled
list ( APPEND GL_DEFINITIONS -DGLEW_ES_ONLY )
endif ( )
if ( WITH_GL_PROFILE_ES20 )
if ( WITH_GL_EGL )
list ( APPEND GL_DEFINITIONS -DGLEW_USE_LIB_ES20 )
endif ( )
# ToDo: This is an experiment to eliminate ES 1 symbols,
# GLEW doesn't really properly provide this level of control
# (for example, without modification it eliminates too many symbols)
# so there are lots of modifications to GLEW to make this work,
# and no attempt to make it work beyond Blender at this point.
list ( APPEND GL_DEFINITIONS -DGL_ES_VERSION_1_0=0 -DGL_ES_VERSION_CL_1_1=0 -DGL_ES_VERSION_CM_1_1=0 )
endif ( )
if ( WITH_GL_EGL )
list ( APPEND GL_DEFINITIONS -DGLEW_INC_EGL )
endif ( )
set ( BLENDER_GLEW_LIBRARIES extern_glew_es bf_intern_glew_mx )
else ( )
set ( GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include" )
list ( APPEND GL_DEFINITIONS -DGLEW_STATIC )
# This won't affect the non-experimental glew library,
# but is used for conditional compilation elsewhere.
list ( APPEND GL_DEFINITIONS -DGLEW_NO_ES )
set ( BLENDER_GLEW_LIBRARIES extern_glew )
endif ( )
2011-04-05 23:31:01 +00:00
endif ( )
2014-10-07 20:46:19 +00:00
if ( NOT WITH_GLU )
list ( APPEND GL_DEFINITIONS -DGLEW_NO_GLU )
endif ( )
2013-01-03 00:23:52 +00:00
#-----------------------------------------------------------------------------
# Configure Bullet
if ( WITH_BULLET AND WITH_SYSTEM_BULLET )
find_package ( Bullet )
if ( NOT BULLET_FOUND )
set ( WITH_BULLET OFF )
endif ( )
else ( )
set ( BULLET_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/bullet2/src" )
# set(BULLET_LIBRARIES "")
endif ( )
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
2011-03-24 00:14:49 +00:00
# Configure Python.
if ( WITH_PYTHON_MODULE )
add_definitions ( -DPy_ENABLE_SHARED )
2011-09-30 15:51:58 +00:00
endif ( )
2011-03-24 00:14:49 +00:00
#-----------------------------------------------------------------------------
2006-11-17 02:27:12 +00:00
# Extra compile flags
2010-10-18 12:35:40 +00:00
2010-12-08 08:43:06 +00:00
if ( CMAKE_COMPILER_IS_GNUCC )
2010-12-16 09:55:35 +00:00
2010-12-21 03:32:51 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ALL -Wall )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_DECLARATION_AFTER_STATEMENT -Werror=declaration-after-statement )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration )
2012-09-15 01:52:28 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type )
2011-03-15 22:30:07 +00:00
# system headers sometimes do this, disable for now, was: -Werror=strict-prototypes
2012-09-15 01:52:28 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes )
2010-12-21 03:32:51 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_WRITE_STRINGS -Wwrite-strings )
2012-09-16 01:35:00 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_LOGICAL_OP -Wlogical-op )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_UNDEF -Wundef )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_INIT_SELF -Winit-self ) # needs -Wuninitialized
2012-09-20 01:02:39 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_NULL -Wnonnull ) # C only
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero )
2013-07-19 10:39:25 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_TYPE_LIMITS -Wtype-limits )
2011-09-26 09:43:35 +00:00
2012-10-20 13:29:07 +00:00
# gcc 4.2 gives annoying warnings on every file with this
2013-03-24 12:13:13 +00:00
if ( NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3" )
2012-10-20 13:29:07 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_UNINITIALIZED -Wuninitialized )
endif ( )
2013-03-14 13:00:00 +00:00
# versions before gcc4.6 give many BLI_math warnings
2013-03-24 12:13:13 +00:00
if ( NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.6" )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_REDUNDANT_DECLS -Wredundant-decls )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_REDUNDANT_DECLS -Wredundant-decls )
2013-03-14 13:00:00 +00:00
endif ( )
2011-04-03 10:04:16 +00:00
# disable because it gives warnings for printf() & friends.
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DOUBLE_PROMOTION -Wdouble-promotion -Wno-error=double-promotion)
2012-01-01 16:46:08 +00:00
if ( NOT APPLE )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable )
endif ( )
2010-12-21 03:32:51 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_ALL -Wall )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare )
2012-09-16 01:35:00 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_LOGICAL_OP -Wlogical-op )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_INIT_SELF -Winit-self ) # needs -Wuninitialized
2012-09-20 01:02:39 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero )
2013-07-19 10:39:25 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_TYPE_LIMITS -Wtype-limits )
2012-10-01 16:45:50 +00:00
2012-10-20 13:29:07 +00:00
# gcc 4.2 gives annoying warnings on every file with this
2013-03-24 12:13:13 +00:00
if ( NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3" )
2012-10-20 13:29:07 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_UNINITIALIZED -Wuninitialized )
endif ( )
2012-10-01 16:45:50 +00:00
# causes too many warnings
if ( NOT APPLE )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_UNDEF -Wundef )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_MISSING_DECLARATIONS -Wmissing-declarations )
endif ( )
2010-12-16 09:55:35 +00:00
2011-10-30 04:48:00 +00:00
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations )
2011-11-01 00:34:09 +00:00
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter )
2012-01-01 16:46:08 +00:00
if ( NOT APPLE )
2012-01-01 22:23:08 +00:00
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable )
2012-01-01 16:46:08 +00:00
endif ( )
2011-10-30 04:48:00 +00:00
2013-12-02 00:36:33 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "Clang" )
2012-06-11 12:13:41 +00:00
2014-07-08 21:35:04 +00:00
if ( APPLE AND WITH_OPENMP ) # we need the Intel omp lib linked here to not fail all tests due presence of -fopenmp !
set ( CMAKE_REQUIRED_FLAGS "-L${LIBDIR}/openmp/lib -liomp5" ) # these are only used for the checks
endif ( )
2012-09-15 01:52:28 +00:00
# strange, clang complains these are not supported, but then yses them.
2012-06-11 12:13:41 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ALL -Wall )
2013-02-26 21:58:06 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_DECLARATION_AFTER_STATEMENT -Werror=declaration-after-statement )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type )
2012-06-11 12:13:41 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts )
2012-09-15 01:52:28 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes )
2013-02-26 21:58:06 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter )
2012-06-11 12:13:41 +00:00
2012-09-20 09:19:49 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_ALL -Wall )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual ) # we get a lot of these, if its a problem a dev needs to look into it.
2013-02-26 21:58:06 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare )
2012-09-20 09:19:49 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof )
2013-02-26 21:58:06 +00:00
# gives too many unfixable warnings
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
2012-06-11 12:13:41 +00:00
2013-03-14 07:25:54 +00:00
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros )
2013-07-15 08:26:16 +00:00
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations )
2013-11-22 00:30:40 +00:00
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers )
2013-07-15 08:26:16 +00:00
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef )
ADD_CHECK_C_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn )
ADD_CHECK_CXX_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field )
ADD_CHECK_CXX_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing )
ADD_CHECK_CXX_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor )
ADD_CHECK_CXX_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros )
ADD_CHECK_CXX_COMPILER_FLAG ( CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder )
2010-12-16 09:55:35 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "Intel" )
2010-12-21 03:32:51 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ALL -Wall )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas )
2010-12-16 09:55:35 +00:00
2010-12-21 03:32:51 +00:00
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_ALL -Wall )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof )
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare )
2010-12-16 09:55:35 +00:00
2011-10-01 21:09:42 +00:00
# disable numbered, false positives
set ( C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556" )
set ( CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556" )
2014-11-08 20:17:04 +00:00
elseif ( CMAKE_C_COMPILER_ID MATCHES "MSVC" )
# most msvc warnings are C & C++
set ( _WARNINGS
# warning level:
" / W 3 "
" / w 3 4 0 6 2 " # switch statement contains 'default' but no 'case' labels
# disable:
" / w d 4 0 1 8 " # signed/unsigned mismatch
" / w d 4 0 6 5 " # switch statement contains 'default' but no 'case' labels
" / w d 4 1 2 7 " # conditional expression is constant
" / w d 4 1 8 1 " # qualifier applied to reference type; ignored
" / w d 4 2 0 0 " # zero-sized array in struct/union
" / w d 4 2 4 4 " # conversion from 'type1' to 'type2', possible loss of data
" / w d 4 2 6 7 " # conversion from 'size_t' to 'type', possible loss of data
" / w d 4 3 0 5 " # truncation from 'type1' to 'type2'
" / w d 4 8 0 0 " # forcing value to bool 'true' or 'false'
# errors:
" / w e 4 0 1 3 " # 'function' undefined; assuming extern returning int
" / w e 4 4 3 1 " # missing type specifier - int assumed
)
2011-10-01 21:09:42 +00:00
2014-11-08 20:17:04 +00:00
string ( REPLACE ";" " " _WARNINGS "${_WARNINGS}" )
set ( C_WARNINGS "${_WARNINGS}" )
set ( CXX_WARNINGS "${_WARNINGS}" )
unset ( _WARNINGS )
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-17 06:38:56 +00:00
2011-07-16 06:55:45 +00:00
# ensure python header is found since detection can fail, this could happen
# with _any_ library but since we used a fixed python version this tends to
# be most problematic.
if ( WITH_PYTHON )
if ( NOT EXISTS "${PYTHON_INCLUDE_DIR}/Python.h" )
message ( FATAL_ERROR "Missing: \" ${ PYTHON_INCLUDE_DIR } /Python.h\ ",\n"
" S e t t h e c a c h e e n t r y ' P Y T H O N _ I N C L U D E _ D I R ' t o p o i n t "
" t o a v a l i d p y t h o n i n c l u d e p a t h . C o n t a i n i n g "
" P y t h o n . h f o r p y t h o n v e r s i o n \ " $ { P Y T H O N _ V E R S I O N } \ " " )
endif ( )
2012-04-30 09:38:32 +00:00
2014-03-04 13:20:11 +00:00
if ( WIN32 )
# pass, we have this in an archive to extract
elseif ( WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY )
2014-07-28 14:42:30 +00:00
find_python_package ( numpy )
2012-04-30 09:38:32 +00:00
endif ( )
2014-03-04 18:39:53 +00:00
if ( WIN32 OR APPLE )
# pass, we have this in lib/python/site-packages
elseif ( WITH_PYTHON_INSTALL_REQUESTS )
2014-07-28 14:42:30 +00:00
find_python_package ( requests )
2014-03-04 18:39:53 +00:00
endif ( )
2011-07-16 06:55:45 +00:00
endif ( )
2012-10-20 13:08:51 +00:00
# Include warnings first, so its possible to disable them with user defined flags
# eg: -Wno-uninitialized
set ( CMAKE_C_FLAGS "${C_WARNINGS} ${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}" )
set ( CMAKE_CXX_FLAGS "${CXX_WARNINGS} ${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS}" )
2009-10-19 16:20:12 +00:00
2013-08-28 04:32:39 +00:00
# defined above, platform spesific but shared names
mark_as_advanced (
C Y C L E S _ O S L
O S L _ L I B _ E X E C
O S L _ C O M P I L E R
O S L _ L I B _ C O M P
O S L _ L I B _ Q U E R Y
2014-12-29 09:48:21 +00:00
O S L _ I N C L U D E _ D I R
2013-08-28 04:32:39 +00:00
)
mark_as_advanced (
L L V M _ C O N F I G
L L V M _ D I R E C T O R Y
L L V M _ L I B R A R Y
L L V M _ V E R S I O N
)
2011-02-20 23:39:29 +00:00
#-------------------------------------------------------------------------------
# Global Defines
2011-05-24 06:44:39 +00:00
# better not set includes here but this debugging option is off by default.
2010-12-08 08:43:06 +00:00
if ( WITH_CXX_GUARDEDALLOC )
2011-05-24 06:44:39 +00:00
include_directories ( ${ CMAKE_SOURCE_DIR } /intern/guardedalloc )
2012-06-25 10:35:24 +00:00
add_definitions ( -DWITH_CXX_GUARDEDALLOC )
2010-12-08 08:43:06 +00:00
endif ( )
2006-11-17 02:27:12 +00:00
2010-12-15 10:22:26 +00:00
if ( WITH_ASSERT_ABORT )
add_definitions ( -DWITH_ASSERT_ABORT )
endif ( )
2010-12-16 12:48:30 +00:00
# message(STATUS "Using CFLAGS: ${CMAKE_C_FLAGS}")
# message(STATUS "Using CXXFLAGS: ${CMAKE_CXX_FLAGS}")
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Libraries
2010-12-06 10:56:37 +00:00
2014-06-18 16:28:27 +00:00
if ( WITH_GTESTS )
2014-06-18 12:49:17 +00:00
include ( GTestTesting )
endif ( )
2014-01-20 19:41:54 +00:00
if ( WITH_BLENDER OR WITH_PLAYER )
add_subdirectory ( intern )
add_subdirectory ( extern )
2014-06-18 12:49:17 +00:00
# source after intern and extern to gather all
# internal and external library information first, for test linking
add_subdirectory ( source )
2014-01-20 19:41:54 +00:00
elseif ( WITH_CYCLES_STANDALONE )
add_subdirectory ( intern/cycles )
2014-09-14 15:40:34 +00:00
add_subdirectory ( extern/clew )
add_subdirectory ( extern/cuew )
2014-01-25 13:19:32 +00:00
if ( NOT WITH_SYSTEM_GLEW )
2014-01-20 19:41:54 +00:00
add_subdirectory ( extern/glew )
endif ( )
endif ( )
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Blender Application
2011-07-13 08:15:06 +00:00
if ( WITH_BLENDER )
add_subdirectory ( source/creator )
endif ( )
2006-11-17 02:27:12 +00:00
2008-09-09 21:15:30 +00:00
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Blender Player
2010-12-08 08:43:06 +00:00
if ( WITH_PLAYER )
add_subdirectory ( source/blenderplayer )
endif ( )
2011-02-15 18:33:05 +00:00
2014-06-18 11:44:40 +00:00
#-----------------------------------------------------------------------------
# Testing
add_subdirectory ( tests )
2011-02-15 18:33:05 +00:00
#-----------------------------------------------------------------------------
# CPack for generating packages
include ( build_files/cmake/packaging.cmake )
2011-06-19 13:49:20 +00:00
#-----------------------------------------------------------------------------
# Print Final Configuration
if ( FIRST_RUN )
set ( _config_msg "\n* Blender Configuration *" )
macro ( info_cfg_option
_ s e t t i n g )
set ( _msg " * ${_setting}" )
string ( LENGTH "${_msg}" _len )
2012-04-30 09:38:32 +00:00
while ( "32" GREATER "${_len}" )
2011-06-19 13:49:20 +00:00
set ( _msg "${_msg} " )
math ( EXPR _len "${_len} + 1" )
endwhile ( )
set ( _config_msg "${_config_msg}\n${_msg}${${_setting}}" )
endmacro ( )
macro ( info_cfg_text
_ t e x t )
set ( _config_msg "${_config_msg}\n\n ${_text}" )
2011-09-30 15:51:58 +00:00
2011-06-19 13:49:20 +00:00
endmacro ( )
2013-12-02 00:36:33 +00:00
message ( STATUS "C Compiler: \" ${ CMAKE_C_COMPILER_ID } \"")
message ( STATUS "C++ Compiler: \" ${ CMAKE_CXX_COMPILER_ID } \"")
2011-06-19 13:49:20 +00:00
info_cfg_text ( "Build Options:" )
info_cfg_option ( WITH_GAMEENGINE )
info_cfg_option ( WITH_PLAYER )
info_cfg_option ( WITH_BULLET )
2012-08-19 22:19:19 +00:00
info_cfg_option ( WITH_IK_SOLVER )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_IK_ITASC )
info_cfg_option ( WITH_OPENCOLLADA )
info_cfg_option ( WITH_FFTW3 )
info_cfg_option ( WITH_INTERNATIONAL )
2011-08-02 06:32:53 +00:00
info_cfg_option ( WITH_INPUT_NDOF )
2011-11-07 17:13:32 +00:00
info_cfg_option ( WITH_CYCLES )
2013-05-24 10:15:20 +00:00
info_cfg_option ( WITH_FREESTYLE )
2012-09-15 10:03:17 +00:00
info_cfg_option ( WITH_OPENCOLORIO )
2011-06-19 13:49:20 +00:00
info_cfg_text ( "Compiler Options:" )
info_cfg_option ( WITH_BUILDINFO )
info_cfg_option ( WITH_OPENMP )
info_cfg_option ( WITH_RAYOPTIMIZATION )
info_cfg_text ( "System Options:" )
info_cfg_option ( WITH_INSTALL_PORTABLE )
2012-01-02 12:25:14 +00:00
info_cfg_option ( WITH_X11_XF86VMODE )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_X11_XINPUT )
2012-04-12 05:34:17 +00:00
info_cfg_option ( WITH_MEM_JEMALLOC )
2013-10-05 11:59:15 +00:00
info_cfg_option ( WITH_MEM_VALGRIND )
2012-06-23 14:23:44 +00:00
info_cfg_option ( WITH_SYSTEM_GLEW )
info_cfg_option ( WITH_SYSTEM_OPENJPEG )
2011-06-19 13:49:20 +00:00
info_cfg_text ( "Image Formats:" )
2013-10-13 09:35:54 +00:00
info_cfg_option ( WITH_OPENIMAGEIO )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_IMAGE_CINEON )
info_cfg_option ( WITH_IMAGE_DDS )
info_cfg_option ( WITH_IMAGE_HDR )
info_cfg_option ( WITH_IMAGE_OPENEXR )
info_cfg_option ( WITH_IMAGE_OPENJPEG )
info_cfg_option ( WITH_IMAGE_REDCODE )
info_cfg_option ( WITH_IMAGE_TIFF )
info_cfg_text ( "Audio:" )
info_cfg_option ( WITH_OPENAL )
info_cfg_option ( WITH_SDL )
2014-11-17 11:35:36 +00:00
info_cfg_option ( WITH_SDL_DYNLOAD )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_JACK )
2013-03-27 07:19:54 +00:00
info_cfg_option ( WITH_JACK_DYNLOAD )
2012-10-08 02:51:42 +00:00
info_cfg_option ( WITH_CODEC_AVI )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_CODEC_FFMPEG )
info_cfg_option ( WITH_CODEC_SNDFILE )
info_cfg_text ( "Compression:" )
info_cfg_option ( WITH_LZMA )
info_cfg_option ( WITH_LZO )
info_cfg_text ( "Python:" )
info_cfg_option ( WITH_PYTHON_INSTALL )
2012-04-30 09:38:32 +00:00
info_cfg_option ( WITH_PYTHON_INSTALL_NUMPY )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_PYTHON_MODULE )
info_cfg_option ( WITH_PYTHON_SAFETY )
2013-02-22 22:24:38 +00:00
if ( APPLE )
info_cfg_option ( WITH_PYTHON_FRAMEWORK )
endif ( )
2011-06-19 13:49:20 +00:00
info_cfg_text ( "Modifiers:" )
info_cfg_option ( WITH_MOD_BOOLEAN )
2011-12-31 03:34:44 +00:00
info_cfg_option ( WITH_MOD_REMESH )
2011-06-19 13:49:20 +00:00
info_cfg_option ( WITH_MOD_FLUID )
2011-11-13 14:16:43 +00:00
info_cfg_option ( WITH_MOD_OCEANSIM )
2011-06-19 13:49:20 +00:00
2014-10-07 20:46:19 +00:00
info_cfg_text ( "OpenGL:" )
info_cfg_option ( WITH_GLEW_ES )
info_cfg_option ( WITH_GLU )
info_cfg_option ( WITH_GL_EGL )
info_cfg_option ( WITH_GL_PROFILE_COMPAT )
info_cfg_option ( WITH_GL_PROFILE_CORE )
info_cfg_option ( WITH_GL_PROFILE_ES20 )
if ( WIN32 )
info_cfg_option ( WITH_GL_ANGLE )
endif ( )
2013-11-25 04:33:41 +00:00
info_cfg_text ( "Other:" )
info_cfg_option ( WITH_OPENNL )
2013-01-31 23:25:06 +00:00
# debug
message ( STATUS "HAVE_STDBOOL_H = ${HAVE_STDBOOL_H}" )
2011-06-19 13:49:20 +00:00
info_cfg_text ( "" )
message ( "${_config_msg}" )
endif ( )
2014-11-16 11:57:42 +00:00
if ( 0 )
print_all_vars ( )
endif ( )