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
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 )
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
2011-09-19 08:02:17 +00:00
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 )
2011-04-28 06:20:47 +00:00
option ( WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default (recommend to leave off)" OFF )
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.
2011-05-28 13:11:24 +00:00
mark_as_advanced ( WITH_PYTHON_SECURITY ) # some distrobutions see this as a security issue, rather than have them patch it, make a build option.
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 )
2011-03-11 01:24:16 +00:00
option ( WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ON )
option ( WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON )
2010-12-08 08:43:06 +00:00
option ( WITH_FFTW3 "Enable FFTW3 support (Used for smoke and audio effects)" OFF )
option ( WITH_BULLET "Enable Bullet (Physics Engine)" ON )
option ( WITH_GAMEENGINE "Enable Game Engine" ON )
option ( WITH_PLAYER "Build Player" OFF )
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
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 )
2010-06-06 13:32:58 +00:00
# (unix defaults to OpenMP On)
2012-07-05 11:39:11 +00:00
if ( ( UNIX AND NOT APPLE ) OR ( MINGW ) )
2012-04-12 08:45:26 +00:00
set ( PLATFORM_DEFAULT ON )
2010-12-08 08:43:06 +00:00
else ( )
2012-04-12 08:45:26 +00:00
set ( PLATFORM_DEFAULT OFF )
2010-12-08 08:43:06 +00:00
endif ( )
2012-04-15 09:51:30 +00:00
option ( WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ${ PLATFORM_DEFAULT } )
2012-04-12 08:45:26 +00:00
unset ( PLATFORM_DEFAULT )
2010-06-06 13:32:58 +00:00
2011-03-25 04:56:48 +00:00
if ( UNIX AND NOT APPLE )
2011-10-23 17:52:20 +00:00
option ( WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON )
2012-01-11 12:28:31 +00:00
option ( WITH_X11_XF86VMODE "Enable X11 video mode switching" ON )
2012-06-23 14:23:44 +00:00
option ( WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON )
2012-02-17 20:51:39 +00:00
# freebsd doesn't seems to support XDND
if ( NOT ${ CMAKE_SYSTEM_NAME } MATCHES "FreeBSD" )
option ( WITH_GHOST_XDND "Enable drag'n'drop support on Linux using XDND protocol" ON )
endif ( )
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 )
2011-03-25 04:56:48 +00:00
endif ( )
2012-06-23 14:23:44 +00:00
# (unix defaults to System OpenJPEG On)
if ( UNIX AND NOT APPLE )
set ( PLATFORM_DEFAULT ON )
else ( )
set ( PLATFORM_DEFAULT OFF )
endif ( )
option ( WITH_SYSTEM_OPENJPEG "Use the operating systems OpenJPEG library" ${ PLATFORM_DEFAULT } )
unset ( PLATFORM_DEFAULT )
2010-10-23 15:40:13 +00:00
# Modifiers
2012-04-12 08:36:07 +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_DECIMATE "Enable Decimate Modifier" ON )
option ( WITH_MOD_BOOLEAN "Enable Boolean Modifier" ON )
option ( WITH_MOD_REMESH "Enable Remesh Modifier" ON )
option ( WITH_MOD_CLOTH_ELTOPO "Enable Experimental cloth solver" OFF )
2011-04-10 05:43:34 +00:00
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
2012-04-12 08:36:07 +00:00
option ( WITH_IMAGE_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" ON )
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 )
option ( WITH_IMAGE_REDCODE "Enable RedCode Image Support" OFF )
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-04-24 12:57:58 +00:00
option ( WITH_CODEC_FFMPEG "Enable FFMPeg Support (http://ffmpeg.org)" OFF )
2012-04-14 21:26:50 +00:00
2010-12-08 08:43:06 +00:00
option ( WITH_CODEC_SNDFILE "Enable libsndfile Support (http://www.mega-nerd.com/libsndfile)" OFF )
if ( APPLE OR ( WIN32 AND NOT UNIX ) )
option ( WITH_CODEC_QUICKTIME "Enable Quicktime Support" OFF )
endif ( )
2006-11-17 02:27:12 +00:00
2010-06-06 13:32:58 +00:00
# 3D format support
# disable opencollada on non-apple unix because opencollada has no package for debian
2011-03-25 05:23:58 +00:00
option ( WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" OFF )
2009-11-19 11:49:42 +00:00
2010-06-06 13:32:58 +00:00
# Sound output
2010-12-08 08:43:06 +00:00
option ( WITH_SDL "Enable SDL for sound and joystick support" ON )
option ( WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON )
option ( WITH_JACK "Enable Jack Support (http://www.jackaudio.org)" OFF )
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 )
2012-01-16 16:46:00 +00:00
# Mesh boolean lib
option ( WITH_CARVE "Enable Carve library to handle mesh boolean operations" ON )
2010-06-06 13:32:58 +00:00
# Misc
2011-08-03 14:18:02 +00:00
option ( WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON )
2011-09-30 15:51:58 +00:00
option ( WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" 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 )
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 )
2012-05-01 23:22:58 +00:00
set ( PYTHON_NUMPY_PATH "" CACHE PATH "Python to python site-packages or dist-packages containing 'numpy' module" )
mark_as_advanced ( PYTHON_NUMPY_PATH )
2012-05-27 10:03:13 +00:00
if ( MINGW )
option ( WITH_MINGW64 "Use the 64-bit version of MinGW" OFF )
mark_as_advanced ( WITH_MINGW64 )
endif ( )
2010-06-06 13:32:58 +00:00
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 )
2011-11-10 12:52:17 +00:00
option ( WITH_CYCLES_TEST "Build cycles test application" OFF )
2012-06-04 16:30:15 +00:00
option ( WITH_CYCLES_OSL "Build Cycles with OSL support" OFF )
2011-11-10 12:52:17 +00:00
option ( WITH_CYCLES_CUDA_BINARIES "Build cycles CUDA binaries" OFF )
2012-05-29 16:18:10 +00:00
set ( CYCLES_CUDA_BINARIES_ARCH sm_13 sm_20 sm_21 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 )
2011-04-28 13:47:27 +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 )
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 )
2011-10-20 00:48:00 +00:00
2010-12-08 08:43:06 +00:00
if ( APPLE )
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
execute_process ( COMMAND uname -r OUTPUT_VARIABLE MAC_SYS ) # check for actual system-version
if ( ${ 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 )
2011-03-07 21:28:36 +00:00
endif ( )
2012-03-10 16:21:48 +00:00
message ( STATUS "Detected system-version: " ${ OSX_SYSTEM } )
2012-03-12 12:03:52 +00:00
if ( NOT CMAKE_OSX_DEPLOYMENT_TARGET )
set ( CMAKE_OSX_DEPLOYMENT_TARGET "10.5" CACHE STRING "" FORCE ) # 10.5 is our minimum target, if you have higher sdk, weak linking happens
2012-03-10 16:21:48 +00:00
endif ( )
2012-02-20 14:19:45 +00:00
if ( ${ CMAKE_GENERATOR } MATCHES "Xcode" )
2012-03-15 15:32:56 +00:00
##### workaround for actual official cmake incompatibility with xcode 4.3 #####
if ( ${ XCODE_VERSION } MATCHES '' ) # cmake fails due looking for xcode in the wrong path, thus will be empty var
message ( "Official cmake does not yet support Xcode 4.3, get a patched version here: http://www.jensverwiebe.de/Blender/CMake%202.8-7patched.zip" )
endif ( )
### end workaround for actual official cmake incompatibility with xcode 4.3 ###
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 } )
2010-12-08 08:43:06 +00:00
option ( WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON )
option ( USE_QTKIT "Use QtKit instead of Carbon quicktime (needed for having partial quicktime for 64bit)" OFF )
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
2012-04-30 12:49:26 +00:00
if ( NOT WITH_BLENDER AND NOT WITH_PLAYER AND NOT WITH_CYCLES_TEST )
2011-07-13 08:15:06 +00:00
message ( FATAL_ERROR "At least one of WITH_BLENDER or WITH_PLAYER must be enabled, nothing to do!" )
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-04-09 07:06:06 +00:00
if ( NOT WITH_AUDASPACE AND ( WITH_OPENAL OR WITH_SDL OR WITH_JACK OR WITH_GAMEENGINE ) )
message ( FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK/WITH_CODEC_FFMPEG/WITH_GAMEENGINE require WITH_AUDASPACE" )
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 )
message ( FATAL_ERROR "WITH_GHOST_SDL requires WITH_SDL to be ON" )
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-11-13 14:16:43 +00:00
if ( NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM )
message ( FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON" )
2011-11-13 12:17:27 +00:00
endif ( )
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 ( )
2012-01-16 16:46:00 +00:00
# auto enable openimageio for cycles
2011-08-16 16:15:34 +00:00
if ( WITH_CYCLES )
set ( WITH_OPENIMAGEIO ON )
2012-01-16 16:46:00 +00:00
endif ( )
# auto enable boost for cycles and carve
if ( WITH_CYCLES OR WITH_CARVE )
2011-08-16 16:15:34 +00:00
set ( WITH_BOOST ON )
endif ( )
2011-08-23 20:19:08 +00:00
# don't store paths to libs for portable distrobution
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 )
2012-04-12 05:34:17 +00:00
set ( WITH_GHOST_XDND OFF )
2012-03-13 14:28:58 +00:00
endif ( )
2012-04-15 07:32:56 +00:00
if ( MINGW )
if ( WITH_CODEC_QUICKTIME )
message ( FATAL_ERROR "MINGW requires WITH_CODEC_QUICKTIME to be OFF "
" b e c a u s e i t i s c u r r e n t l y u n s u p p o r t e d , r e m o v e t h i s "
" l i n e i f y o u r e a d e v e l o p e r w h o w a n t s t o a d d s u p p o r t . " )
endif ( )
endif ( )
2012-03-13 22:27:21 +00:00
TEST_SSE_SUPPORT ( COMPILER_SSE_FLAG COMPILER_SSE2_FLAG )
2012-03-13 14:28:58 +00:00
2012-03-14 00:30:20 +00:00
#-----------------------------------------------------------------------------
# Check for valid directories
# ... svn extern paths can be missing because of svn-git.
if ( WITH_INTERNATIONAL )
if ( NOT EXISTS "${CMAKE_SOURCE_DIR}/release/datafiles/locale" )
message ( WARNING "Translation path '${CMAKE_SOURCE_DIR}/release/datafiles/locale' is missing, "
" T h i s i s a n ' s v n e x t e r n a l ' , 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 "
" 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 )
if ( NOT EXISTS "${CMAKE_SOURCE_DIR}/release/scripts/addons" )
message ( WARNING "Addons path '${CMAKE_SOURCE_DIR}/release/scripts/addons' is missing, "
" T h i s i s a n ' s v n e x t e r n a l ' , 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 "
" 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
2010-06-06 13:32:58 +00:00
# disabled for now, not supported
2010-12-08 08:43:06 +00:00
# option(WITH_WEBPLUGIN "Enable Web Plugin (Unix only)" OFF)
2010-06-06 13:32:58 +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 \
# -D PYTHON_VERSION=3.2 \
2011-06-19 15:03:50 +00:00
# -D PYTHON_INCLUDE_DIR=/opt/py32/include/python3.2d \
# -D PYTHON_LIBRARY=/opt/py32/lib/libpython3.2d.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 \
2011-06-19 15:03:50 +00:00
# -D PYTHON_INCLUDE_DIR=/System/Library/Frameworks/Python.framework/Versions/3.2/include/python3.2 \
2011-03-08 22:11:15 +00:00
# -D PYTHON_LIBPATH=/System/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/config \
# -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
2010-12-08 08:43:06 +00:00
if ( UNIX AND NOT APPLE )
2011-09-30 15:51:58 +00:00
2011-11-11 14:52:24 +00:00
# set lib directory if it exists
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
if ( "${CMAKE_SIZEOF_VOID_P}" EQUAL "8" )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/linux64 )
else ( )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/linux )
endif ( )
if ( NOT EXISTS ${ LIBDIR } )
unset ( LIBDIR )
endif ( )
endif ( )
2011-06-19 07:46:24 +00:00
find_package ( JPEG REQUIRED )
find_package ( PNG REQUIRED )
find_package ( ZLIB REQUIRED )
find_package ( Freetype REQUIRED )
if ( WITH_PYTHON )
# No way to set py32. remove for now.
# find_package(PythonLibs)
# Use our own instead, since wothout py is such a rare case,
# require this package
find_package ( PythonLibsUnix REQUIRED )
endif ( )
if ( WITH_IMAGE_OPENEXR )
find_package ( OpenEXR ) # our own module
if ( NOT OPENEXR_FOUND )
set ( WITH_IMAGE_OPENEXR OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_OPENJPEG )
find_package ( OpenJPEG )
if ( NOT OPENJPEG_FOUND )
set ( WITH_IMAGE_OPENJPEG OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_TIFF )
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 )
find_package ( OpenAL )
if ( NOT OPENAL_FOUND )
set ( WITH_OPENAL OFF )
endif ( )
endif ( )
2011-06-19 07:46:24 +00:00
if ( WITH_SDL )
find_package ( SDL )
2011-09-30 15:51:58 +00:00
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
)
2011-06-19 07:46:24 +00:00
# unset(SDLMAIN_LIBRARY CACHE)
if ( NOT SDL_FOUND )
set ( WITH_SDL OFF )
endif ( )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_JACK )
2011-06-19 15:03:50 +00:00
find_package ( Jack )
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 )
2011-06-18 12:12:19 +00:00
find_package ( SndFile )
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 )
2011-11-11 14:52:24 +00:00
# use lib dir if available and nothing else specified
if ( LIBDIR AND NOT FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg CACHE PATH "FFMPEG Directory" )
2012-01-12 15:56:08 +00:00
# XXX, some distros might need 'theoraenc theoradec' too
set ( FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale dirac_encoder mp3lame ogg orc-0.4 schroedinger-1.0 theora vorbis vorbisenc vpx x264 xvidcore faad asound CACHE STRING "FFMPEG Libraries" )
2011-11-11 14:52:24 +00:00
else ( )
set ( FFMPEG /usr CACHE PATH "FFMPEG Directory" )
set ( FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries" )
endif ( )
2011-06-19 07:46:24 +00:00
mark_as_advanced ( FFMPEG )
2012-05-27 13:44:21 +00:00
set ( FFMPEG_INCLUDE_DIRS ${ FFMPEG } /include ${ FFMPEG } /include/ffmpeg )
2011-06-19 07:46:24 +00:00
mark_as_advanced ( FFMPEG_LIBRARIES )
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS" )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_INTERNATIONAL )
find_library ( INTL_LIBRARY
2010-06-07 14:28:37 +00:00
N A M E S i n t l
P A T H S
/ s w / l i b
)
2010-12-08 08:43:06 +00:00
find_library ( ICONV_LIBRARY
2010-06-07 14:28:37 +00:00
N A M E S i c o n v
P A T H S
/ s w / l i b
)
2011-09-30 15:51:58 +00:00
mark_as_advanced (
I C O N V _ L I B R A R Y
I N T L _ L I B R A R Y
)
2010-06-07 14:28:37 +00:00
2010-12-08 08:43:06 +00:00
if ( INTL_LIBRARY AND ICONV_LIBRARY )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_LIBRARIES ${ INTL_LIBRARY } ${ ICONV_LIBRARY } )
2010-12-08 08:43:06 +00:00
endif ( )
endif ( )
2009-09-06 01:51:23 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_FFTW3 )
2011-06-19 08:57:34 +00:00
find_package ( Fftw3 )
if ( NOT FFTW3_FOUND )
set ( WITH_FFTW3 OFF )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_OPENCOLLADA )
2011-08-24 16:04:35 +00:00
find_package ( OpenCOLLADA )
if ( OPENCOLLADA_FOUND )
2011-09-08 03:57:11 +00:00
find_package ( XML2 )
find_package ( 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 )
2011-06-19 14:55:51 +00:00
find_package ( JeMalloc )
if ( NOT JEMALLOC_FOUND )
set ( WITH_MEM_JEMALLOC OFF )
endif ( )
2011-05-12 11:16:32 +00:00
endif ( )
2011-08-02 05:52:27 +00:00
if ( WITH_INPUT_NDOF )
2011-08-02 06:32:53 +00:00
find_package ( Spacenav )
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 )
2011-11-11 20:57:00 +00:00
# use lib dir if available and nothing else specified
if ( LIBDIR AND NOT BOOST_ROOT )
set ( BOOST_ROOT ${ LIBDIR } /boost )
set ( Boost_USE_MULTITHREADED OFF )
else ( )
set ( Boost_USE_MULTITHREADED ON )
endif ( )
2011-11-08 21:40:08 +00:00
find_package ( Boost 1.34 COMPONENTS filesystem regex system thread )
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 )
2011-11-11 14:52:24 +00:00
# use lib dir if available and nothing else specified
if ( LIBDIR AND NOT OPENIMAGEIO_ROOT_DIR )
2011-11-11 19:20:52 +00:00
set ( OPENIMAGEIO_ROOT_DIR ${ LIBDIR } /oiio )
2011-11-11 14:52:24 +00:00
endif ( )
2011-11-08 17:00:40 +00:00
find_package ( OpenImageIO )
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
set ( OPENIMAGEIO_DEFINITIONS )
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 ( )
2010-10-04 11:42:39 +00:00
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
2011-06-28 02:49:49 +00:00
set ( PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++" )
2011-06-04 14:12:55 +00:00
2011-07-13 06:04:54 +00:00
if ( ( NOT WITH_HEADLESS ) AND ( NOT WITH_GHOST_SDL ) )
2011-06-04 14:12:55 +00:00
find_package ( X11 REQUIRED )
find_path ( X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${ X11_INC_SEARCH_PATH } )
mark_as_advanced ( X11_XF86keysym_INCLUDE_PATH )
2011-03-25 04:56:48 +00:00
2011-09-30 15:22:13 +00:00
set ( PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_X11_LIB}" )
2011-06-04 14:12:55 +00:00
if ( WITH_X11_XINPUT )
2011-09-30 15:22:13 +00:00
set ( PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_Xinput_LIB}" )
2011-06-04 14:12:55 +00:00
endif ( )
2012-01-02 12:25:14 +00:00
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 )
set ( PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_Xxf86vmode_LIB}" )
else ( )
set ( WITH_X11_XF86VMODE OFF )
endif ( )
endif ( )
2011-03-25 04:56:48 +00:00
endif ( )
2009-10-19 16:20:12 +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 )
# BSD's dont use libdl.so
2011-09-30 15:22:13 +00:00
set ( PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -ldl" )
2011-02-21 13:13:08 +00:00
# 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
2010-12-08 08:43:06 +00:00
set ( PLATFORM_LINKFLAGS "-pthread" )
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.
elseif ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
set ( PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing" )
2012-01-12 16:31:27 +00:00
# Solaris CC
elseif ( CMAKE_CXX_COMPILER_ID MATCHES "SunPro" )
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
2009-09-06 01:51:23 +00:00
# this file is included anyway when building under Windows with cl.exe
2010-12-08 08:43:06 +00:00
# include(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
2010-10-18 12:35:40 +00:00
2012-04-23 01:11:42 +00:00
if ( CMAKE_COMPILER_IS_GNUCC )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/mingw32 )
2012-04-23 20:09:59 +00:00
# Setup 64bit and 64bit windows systems
if ( WITH_MINGW64 )
message ( "Set 64 bit compiler for MinGW." )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/mingw64 )
endif ( )
2012-04-23 01:11:42 +00:00
else ( )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/windows )
2009-09-06 01:51:23 +00:00
2012-04-23 01:11:42 +00:00
# Setup 64bit and 64bit windows systems
if ( CMAKE_CL_64 )
message ( "64 bit compiler detected." )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/win64 )
endif ( )
2010-12-08 08:43:06 +00:00
endif ( )
2012-04-23 01:11:42 +00:00
2010-12-08 08:43:06 +00:00
add_definitions ( -DWIN32 )
if ( WITH_INTERNATIONAL )
set ( ICONV ${ LIBDIR } /iconv )
2011-06-18 14:12:54 +00:00
set ( ICONV_INCLUDE_DIRS ${ ICONV } /include )
set ( ICONV_LIBRARIES iconv )
2010-12-08 08:43:06 +00:00
set ( ICONV_LIBPATH ${ ICONV } /lib )
endif ( )
set ( JPEG "${LIBDIR}/jpeg" )
2011-01-25 14:43:13 +00:00
set ( JPEG_INCLUDE_DIR "${JPEG}/include" )
set ( JPEG_LIBPATH ${ JPEG } /lib ) # not cmake defined
2010-12-08 08:43:06 +00:00
2011-09-30 15:51:58 +00:00
set ( WINTAB_INC ${ LIBDIR } /wintab/include )
2010-12-08 08:43:06 +00:00
if ( WITH_OPENAL )
set ( OPENAL ${ LIBDIR } /openal )
set ( OPENAL_INCLUDE_DIR ${ OPENAL } /include )
2012-02-17 16:58:34 +00:00
set ( OPENAL_LIBRARY wrap_oal )
2010-12-08 08:43:06 +00:00
set ( OPENAL_LIBPATH ${ OPENAL } /lib )
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 libsndfile-1 )
set ( SNDFILE_LIBPATH ${ SNDFILE } /lib ) # TODO, deprecate
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_SDL )
set ( SDL ${ LIBDIR } /sdl )
set ( SDL_INCLUDE_DIR ${ SDL } /include )
set ( SDL_LIBRARY SDL )
set ( SDL_LIBPATH ${ SDL } /lib )
endif ( )
if ( WITH_CODEC_QUICKTIME )
set ( QUICKTIME ${ LIBDIR } /QTDevWin )
2011-06-18 14:12:54 +00:00
set ( QUICKTIME_INCLUDE_DIRS ${ QUICKTIME } /CIncludes )
set ( QUICKTIME_LIBRARIES qtmlClient )
2010-12-08 08:43:06 +00:00
set ( QUICKTIME_LIBPATH ${ QUICKTIME } /Libraries )
endif ( )
if ( WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD )
add_definitions ( -D__SSE__ -D__MMX__ )
endif ( )
if ( MSVC )
2012-04-27 02:29:37 +00:00
set ( PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid )
2011-06-28 02:49:49 +00:00
add_definitions ( /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB )
2012-04-27 02:29:37 +00:00
set ( CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE )
set ( CMAKE_C_FLAGS "/nologo /J /Gd" CACHE STRING "MSVC MT C++ flags " FORCE )
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2012-04-27 02:29:37 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /Zi" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
else ( )
2012-04-27 02:29:37 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /ZI" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
endif ( )
2012-04-27 02:29:37 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /MT" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /MT" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2012-04-27 02:29:37 +00:00
set ( CMAKE_C_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /Zi" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
else ( )
2012-04-27 02:29:37 +00:00
set ( CMAKE_C_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /ZI" CACHE STRING "MSVC MT flags " FORCE )
2010-12-08 08:43:06 +00:00
endif ( )
2012-04-27 02:29:37 +00:00
set ( CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /MT" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi" CACHE STRING "MSVC MT flags " FORCE )
# most msvc warnings are C & C++
2012-04-29 17:02:52 +00:00
set ( _WARNINGS "/W3 /wd4018 /wd4244 /wd4305 /wd4800 /wd4181 /wd4065 /wd4267 /we4013 /wd4200" )
2012-04-27 02:29:37 +00:00
set ( C_WARNINGS "${_WARNINGS}" )
set ( CXX_WARNINGS "${_WARNINGS}" )
unset ( _WARNINGS )
2010-12-08 08:43:06 +00:00
if ( WITH_INTERNATIONAL )
set ( GETTEXT ${ LIBDIR } /gettext )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_INCLUDE_DIRS ${ GETTEXT } /include )
2010-12-08 08:43:06 +00:00
set ( GETTEXT_LIBPATH ${ GETTEXT } /lib )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_LIBRARIES gnu_gettext )
2010-12-08 08:43:06 +00:00
endif ( )
2012-05-15 11:35:01 +00:00
2012-05-16 12:18:25 +00:00
if ( WITH_MOD_CLOTH_ELTOPO )
set ( LAPACK ${ LIBDIR } /lapack )
# set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
set_lib_path ( 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
)
endif ( )
2010-12-08 08:43:06 +00:00
2011-12-19 19:46:07 +00:00
set ( PNG_LIBRARIES libpng )
2011-01-25 14:43:13 +00:00
set ( JPEG_LIBRARIES libjpeg )
2011-12-18 23:32:24 +00:00
set ( PNG "${LIBDIR}/png" )
set ( PNG_INCLUDE_DIR "${PNG}/include" )
set ( PNG_LIBPATH ${ PNG } /lib ) # not cmake defined
2010-12-08 08:43:06 +00:00
2011-06-28 02:49:49 +00:00
set ( ZLIB_INCLUDE_DIRS ${ LIBDIR } /zlib/include )
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2011-06-28 02:49:49 +00:00
set ( ZLIB_LIBRARIES ${ LIBDIR } /zlib/lib/libz.lib )
2010-12-08 08:43:06 +00:00
else ( )
2011-06-28 02:49:49 +00:00
set ( ZLIB_LIBRARIES ${ LIBDIR } /zlib/lib/zlib.lib )
2010-12-08 08:43:06 +00:00
endif ( )
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 )
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 )
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 / i n c l u d e
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
2011-09-30 15:51:58 +00:00
$ { 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 / i n c l u d e
2011-06-19 13:06:21 +00:00
)
2011-12-30 22:10:48 +00:00
set_lib_path ( OPENCOLLADA_LIBPATH "opencollada/lib" )
2011-08-24 16:04:35 +00:00
2011-06-19 13:06:21 +00:00
set ( OPENCOLLADA_LIBRARIES
2011-12-30 22:10:48 +00:00
$ { O P E N C O L L A D A _ L I B P A T H } / 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 P A T H } / 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 P A T H } / 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 P A T H } / 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 P A T H } / 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 P A T H } / 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 P A T H } / x m l 2 . l i b
$ { O P E N C O L L A D A _ L I B P A T H } / b u f f e r . l i b
$ { O P E N C O L L A D A _ L I B P A T H } / f t o a . l i b
$ { O P E N C O L L A D A _ L I B P A T H } / U T F . l i b
2011-06-19 13:06:21 +00:00
)
2011-09-12 13:58:13 +00:00
set ( PCRE_LIBRARIES
2011-12-30 22:10:48 +00:00
$ { O P E N C O L L A D A _ L I B P A T H } / p c r e . l i b
2011-06-19 14:14:29 +00:00
)
2011-12-30 22:10:48 +00:00
unset ( OPENCOLLADA_LIBPATH )
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
)
set ( FFMPEG_LIBRARIES
2011-08-22 18:49:42 +00:00
$ { L I B D I R } / f f m p e g / l i b / a v c o d e c - 5 3 . 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 - 5 3 . 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 - 5 3 . l i b
$ { L I B D I R } / f f m p e g / l i b / a v u t i l - 5 1 . l i b
$ { 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
2011-06-28 02:49:49 +00:00
)
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_OPENEXR )
2011-12-30 22:10:48 +00:00
set_lib_path ( OPENEXR "openexr" )
set_lib_path ( OPENEXR_LIBPATH "openexr/lib" )
2011-06-15 13:54:57 +00:00
set ( OPENEXR_LIBRARIES
$ { O P E N E X R _ L I B P A T H } / I e x . 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 . l i b
$ { O P E N E X R _ L I B P A T H } / I m a t h . 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 . l i b
)
2011-12-30 22:10:48 +00:00
set_lib_path ( OPENEXR_INCUDE "openexr/include" )
2011-06-15 13:54:57 +00:00
set ( OPENEXR_INCLUDE_DIRS
$ { O P E N E X R _ I N C U D E }
2011-10-01 19:52:33 +00:00
$ { O P E N E X R _ I N C U D E } / I l m I m f
2011-06-15 13:54:57 +00:00
$ { O P E N E X R _ I N C U D E } / I e x
$ { O P E N E X R _ I N C U D E } / I m a t h
)
unset ( OPENEXR_INCUDE )
unset ( OPENEXR_LIBPATH )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_TIFF )
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 ( )
if ( WITH_JACK )
2011-06-28 02:49:49 +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
)
set ( JACK_LIBRARIES ${ LIBDIR } /jack/lib/libjack.lib )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_PYTHON )
2011-07-16 06:55:45 +00:00
# normally cached but not since we include them with blender
set ( PYTHON_VERSION 3.2 ) # CACHE STRING)
2011-12-30 22:10:48 +00:00
set_lib_path ( PYTHON_INCLUDE_DIR "python/include/python${PYTHON_VERSION}" )
set_lib_path ( PYTHON_LIBRARY "python/lib/python32.lib" ) #CACHE FILEPATH)
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 )
set ( BOOST ${ LIBDIR } /boost )
set ( BOOST_INCLUDE_DIR ${ BOOST } /include )
2011-12-03 01:12:57 +00:00
if ( MSVC10 )
2012-07-04 16:39:34 +00:00
set ( BOOST_LIBPATH ${ BOOST } /lib/vc_10 )
2012-07-04 16:10:22 +00:00
set ( BOOST_POSTFIX "vc100-mt-s-1_49.lib" )
set ( BOOST_DEBUG_POSTFIX "vc100-mt-sgd-1_49.lib" )
2011-12-03 01:12:57 +00:00
else ( )
2012-07-04 16:39:34 +00:00
set ( BOOST_LIBPATH ${ BOOST } /lib )
2012-06-30 18:24:28 +00:00
set ( BOOST_POSTFIX "vc90-mt-s-1_49.lib" )
set ( BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_49.lib" )
2011-12-03 01:12:57 +00:00
endif ( )
2011-11-07 15:44:09 +00:00
set ( BOOST_LIBRARIES
2011-12-03 01:12:57 +00:00
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 } )
2011-11-07 15:44:09 +00:00
set ( BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB" )
endif ( )
if ( WITH_OPENIMAGEIO )
set ( OPENIMAGEIO ${ LIBDIR } /openimageio )
set ( OPENIMAGEIO_INCLUDE_DIRS ${ OPENIMAGEIO } /include )
set ( OPENIMAGEIO_LIBRARIES OpenImageIO )
2011-12-30 22:10:48 +00:00
set_lib_path ( OPENIMAGEIO_LIBPATH "openimageio/lib" )
2011-11-07 15:44:09 +00:00
set ( OPENIMAGEIO_DEFINITIONS )
endif ( )
2011-07-01 03:40:12 +00:00
set ( PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib" )
2011-06-28 02:49:49 +00:00
2010-05-28 21:25:23 +00:00
# MSVC only, Mingw doesnt need
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
2011-06-28 02:49:49 +00:00
set ( PLATFORM_LINKFLAGS "/MACHINE:X64 /OPT:NOREF ${PLATFORM_LINKFLAGS}" )
2010-12-08 08:43:06 +00:00
else ( )
2011-06-28 02:49:49 +00:00
set ( PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}" )
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-18 12:35:40 +00:00
2011-07-01 03:40:12 +00:00
set ( PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib" )
2010-05-28 21:25:23 +00:00
2012-04-26 18:18:09 +00:00
# used in many places so include globally, like OpenGL
blender_include_dirs ( "${PTHREADS_INCLUDE_DIRS}" )
2012-04-23 01:11:42 +00:00
elseif ( CMAKE_COMPILER_IS_GNUCC )
2012-04-23 20:09:59 +00:00
# keep GCC specific stuff here
2012-04-23 01:11:42 +00:00
set ( PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi" )
set ( PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing" )
2012-04-23 20:09:59 +00:00
if ( WITH_MINGW64 )
2012-05-14 23:36:07 +00:00
#We need to take care though not to have these on debug builds because they may play funky with gdb
if ( CMAKE_BUILD_TYPE MATCHES "Release" )
set ( PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -mmmx -ftree-vectorize" )
endif ( )
2012-04-24 16:14:23 +00:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive" )
2012-04-24 12:57:58 +00:00
set ( PLATFORM_LINKLIBS "${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-05-29 11:36:33 +00:00
2010-12-08 08:43:06 +00:00
add_definitions ( -DFREE_WINDOWS )
2010-10-03 23:27:33 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_INTERNATIONAL )
2012-04-23 01:11:42 +00:00
set ( GETTEXT ${ LIBDIR } /gettext )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_INCLUDE_DIRS ${ GETTEXT } /include )
2010-12-08 08:43:06 +00:00
set ( GETTEXT_LIBPATH ${ GETTEXT } /lib )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_LIBRARIES intl )
2010-12-08 08:43:06 +00:00
endif ( )
2011-12-18 23:32:24 +00:00
2012-04-23 01:11:42 +00:00
set ( PNG "${LIBDIR}/png" )
2011-12-18 23:32:24 +00:00
set ( PNG_INCLUDE_DIR "${PNG}/include" )
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
2012-04-23 20:09:59 +00:00
#comes with own pthread library
if ( NOT WITH_MINGW64 )
set ( PTHREADS ${ LIBDIR } /pthreads )
set ( PTHREADS_INCLUDE_DIRS ${ PTHREADS } /include )
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
2012-04-23 01:11:42 +00:00
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
$ { 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 / i n c l u d e
2011-08-24 16:04:35 +00:00
)
2010-12-08 08:43:06 +00:00
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib ${ OPENCOLLADA } /lib )
2012-05-17 08:42:22 +00:00
if ( WITH_MINGW64 )
set ( OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa xml )
else ( )
set ( OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa )
endif ( )
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 ( )
set ( FFMPEG_LIBRARIES avcodec-53 avformat-53 avdevice-53 avutil-51 swscale-2 )
endif ( )
2010-12-08 08:43:06 +00:00
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
if ( WITH_IMAGE_OPENEXR )
2012-04-23 01:11:42 +00:00
set ( OPENEXR ${ LIBDIR } /openexr )
2011-06-15 13:54:57 +00:00
set ( OPENEXR_INCLUDE_DIRS ${ OPENEXR } /include/OpenEXR )
2011-07-10 20:04:56 +00:00
set ( OPENEXR_LIBRARIES Half IlmImf Imath IlmThread Iex )
2010-12-08 08:43:06 +00:00
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
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
set ( PYTHON_VERSION 3.2 ) # CACHE STRING)
set ( PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}" ) # CACHE PATH)
set ( PYTHON_LIBRARY "${LIBDIR}/python/lib/python32mw.lib" ) # CACHE FILEPATH)
# 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 ( )
set ( BOOST_POSTFIX "mgw46-mt-s-1_47" )
set ( BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_47" )
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 }
b o o s t _ r e g e x - $ { B O O S T _ P O S T F I X } 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 }
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 }
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 } 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-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 )
set ( OPENIMAGEIO_DEFINITIONS )
endif ( )
2012-01-05 07:52:03 +00:00
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
## for re-distrobution, so users dont need mingw installed
# 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 ( )
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" )
set ( WITH_LIBS10.5 ON CACHE BOOL "Use 10.5 libs" FORCE ) # valid also for 10.6/10.7
2011-03-07 21:28:36 +00:00
endif ( )
2012-04-22 11:23:17 +00:00
if ( ${ XCODE_VERSION } VERSION_LESS 4.3 )
2012-05-19 13:55:54 +00:00
set ( CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX ${ OSX_SYSTEM } .sdk CACHE PATH "" FORCE ) # use guaranteed existing sdk
2012-03-10 16:21:48 +00:00
else ( )
2012-03-10 16:39:51 +00:00
# note: i don't use xcode-select path on purpose, cause also /Applications/Xcode.app would be allowed
# absolute pathes are more foolproof here !
2012-05-19 13:55:54 +00:00
set ( OSX_SYSROOT_PREFIX /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform )
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 )
2012-03-10 16:21:48 +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 )
set ( JACK /usr )
2011-06-18 14:12:54 +00:00
set ( JACK_INCLUDE_DIRS ${ JACK } /include/jack )
set ( JACK_LIBRARIES jack )
2010-12-08 08:43:06 +00:00
set ( JACK_LIBPATH ${ JACK } /lib )
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 )
2012-01-16 20:10:38 +00:00
if ( NOT WITH_PYTHON_MODULE )
# we use precompiled libraries for py 3.2 and up by default
2011-07-16 06:55:45 +00:00
2012-01-16 20:10:38 +00:00
# normally cached but not since we include them with blender
set ( PYTHON_VERSION 3.2 )
set ( PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}" )
# set(PYTHON_BINARY "${LIBDIR}/python/bin/python${PYTHON_VERSION}") # not used yet
set ( PYTHON_LIBRARY python ${ PYTHON_VERSION } )
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
2011-07-16 06:55:45 +00:00
2012-01-16 20:10:38 +00:00
# normally cached but not since we include them with blender
set ( PYTHON_VERSION 3.2 )
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})
set ( PYTHON_LIBPATH "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/config-3.2m" )
#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_INTERNATIONAL )
set ( GETTEXT ${ LIBDIR } /gettext )
2011-10-01 19:52:33 +00:00
set ( GETTEXT_INCLUDE_DIRS "${GETTEXT}/include" )
set ( GETTEXT_LIBRARIES intl iconv )
2010-12-08 08:43:06 +00:00
set ( GETTEXT_LIBPATH ${ GETTEXT } /lib )
endif ( )
2011-05-09 14:41:44 +00:00
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_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 )
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 )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS" )
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 )
set ( PLATFORM_LINKLIBS stdc++ SystemStubs )
2011-09-25 12:31:21 +00:00
else ( )
2011-08-02 17:35:07 +00:00
set ( PLATFORM_LINKLIBS stdc++ )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_COCOA )
set ( PLATFORM_CFLAGS "-pipe -funsigned-char -DGHOST_COCOA" )
set ( PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio" )
if ( USE_QTKIT )
set ( PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -DUSE_QTKIT" )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit" )
if ( CMAKE_OSX_ARCHITECTURES MATCHES i386 )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime" )
2011-09-30 15:51:58 +00:00
#libSDL still needs 32bit carbon quicktime
2010-12-08 08:43:06 +00:00
endif ( )
elseif ( WITH_CODEC_QUICKTIME )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime" )
endif ( )
2011-08-03 14:18:02 +00:00
2011-09-30 15:51:58 +00:00
# XXX - SOME MAC DEV PLEASE TEST WITH THE SDK INSTALLED!
2011-08-03 14:18:02 +00:00
# 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 ( 3D_CONNEXION_CLIENT_LIBRARY
N A M E S 3 D c o n n e x i o n C l i e n t
)
if ( NOT 3D_CONNEXION_CLIENT_LIBRARY )
set ( WITH_INPUT_NDOF OFF )
endif ( )
2011-08-07 15:06:35 +00:00
if ( WITH_INPUT_NDOF )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -weak_framework 3DconnexionClient" )
endif ( )
2011-08-03 14:18:02 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
else ( )
set ( PLATFORM_CFLAGS "-pipe -funsigned-char" )
set ( PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime" )
2011-08-03 14:18:02 +00:00
set ( WITH_INPUT_NDOF OFF ) # unsupported
2010-12-08 08:43:06 +00:00
endif ( )
2012-01-16 20:10:38 +00:00
if ( WITH_PYTHON_MODULE )
set ( PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/python" ) # force cmake to link right framework
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 )
2012-05-19 13:55:54 +00:00
set ( OPENCOLLADA_LIBRARIES "OpenCOLLADASaxFrameworkLoader -lOpenCOLLADAFramework -lOpenCOLLADABaseUtils -lOpenCOLLADAStreamWriter -lMathMLSolver -lGeneratedSaxParser -lUTF -lxml2 -lbuffer -lftoa" )
2009-11-02 17:35:23 +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 )
set ( SDL_LIBRARY SDL )
set ( SDL_LIBPATH ${ SDL } /lib )
endif ( )
set ( PNG "${LIBDIR}/png" )
2011-01-25 14:43:13 +00:00
set ( PNG_INCLUDE_DIR "${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 ( )
2011-08-02 05:52:27 +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 )
set ( BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt )
set ( BOOST_LIBPATH ${ BOOST } /lib )
set ( BOOST_DEFINITIONS )
endif ( )
if ( WITH_OPENIMAGEIO )
set ( OPENIMAGEIO ${ LIBDIR } /openimageio )
set ( OPENIMAGEIO_INCLUDE_DIRS ${ OPENIMAGEIO } /include )
set ( OPENIMAGEIO_LIBRARIES OpenImageIO ${ PNG_LIBRARIES } ${ JPEG_LIBRARIES } ${ TIFF_LIBRARY } ${ OPENEXR_LIBRARIES } ${ ZLIB_LIBRARIES } )
set ( OPENIMAGEIO_LIBPATH ${ OPENIMAGEIO } /lib ${ JPEG_LIBPATH } ${ PNG_LIBPATH } ${ TIFF_LIBPATH } ${ OPENEXR_LIBPATH } ${ ZLIB_LIBPATH } )
set ( OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD" )
endif ( )
2010-12-08 08:43:06 +00:00
set ( EXETYPE MACOSX_BUNDLE )
set ( CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g" )
set ( CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g" )
if ( CMAKE_OSX_ARCHITECTURES MATCHES "i386" )
2011-10-02 16:43:39 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller" )
set ( CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller" )
2010-12-08 08:43:06 +00:00
elseif ( CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" )
2011-10-02 16:43:39 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller" )
set ( CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller" )
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 ( )
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-07-01 15:26:25 +00:00
if ( WITH_CYCLES )
if ( NOT WITH_OPENIMAGEIO )
message ( FATAL_ERROR "Cycles reqires WITH_OPENIMAGEIO, the library may not have been found. Configure OIIO or disable WITH_CYCLES" )
endif ( )
if ( NOT WITH_BOOST )
message ( FATAL_ERROR "Cycles reqires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_CYCLES" )
endif ( )
endif ( )
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
2011-09-27 01:32:27 +00:00
if ( MSVC )
# for some reason this fails on msvc
2011-09-19 08:02:17 +00:00
add_definitions ( -D__LITTLE_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
#-----------------------------------------------------------------------------
# Blender WebPlugin
2011-09-30 15:51:58 +00:00
if ( WITH_WEBPLUGIN )
2010-12-08 08:43:06 +00:00
set ( GECKO_DIR "${CMAKE_SOURCE_DIR}/../gecko-sdk/" CACHE PATH "Gecko SDK path" )
set ( WEBPLUGIN_SANDBOX_MODE "apparmor" CACHE STRING "WEB Plugin sandbox mode, can be apparmor, privsep, none" )
2008-10-07 17:13:35 +00:00
2010-12-08 08:43:06 +00:00
set ( WITH_PLAYER ON )
endif ( )
2008-10-07 17:13:35 +00:00
2006-11-17 02:27:12 +00:00
#-----------------------------------------------------------------------------
# Configure OpenGL.
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}" )
2011-09-30 15:51:58 +00:00
# unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake
# unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake
2009-10-19 16:20:12 +00:00
2010-11-19 11:33:12 +00:00
#-----------------------------------------------------------------------------
# Configure OpenMP.
2010-12-08 08:43:06 +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 )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
if ( APPLE AND ${ CMAKE_GENERATOR } MATCHES "Xcode" )
set ( CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES" )
endif ( )
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
2012-06-23 13:42:14 +00:00
if ( WITH_SYSTEM_GLEW )
2011-04-05 23:31:01 +00:00
find_package ( GLEW )
if ( NOT GLEW_FOUND )
2012-06-23 13:42:14 +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 ( )
2011-09-30 15:51:58 +00:00
mark_as_advanced (
G L E W _ L I B R A R Y
G L E W _ I N C L U D E _ P A T H
)
2012-06-23 13:42:14 +00:00
else ( )
# set(GLEW_LIBRARY "") # unused
set ( GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include" )
2011-04-05 23:31:01 +00:00
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 )
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
2011-03-28 02:11:51 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-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 )
2011-09-26 09:43:35 +00:00
# # this causes too many warnings, disable
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNDEFINED -Wundef)
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 )
2011-09-26 09:43:35 +00:00
# # this causes too many warnings, disable
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEFINED -Wundef)
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
2012-06-11 12:13:41 +00:00
elseif ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_ALL -Wall )
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 )
ADD_CHECK_C_COMPILER_FLAG ( CXX_WARNINGS C_WARN_ALL -Wall )
ADD_CHECK_C_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare )
ADD_CHECK_C_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas )
ADD_CHECK_C_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts )
ADD_CHECK_C_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.
ADD_CHECK_CXX_COMPILER_FLAG ( CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof )
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" )
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-17 06:38:56 +00:00
2011-06-27 16:33:59 +00:00
# MSVC2010 fails to links C++ libs right
if ( MSVC10 )
if ( WITH_IMAGE_OPENEXR )
message ( WARNING "MSVC 2010 does not support OpenEXR, disabling WITH_IMAGE_OPENEXR. To enable support use Use MSVC 2008" )
endif ( )
if ( WITH_OPENCOLLADA )
message ( WARNING "MSVC 2010 does not support OpenCollada, disabling WITH_OPENCOLLADA. To enable support use Use MSVC 2008" )
endif ( )
endif ( )
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
2012-05-01 23:22:58 +00:00
if ( WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY )
# set but invalid
if ( NOT ${ PYTHON_NUMPY_PATH } STREQUAL "" )
if ( NOT EXISTS "${PYTHON_NUMPY_PATH}/numpy" )
message ( WARNING "PYTHON_NUMPY_PATH is invalid, numpy not found in '${PYTHON_NUMPY_PATH}' "
" W I T H _ P Y T H O N _ I N S T A L L _ N U M P Y o p t i o n w i l l b e i g n o r e d w h e n i n s t a l l i n g p y t h o n " )
set ( WITH_PYTHON_INSTALL_NUMPY OFF )
endif ( )
# not set, so initialize
else ( )
string ( REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}" )
list ( GET _PY_VER_SPLIT 0 _PY_VER_MAJOR )
# re-cache
unset ( PYTHON_NUMPY_PATH CACHE )
find_path ( PYTHON_NUMPY_PATH
N A M E S
n u m p y
H I N T S
" $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { P Y T H O N _ V E R S I O N } / "
" $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { _ P Y _ V E R _ M A J O R } / "
P A T H _ S U F F I X E S
s i t e - p a c k a g e s
d i s t - p a c k a g e s
2012-05-05 14:33:36 +00:00
N O _ D E F A U L T _ P A T H
2012-05-01 23:22:58 +00:00
)
if ( NOT EXISTS "${PYTHON_NUMPY_PATH}" )
message ( WARNING "'numpy' path could not be found in:\n"
" ' $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { P Y T H O N _ V E R S I O N } / s i t e - p a c k a g e s / n u m p y ' , "
" ' $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { _ P Y _ V E R _ M A J O R } / s i t e - p a c k a g e s / n u m p y ' , "
" ' $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { P Y T H O N _ V E R S I O N } / d i s t - p a c k a g e s / n u m p y ' , "
" ' $ { P Y T H O N _ L I B P A T H } / p y t h o n $ { _ P Y _ V E R _ M A J O R } / d i s t - p a c k a g e s / n u m p y ' , "
" W I T H _ P Y T H O N _ I N S T A L L _ N U M P Y o p t i o n w i l l b e i g n o r e d w h e n i n s t a l l i n g p y t h o n " )
set ( WITH_PYTHON_INSTALL_NUMPY OFF )
else ( )
message ( STATUS "numpy found at '${PYTHON_NUMPY_PATH}'" )
endif ( )
unset ( _PY_VER_SPLIT )
unset ( _PY_VER_MAJOR )
2012-04-30 09:38:32 +00:00
endif ( )
endif ( )
2011-07-16 06:55:45 +00:00
endif ( )
2010-12-08 08:43:06 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS} ${C_WARNINGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS} ${CXX_WARNINGS}" )
2009-10-19 16:20:12 +00:00
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
2010-12-08 08:43:06 +00:00
add_subdirectory ( source )
add_subdirectory ( intern )
add_subdirectory ( extern )
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
#-----------------------------------------------------------------------------
# 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 ( )
info_cfg_text ( "Build Options:" )
info_cfg_option ( WITH_GAMEENGINE )
info_cfg_option ( WITH_PLAYER )
info_cfg_option ( WITH_BULLET )
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 )
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 )
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:" )
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 )
info_cfg_option ( WITH_JACK )
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 )
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_DECIMATE )
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
info_cfg_text ( "" )
message ( "${_config_msg}" )
endif ( )