2010-12-22 22:15:20 +00:00
# -*- mode: cmake; indent-tabs-mode: t; -*-
2010-05-28 21:25:23 +00:00
# $Id$
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
#-----------------------------------------------------------------------------
# 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-04-05 23:31:01 +00:00
# this starts out unset
set ( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules/" )
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-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
2010-12-08 11:42:11 +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
2010-06-06 13:32:58 +00:00
# Blender internal features
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 )
option ( WITH_PYTHON_MODULE "Enable building as a python module (experemental, only enable for development)" OFF )
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 )
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 )
2010-06-06 13:32:58 +00:00
# (unix defaults to OpenMP On)
2010-12-08 08:43:06 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON )
else ( )
option ( WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF )
endif ( )
2010-06-06 13:32:58 +00:00
2011-03-25 04:56:48 +00:00
if ( UNIX AND NOT APPLE )
option ( WITH_X11_XINPUT "Enable X11 Xinput (tablet support)" ON )
2011-04-05 23:31:01 +00:00
option ( WITH_BUILTIN_GLEW "Use GLEW OpenGL wrapper library bundled with blender" ON )
2011-04-06 01:51:43 +00:00
else ( )
# not an option for other OS's
set ( WITH_BUILTIN_GLEW ON )
2011-03-25 04:56:48 +00:00
endif ( )
2010-10-23 15:40:13 +00:00
# Modifiers
2010-12-08 08:43:06 +00:00
option ( WITH_MOD_FLUID "Enable Elbeem Modifier (Fluid Simulation)" ON )
option ( WITH_MOD_DECIMATE "Enable Decimate Modifier" ON )
option ( WITH_MOD_BOOLEAN "Enable Boolean Modifier" ON )
2011-04-10 06:06:26 +00:00
option ( WITH_MOD_CLOTH_ELTOPO "Enable Experemental cloth solver" OFF )
2011-04-10 05:43:34 +00:00
mark_as_advanced ( WITH_MOD_CLOTH_ELTOPO )
2010-10-23 15:40:13 +00:00
2010-06-06 13:32:58 +00:00
# Image format support
2010-12-08 08:43:06 +00:00
option ( WITH_IMAGE_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" ON )
option ( WITH_IMAGE_OPENJPEG "Enable OpenJpeg Support (http://www.openjpeg.org)" ON )
option ( WITH_IMAGE_TIFF "Enable LibTIFF Support" ON )
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 )
2010-06-06 13:32:58 +00:00
2010-11-30 18:52:39 +00:00
# Audio/Video format support
2010-12-08 08:43:06 +00:00
option ( WITH_CODEC_FFMPEG "Enable FFMPeg Support (http://ffmpeg.mplayerhq.hu)" OFF )
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 )
option ( WITH_SAMPLERATE "Enable samplerate conversion" ON )
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
# Misc
2010-12-08 08:43:06 +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 )
2010-06-06 13:32:58 +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 )
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 ( )
if ( NOT CMAKE_OSX_DEPLOYMENT_TARGET )
set ( CMAKE_OSX_DEPLOYMENT_TARGET 10.5 CACHE STRING
" C h o o s e t h e m i n i m u m O S X v e r s i o n r e q u i r e d : 1 0 . 4 o r 1 0 . 5 "
F O R C E )
endif ( )
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
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
2010-12-08 08:43:06 +00:00
if ( NOT WITH_SAMPLERATE AND ( WITH_OPENAL OR WITH_SDL OR WITH_JACK ) )
message ( FATAL_ERROR "WITH_OPENAL/WITH_SDL/WITH_JACK require WITH_SAMPLERATE" )
endif ( )
2010-11-21 16:32:11 +00:00
2010-12-08 08:43:06 +00:00
if ( NOT WITH_IMAGE_OPENJPEG AND WITH_IMAGE_REDCODE )
message ( FATAL_ERROR "WITH_IMAGE_REDCODE requires WITH_IMAGE_OPENJPEG" )
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 ( )
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 ( )
2011-03-18 12:12:53 +00:00
# remove old vars
unset ( WITH_INSTALL CACHE )
2010-07-04 18:40:59 +00:00
TEST_SSE_SUPPORT ( )
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-02-22 06:23:07 +00:00
# these are added to later on.
set ( C_WARNINGS "" )
set ( CXX_WARNINGS "" )
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:
# On Unix:
2011-03-08 22:11:15 +00:00
# cmake ../blender \
# -D PYTHON_VERSION=3.2 \
# -D PYTHON_INCLUDE_DIRS=/opt/py32/include/python3.2d \
# -D PYTHON_LIBPATH=/opt/py32/lib \
# -D PYTHON_LIBRARY=python3.2d
#
2006-12-06 08:52:43 +00:00
# On Macs:
2011-03-08 22:11:15 +00:00
# cmake ../blender \
# -D PYTHON_INCLUDE_DIRS=/System/Library/Frameworks/Python.framework/Versions/3.2/include/python3.2 \
# -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-03-18 12:12:53 +00:00
# needed for ubuntu 11.04
if ( EXISTS "/usr/lib/x86_64-linux-gnu" )
set ( CMAKE_LIBRARY_PATH "/usr/lib/x86_64-linux-gnu;${CMAKE_LIBRARY_PATH}" )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_OPENAL )
find_package ( OpenAL )
if ( NOT OPENAL_FOUND )
set ( WITH_OPENAL OFF )
endif ( )
endif ( )
if ( WITH_JACK )
set ( JACK /usr )
set ( JACK_INC ${ JACK } /include/jack )
set ( JACK_LIB jack )
set ( JACK_LIBPATH ${ JACK } /lib )
endif ( )
if ( WITH_CODEC_SNDFILE )
set ( SNDFILE /usr )
set ( SNDFILE_INC ${ SNDFILE } /include )
set ( SNDFILE_LIB sndfile )
set ( SNDFILE_LIBPATH ${ SNDFILE } /lib )
endif ( )
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
)
2010-12-08 09:02:08 +00:00
mark_as_advanced ( ICONV_LIBRARY )
mark_as_advanced ( INTL_LIBRARY )
2010-06-07 14:28:37 +00:00
2010-12-08 08:43:06 +00:00
if ( INTL_LIBRARY AND ICONV_LIBRARY )
set ( GETTEXT_LIB ${ INTL_LIBRARY } ${ ICONV_LIBRARY } )
endif ( )
endif ( )
2009-09-06 01:51:23 +00:00
2010-12-08 08:43:06 +00:00
find_package ( Freetype )
# unset(FREETYPE_INCLUDE_DIRS CACHE) # cant use
2009-09-06 01:51:23 +00:00
2010-05-29 21:31:57 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_PYTHON )
2011-03-10 00:25:35 +00:00
# No way to set py32. remove for now.
2010-12-08 08:43:06 +00:00
# find_package(PythonLibs)
2011-03-09 23:27:26 +00:00
2011-03-10 00:25:35 +00:00
# defines...
# PYTHON_VERSION
# PYTHON_INCLUDE_DIRS
# PYTHON_LIBRARY
# PYTHON_LIBPATH
# PYTHON_LINKFLAGS
2011-03-09 23:27:26 +00:00
2011-03-10 00:25:35 +00:00
include ( build_files/cmake/FindPythonLibsUnix.cmake )
2011-03-09 23:27:26 +00:00
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_SDL )
find_package ( SDL )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( SDLMAIN_LIBRARY )
mark_as_advanced ( SDL_INCLUDE_DIR )
mark_as_advanced ( SDL_LIBRARY )
2011-01-25 14:43:13 +00:00
mark_as_advanced ( SDL_LIBRARY_TEMP )
2010-12-08 08:43:06 +00:00
# unset(SDLMAIN_LIBRARY CACHE)
if ( NOT SDL_FOUND )
set ( WITH_SDL OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_OPENEXR )
set ( OPENEXR /usr CACHE FILEPATH "OPENEXR Directory" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( OPENEXR )
2010-12-08 08:43:06 +00:00
find_path ( OPENEXR_INC
2010-05-29 21:31:57 +00:00
I m f X d r . h
P A T H S
$ { O P E N E X R } / i n c l u d e / O p e n E X R
/ u s r / l o c a l / i n c l u d e / O p e n E X R
/ s w / i n c l u d e / O p e n E X R
/ o p t / l o c a l / i n c l u d e / O p e n E X R
/ o p t / c s w / i n c l u d e / O p e n E X R
/ o p t / i n c l u d e / O p e n E X R
)
2010-12-08 09:02:08 +00:00
mark_as_advanced ( OPENEXR_INC )
2010-12-08 08:43:06 +00:00
set ( OPENEXR_LIB Half IlmImf Iex Imath )
2010-07-03 15:03:13 +00:00
2010-12-08 08:43:06 +00:00
if ( NOT OPENEXR_INC )
set ( WITH_IMAGE_OPENEXR OFF )
endif ( )
endif ( )
if ( WITH_IMAGE_TIFF )
find_package ( TIFF )
if ( NOT TIFF_FOUND )
set ( WITH_IMAGE_TIFF OFF )
endif ( )
endif ( )
find_package ( JPEG REQUIRED )
find_package ( PNG REQUIRED )
find_package ( ZLIB REQUIRED )
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG /usr CACHE FILEPATH "FFMPEG Directory" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( FFMPEG )
2010-12-08 08:43:06 +00:00
set ( FFMPEG_INC ${ FFMPEG } /include )
set ( FFMPEG_LIB avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( FFMPEG_LIB )
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 ( )
if ( WITH_FFTW3 )
set ( FFTW3 /usr )
set ( FFTW3_INC ${ FFTW3 } /include )
set ( FFTW3_LIB fftw3 )
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
if ( WITH_SAMPLERATE )
set ( LIBSAMPLERATE /usr )
set ( LIBSAMPLERATE_INC ${ LIBSAMPLERATE } /include )
set ( LIBSAMPLERATE_LIB samplerate )
set ( LIBSAMPLERATE_LIBPATH ${ LIBSAMPLERATE } /lib )
endif ( )
if ( WITH_OPENCOLLADA )
set ( OPENCOLLADA /usr/local/opencollada CACHE FILEPATH "OpenCollada Directory" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( OPENCOLLADA )
2010-12-08 08:43:06 +00:00
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib )
set ( OPENCOLLADA_LIB OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre ftoa buffer xml2 )
set ( OPENCOLLADA_INC ${ OPENCOLLADA } )
2010-12-08 09:02:08 +00:00
2010-12-08 08:43:06 +00:00
set ( PCRE /usr CACHE FILEPATH "PCRE Directory" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( PCRE )
2010-12-08 08:43:06 +00:00
set ( PCRE_LIBPATH ${ PCRE } /lib )
set ( PCRE_LIB pcre )
2010-12-08 09:02:08 +00:00
2010-12-08 08:43:06 +00:00
set ( EXPAT /usr CACHE FILEPATH "Expat Directory" )
2010-12-08 09:02:08 +00:00
mark_as_advanced ( EXPAT )
2010-12-08 08:43:06 +00:00
set ( EXPAT_LIBPATH ${ EXPAT } /lib )
set ( EXPAT_LIB expat )
endif ( )
2011-05-12 11:16:32 +00:00
if ( WITH_MEM_JEMALLOC )
set ( JEMALLOC /usr )
2011-05-16 10:34:40 +00:00
set ( JEMALLOC_LIBRARY jemalloc CACHE STRING "JeMalloc library" )
2011-05-12 11:16:32 +00:00
set ( JEMALLOC_LIBPATH ${ JEMALLOC } /lib CACHE FILEPATH "JeMalloc library path" )
# no use for this yet.
# set(JEMALLOC_INCLUDE_DIR ${JEMALLOC}/include CACHE FILEPATH "JeMalloc include path")
unset ( JEMALLOC )
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-04 14:12:55 +00:00
set ( LLIBS "-lutil -lc -lm -lpthread -lstdc++" )
if ( NOT WITH_HEADLESS )
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-06-04 14:12:55 +00:00
list ( APPEND LLIBS ${ X11_X11_LIB } )
if ( WITH_X11_XINPUT )
list ( APPEND LLIBS ${ X11_Xinput_LIB } )
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
list ( APPEND LLIBS -ldl )
# binreloc is linux only
set ( BINRELOC ${ CMAKE_SOURCE_DIR } /extern/binreloc )
set ( BINRELOC_INC ${ BINRELOC } /include )
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
2010-12-08 08:43:06 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -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" )
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
2010-12-08 08:43:06 +00:00
find_program ( XIAR xiar )
if ( XIAR )
set ( CMAKE_AR "${XIAR}" )
endif ( )
mark_as_advanced ( XIAR )
2010-11-15 05:32:49 +00:00
2010-12-08 08:43:06 +00:00
find_program ( XILD xild )
if ( XILD )
set ( CMAKE_LINKER "${XILD}" )
endif ( )
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
2010-12-08 08:43:06 +00:00
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/windows )
2009-09-06 01:51:23 +00:00
# Setup 64bit and 64bit windows systems
2010-12-08 08:43:06 +00:00
if ( CMAKE_CL_64 )
message ( "64 bit compiler detected." )
set ( LIBDIR ${ CMAKE_SOURCE_DIR } /../lib/win64 )
endif ( )
2010-05-29 21:31:57 +00:00
2010-12-08 08:43:06 +00:00
add_definitions ( -DWIN32 )
if ( WITH_INTERNATIONAL )
set ( ICONV ${ LIBDIR } /iconv )
set ( ICONV_INC ${ ICONV } /include )
set ( ICONV_LIB iconv )
set ( ICONV_LIBPATH ${ ICONV } /lib )
endif ( )
if ( WITH_SAMPLERATE )
set ( LIBSAMPLERATE ${ LIBDIR } /samplerate )
set ( LIBSAMPLERATE_INC ${ LIBSAMPLERATE } /include )
set ( LIBSAMPLERATE_LIB libsamplerate )
set ( LIBSAMPLERATE_LIBPATH ${ LIBSAMPLERATE } /lib )
endif ( )
set ( PNG "${LIBDIR}/png" )
2011-01-25 14:43:13 +00:00
set ( PNG_INCLUDE_DIR "${PNG}/include" )
set ( PNG_LIBPATH ${ PNG } /lib ) # not cmake defined
2010-12-08 08:43:06 +00:00
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
set ( WINTAB_INC ${ LIBDIR } /wintab/include )
if ( WITH_OPENAL )
set ( OPENAL ${ LIBDIR } /openal )
set ( OPENAL_INCLUDE_DIR ${ OPENAL } /include )
set ( OPENAL_LIBRARY wrap_oal )
set ( OPENAL_LIBPATH ${ OPENAL } /lib )
endif ( )
if ( WITH_CODEC_SNDFILE )
set ( SNDFILE ${ LIBDIR } /sndfile )
set ( SNDFILE_INC ${ SNDFILE } /include )
set ( SNDFILE_LIB libsndfile-1 )
set ( SNDFILE_LIBPATH ${ SNDFILE } /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 ( )
if ( WITH_CODEC_QUICKTIME )
set ( QUICKTIME ${ LIBDIR } /QTDevWin )
set ( QUICKTIME_INC ${ QUICKTIME } /CIncludes )
set ( QUICKTIME_LIB qtmlClient )
set ( QUICKTIME_LIBPATH ${ QUICKTIME } /Libraries )
endif ( )
if ( WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD )
add_definitions ( -D__SSE__ -D__MMX__ )
endif ( )
if ( MSVC )
if ( CMAKE_CL_64 )
2011-04-10 14:44:57 +00:00
set ( LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid )
2010-12-08 08:43:06 +00:00
else ( )
set ( LLIBS kernel32 user32 gdi32 comdlg32 advapi32 shell32 ole32 oleaut32 uuid ws2_32 vfw32 winmm )
endif ( )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
set ( CMAKE_CXX_FLAGS "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /we4013 /wd4018 /wd4800 /wd4244 /wd4305 /wd4065 /wd4267" CACHE STRING "MSVC MT C++ flags " FORCE )
set ( CMAKE_C_FLAGS "/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /we4013 /wd4018 /wd4800 /wd4244 /wd4305 /wd4065 /wd4267" CACHE STRING "MSVC MT C++ flags " FORCE )
if ( CMAKE_CL_64 )
set ( CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE )
else ( )
set ( CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /ZI /J" CACHE STRING "MSVC MT flags " FORCE )
endif ( )
set ( CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /DNDEBUG /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /DNDEBUG /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /DNDEBUG /EHsc /MT /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE )
if ( CMAKE_CL_64 )
set ( CMAKE_C_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE )
else ( )
set ( CMAKE_C_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /ZI /J" CACHE STRING "MSVC MT flags " FORCE )
endif ( )
set ( CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /DNDEBUG /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /DNDEBUG /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE )
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /DNDEBUG /EHsc /MT /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE )
if ( WITH_INTERNATIONAL )
set ( GETTEXT ${ LIBDIR } /gettext )
set ( GETTEXT_INC ${ GETTEXT } /include )
set ( GETTEXT_LIBPATH ${ GETTEXT } /lib )
if ( CMAKE_CL_64 )
set ( GETTEXT_LIB gettext )
else ( )
set ( GETTEXT_LIB gnu_gettext )
endif ( )
endif ( )
if ( CMAKE_CL_64 )
set ( PNG_LIBRARIES libpng )
else ( )
set ( PNG_LIBRARIES libpng_st )
endif ( )
2011-01-25 14:43:13 +00:00
set ( JPEG_LIBRARIES libjpeg )
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 )
if ( CMAKE_CL_64 )
set ( ZLIB_LIBRARIES libz )
else ( )
set ( ZLIB_LIBRARIES zlib )
endif ( )
set ( PTHREADS ${ LIBDIR } /pthreads )
set ( PTHREADS_INC ${ PTHREADS } /include )
set ( PTHREADS_LIBPATH ${ PTHREADS } /lib )
set ( PTHREADS_LIB pthreadVC2 )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
set ( FREETYPE ${ LIBDIR } /freetype )
set ( FREETYPE_INCLUDE_DIRS ${ FREETYPE } /include ${ FREETYPE } /include/freetype2 )
set ( FREETYPE_LIBPATH ${ FREETYPE } /lib )
set ( FREETYPE_LIBRARY freetype2ST )
if ( WITH_FFTW3 )
set ( FFTW3 ${ LIBDIR } /fftw3 )
set ( FFTW3_LIB libfftw )
set ( FFTW3_INC ${ FFTW3 } /include )
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
if ( WITH_OPENCOLLADA )
set ( OPENCOLLADA ${ LIBDIR } /opencollada )
set ( OPENCOLLADA_INC ${ OPENCOLLADA } /include )
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib )
2011-01-27 19:39:06 +00:00
set ( OPENCOLLADA_LIB OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils OpenCOLLADAStreamWriter MathMLSolver GeneratedSaxParser xml2 buffer ftoa UTF )
2010-12-08 08:43:06 +00:00
set ( PCRE_LIB pcre )
endif ( )
2011-05-16 13:34:42 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg )
set ( FFMPEG_INC ${ FFMPEG } /include ${ FFMPEG } /include/msvc )
set ( FFMPEG_LIB avcodec-52 avformat-52 avdevice-52 avutil-50 swscale-0 )
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
if ( WITH_IMAGE_OPENEXR )
if ( MSVC80 )
2011-02-07 01:23:18 +00:00
set ( MSVC_LIB _vs2005 )
set ( MSVC_INC )
elseif ( MSVC90 )
set ( MSVC_LIB _vs2008 )
set ( MSVC_INC )
elseif ( MSVC10 )
set ( MSVC_LIB _vs2010 )
set ( MSVC_INC _vs2010 )
2010-12-08 08:43:06 +00:00
else ( )
2011-02-07 01:23:18 +00:00
set ( MSVC_LIB msvc )
set ( MSVC_INC )
2010-12-08 08:43:06 +00:00
endif ( )
2011-02-07 01:23:18 +00:00
set ( OPENEXR ${ LIBDIR } /openexr )
set ( OPENEXR_LIB Iex Half IlmImf Imath IlmThread )
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib ${ MSVC_LIB } )
set ( OPENEXR_INCUDE ${ OPENEXR } /include ${ MSVC_INC } )
set ( OPENEXR_INC ${ OPENEXR_INCUDE } / ${ OPENEXR_INCUDE } /IlmImf ${ OPENEXR_INCUDE } /Iex ${ OPENEXR_INCUDE } /Imath )
2010-12-08 08:43:06 +00:00
endif ( )
if ( WITH_IMAGE_TIFF )
set ( TIFF ${ LIBDIR } /tiff )
set ( TIFF_LIBRARY libtiff )
set ( TIFF_INCLUDE_DIR ${ TIFF } /include )
set ( TIFF_LIBPATH ${ TIFF } /lib )
endif ( )
if ( WITH_JACK )
set ( JACK ${ LIBDIR } /jack )
set ( JACK_INC ${ JACK } /include/jack ${ JACK } /include )
set ( JACK_LIB libjack )
set ( JACK_LIBPATH ${ JACK } /lib )
endif ( )
if ( WITH_PYTHON )
set ( PYTHON ${ LIBDIR } /python )
2011-03-04 14:15:46 +00:00
set ( PYTHON_VERSION 3.2 )
2011-01-25 14:43:13 +00:00
set ( PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}" )
2010-12-08 08:43:06 +00:00
# set(PYTHON_BINARY python) # not used yet
2011-03-04 14:15:46 +00:00
set ( PYTHON_LIBRARY python32 )
2010-12-08 08:43:06 +00:00
set ( PYTHON_LIBPATH ${ PYTHON } /lib )
endif ( )
2010-09-16 07:26:06 +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-03-12 04:31:28 +00:00
set ( PLATFORM_LINKFLAGS "/MACHINE:X64 /NODEFAULTLIB:libc.lib /STACK:2097152 " )
2010-12-08 08:43:06 +00:00
else ( )
2011-03-12 04:31:28 +00:00
set ( PLATFORM_LINKFLAGS "/NODEFAULTLIB:libc.lib /STACK:2097152 " )
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-18 12:35:40 +00:00
2010-12-08 08:43:06 +00:00
set ( CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt.lib;libc.lib " )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
else ( )
2010-10-31 13:17:39 +00:00
# keep GCC spesific stuff here
2010-12-08 08:43:06 +00:00
if ( CMAKE_COMPILER_IS_GNUCC )
set ( LLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid" )
set ( PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing" )
2010-10-31 13:17:39 +00:00
2010-12-08 08:43:06 +00:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" )
endif ( )
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
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG" )
set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG" )
2010-10-03 23:27:33 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_INTERNATIONAL )
set ( GETTEXT ${ LIBDIR } /gcc/gettext )
set ( GETTEXT_INC ${ GETTEXT } /include )
set ( GETTEXT_LIBPATH ${ GETTEXT } /lib )
set ( GETTEXT_LIB intl )
endif ( )
2010-05-28 21:25:23 +00:00
2011-01-25 14:43:13 +00:00
set ( JPEG_LIBRARIES libjpeg )
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
2010-12-08 08:43:06 +00:00
set ( PTHREADS ${ LIBDIR } /pthreads )
set ( PTHREADS_INC ${ PTHREADS } /include )
set ( PTHREADS_LIBPATH ${ PTHREADS } /lib )
set ( PTHREADS_LIB pthreadGC2 )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
set ( FREETYPE ${ LIBDIR } /gcc/freetype )
set ( FREETYPE_INCLUDE_DIRS ${ FREETYPE } /include ${ FREETYPE } /include/freetype2 )
set ( FREETYPE_LIBPATH ${ FREETYPE } /lib )
set ( FREETYPE_LIBRARY freetype )
if ( WITH_FFTW3 )
set ( FFTW3 ${ LIBDIR } /gcc/fftw3 )
set ( FFTW3_LIB fftw3 )
set ( FFTW3_INC ${ FFTW3 } /include )
set ( FFTW3_LIBPATH ${ FFTW3 } /lib )
endif ( )
if ( WITH_OPENCOLLADA )
set ( OPENCOLLADA ${ LIBDIR } /gcc/opencollada )
set ( OPENCOLLADA_INC ${ OPENCOLLADA } /include )
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib ${ OPENCOLLADA } /lib )
set ( OPENCOLLADA_LIB OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa )
set ( PCRE_LIB pcre )
endif ( )
2010-05-28 21:25:23 +00:00
2010-12-08 08:43:06 +00:00
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg )
set ( FFMPEG_INC ${ FFMPEG } /include ${ FFMPEG } /include )
set ( FFMPEG_LIB avcodec-52 avformat-52 avdevice-52 avutil-50 swscale-0 )
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
endif ( )
if ( WITH_IMAGE_OPENEXR )
set ( OPENEXR ${ LIBDIR } /gcc/openexr )
set ( OPENEXR_INC ${ OPENEXR } /include ${ OPENEXR } /include/OpenEXR )
set ( OPENEXR_LIB Half IlmImf Imath IlmThread )
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
2010-09-15 16:13:32 +00:00
# TODO, gives linking errors, force off
2010-12-08 08:43:06 +00:00
set ( WITH_IMAGE_OPENEXR OFF )
endif ( )
if ( WITH_IMAGE_TIFF )
set ( TIFF ${ LIBDIR } /gcc/tiff )
set ( TIFF_LIBRARY tiff )
set ( TIFF_INCLUDE_DIR ${ TIFF } /include )
set ( TIFF_LIBPATH ${ TIFF } /lib )
endif ( )
if ( WITH_JACK )
set ( JACK ${ LIBDIR } /jack )
set ( JACK_INC ${ JACK } /include/jack ${ JACK } /include )
set ( JACK_LIB jack )
set ( JACK_LIBPATH ${ JACK } /lib )
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 )
set ( PYTHON ${ LIBDIR } /python )
2011-03-07 03:33:33 +00:00
set ( PYTHON_VERSION 3.2 )
2011-01-25 14:43:13 +00:00
set ( PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}" )
2010-12-08 08:43:06 +00:00
# set(PYTHON_BINARY python) # not used yet
2011-03-07 03:33:33 +00:00
set ( PYTHON_LIBRARY python32mw )
2010-12-08 08:43:06 +00:00
set ( PYTHON_LIBPATH ${ PYTHON } /lib )
endif ( )
2010-09-16 07:26:06 +00:00
2011-03-12 00:50:34 +00:00
set ( PLATFORM_LINKFLAGS "--stack,2097152" )
2010-12-08 08:43:06 +00:00
endif ( )
2009-11-11 00:02:49 +00:00
2010-11-21 09:10:50 +00:00
# used in many places so include globally, like OpenGL
2010-12-31 04:29:11 +00:00
blender_include_dirs ( "${PTHREADS_INC}" )
2010-12-08 08:43:06 +00:00
elseif ( APPLE )
2011-03-07 21:28:36 +00:00
if ( ${ CMAKE_OSX_DEPLOYMENT_TARGET } STREQUAL "10.5" )
set ( WITH_LIBS10.5 ON CACHE BOOL "Use 10.5 libs" FORCE )
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 ( )
2009-10-19 14:38:19 +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 )
set ( JACK_INC ${ JACK } /include/jack )
set ( JACK_LIB jack )
set ( JACK_LIBPATH ${ JACK } /lib )
endif ( )
if ( WITH_CODEC_SNDFILE )
set ( SNDFILE ${ LIBDIR } /sndfile )
set ( SNDFILE_INC ${ SNDFILE } /include )
set ( SNDFILE_LIB sndfile FLAC ogg vorbis vorbisenc )
set ( SNDFILE_LIBPATH ${ SNDFILE } /lib ${ FFMPEG } /lib )
endif ( )
2011-03-04 14:15:46 +00:00
set ( PYTHON_VERSION 3.2 )
2010-12-08 08:43:06 +00:00
2011-03-04 14:15:46 +00:00
if ( PYTHON_VERSION MATCHES 3.2 )
2011-03-07 11:53:40 +00:00
# we use precompiled libraries for py 3.2 and up by default
2009-09-06 01:51:23 +00:00
2010-12-08 08:43:06 +00:00
set ( PYTHON ${ LIBDIR } /python )
2011-01-25 14:43:13 +00:00
set ( PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}" )
2010-12-08 08:43:06 +00:00
# set(PYTHON_BINARY "${PYTHON}/bin/python${PYTHON_VERSION}") # not used yet
2011-01-25 14:43:13 +00:00
set ( PYTHON_LIBRARY python ${ PYTHON_VERSION } )
2010-12-08 08:43:06 +00:00
set ( PYTHON_LIBPATH "${PYTHON}/lib/python${PYTHON_VERSION}" )
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
else ( )
2009-09-06 01:51:23 +00:00
# otherwise, use custom system framework
2010-12-08 08:43:06 +00:00
set ( PYTHON /System/Library/Frameworks/Python.framework/Versions/ )
2011-03-07 11:53:40 +00:00
set ( PYTHON_VERSION 3.2 )
2011-01-25 14:43:13 +00:00
set ( PYTHON_INCLUDE_DIRS "${PYTHON}${PYTHON_VERSION}/include/python${PYTHON_VERSION}" )
2010-12-08 08:43:06 +00:00
# set(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION}) # not used yet
2011-01-25 14:43:13 +00:00
set ( PYTHON_LIBRARY "" )
2010-12-08 08:43:06 +00:00
set ( PYTHON_LIBPATH ${ PYTHON } ${ PYTHON_VERSION } /lib/python ${ PYTHON_VERSION } /config )
set ( PYTHON_LINKFLAGS "-u _PyMac_Error -framework System -framework Python" )
endif ( )
if ( WITH_INTERNATIONAL )
set ( GETTEXT ${ LIBDIR } /gettext )
set ( GETTEXT_INC "${GETTEXT}/include" )
set ( GETTEXT_LIB intl iconv )
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 )
set ( FFTW3_INC ${ FFTW3 } /include )
set ( FFTW3_LIB fftw3 )
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 )
set ( OPENEXR_INC ${ OPENEXR } /include/OpenEXR ${ OPENEXR } /include )
set ( OPENEXR_LIB Iex Half IlmImf Imath IlmThread )
set ( OPENEXR_LIBPATH ${ OPENEXR } /lib )
endif ( )
if ( WITH_CODEC_FFMPEG )
set ( FFMPEG ${ LIBDIR } /ffmpeg )
set ( FFMPEG_INC ${ FFMPEG } /include )
set ( FFMPEG_LIB avcodec avdevice avformat avutil mp3lame swscale x264 xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile ogg )
set ( FFMPEG_LIBPATH ${ FFMPEG } /lib )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS" )
endif ( )
if ( WITH_SAMPLERATE )
set ( LIBSAMPLERATE ${ LIBDIR } /samplerate )
set ( LIBSAMPLERATE_INC ${ LIBSAMPLERATE } /include )
set ( LIBSAMPLERATE_LIB samplerate )
set ( LIBSAMPLERATE_LIBPATH ${ LIBSAMPLERATE } /lib )
endif ( )
set ( LLIBS stdc++ SystemStubs )
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" )
2009-11-28 18:19:22 +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 ( )
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" )
endif ( )
if ( WITH_OPENCOLLADA )
set ( OPENCOLLADA ${ LIBDIR } /opencollada )
set ( OPENCOLLADA_INC ${ OPENCOLLADA } /include )
set ( OPENCOLLADA_LIBPATH ${ OPENCOLLADA } /lib )
set ( OPENCOLLADA_LIB "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)
set ( PCRE_LIB 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 ( )
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" )
set ( CMAKE_CXX_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller" )
set ( CMAKE_C_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller" )
elseif ( CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" )
set ( CMAKE_CXX_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller" )
set ( CMAKE_C_FLAGS_RELEASE "-O3 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller" )
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 )
if ( NOT IS_DIRECTORY "${LIBDIR}" )
message ( FATAL_ERROR "Apple and Windows require pre-compiled libs at: '${LIBDIR}'" )
endif ( )
endif ( )
2010-12-08 08:43:06 +00:00
if ( WITH_RAYOPTIMIZATION )
if ( CMAKE_COMPILER_IS_GNUCC )
if ( SUPPORT_SSE_BUILD )
set ( PLATFORM_CFLAGS " -msse ${PLATFORM_CFLAGS}" )
add_definitions ( -D__SSE__ -D__MMX__ )
endif ( )
if ( SUPPORT_SSE2_BUILD )
set ( PLATFORM_CFLAGS " -msse2 ${PLATFORM_CFLAGS}" )
add_definitions ( -D__SSE2__ )
if ( NOT SUPPORT_SSE_BUILD ) # dont double up
add_definitions ( -D__MMX__ )
endif ( )
endif ( )
endif ( )
endif ( )
if ( WITH_IMAGE_OPENJPEG )
2011-02-15 19:04:51 +00:00
if ( UNIX AND NOT APPLE )
set ( OPENJPEG /usr )
set ( OPENJPEG_INC ${ OPENJPEG } /include )
set ( OPENJPEG_LIB openjpeg )
set ( OPENJPEG_LIBPATH ${ OPENJPEG } /lib )
else ( )
set ( OPENJPEG ${ CMAKE_SOURCE_DIR } /extern/libopenjpeg )
set ( OPENJPEG_INC ${ OPENJPEG } )
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
2010-12-08 08:43:06 +00:00
if ( WITH_WEBPLUGIN )
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-01-02 10:21:03 +00:00
blender_include_dirs ( "${OPENGL_INCLUDE_DIR}" )
2010-12-08 08:43:06 +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 )
find_package ( OpenMP )
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
mark_as_advanced ( OpenMP_C_FLAGS )
mark_as_advanced ( OpenMP_CXX_FLAGS )
2010-12-08 08:43:06 +00:00
endif ( )
2010-11-19 11:33:12 +00:00
2011-04-05 23:31:01 +00:00
#-----------------------------------------------------------------------------
# Configure GLEW
if ( WITH_BUILTIN_GLEW )
# set(GLEW_LIBRARY "") # unused
set ( GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include" )
else ( )
find_package ( GLEW )
if ( NOT GLEW_FOUND )
message ( FATAL_ERROR "GLEW is required to build blender, install it or use WITH_BUILTIN_GLEW" )
endif ( )
mark_as_advanced ( GLEW_LIBRARY )
mark_as_advanced ( GLEW_INCLUDE_PATH )
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 )
endif ( )
#-----------------------------------------------------------------------------
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 ( ( NOT WIN32 ) AND ( NOT MSVC ) )
2010-10-18 12:35:40 +00:00
# used for internal debug checks
2010-12-08 08:43:06 +00:00
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG" )
set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG" )
2010-10-18 12:35:40 +00:00
# assert() checks for this.
2010-12-08 08:43:06 +00:00
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG" )
set ( CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -DNDEBUG" )
set ( CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG" )
2010-10-18 12:35:40 +00:00
2010-12-08 08:43:06 +00:00
set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNDEBUG" )
set ( CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -DNDEBUG" )
set ( CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DNDEBUG" )
endif ( )
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-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)
2011-03-28 02:11:51 +00:00
ADD_CHECK_C_COMPILER_FLAG ( C_WARNINGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable )
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
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
2010-12-08 08:43:06 +00:00
endif ( )
2010-10-17 06:38:56 +00:00
2011-03-20 01:49:15 +00:00
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
if ( WITH_IK_ITASC OR WITH_MOD_FLUID )
message ( WARNING "Using Clang as CXX compiler: disabling WITH_IK_ITASC and WITH_MOD_FLUID, these features will be missing." )
set ( WITH_IK_ITASC OFF )
set ( WITH_MOD_FLUID OFF )
endif ( )
endif ( )
2010-12-16 09:55:35 +00:00
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 )
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
2010-12-08 08:43:06 +00:00
add_subdirectory ( source/creator )
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 )