118
118
option(WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON)
120
120
option(WITH_PYTHON "Enable Embedded Python API (only disable for development)" ON)
121
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default (recommend to leave off)" OFF)
121
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON)
122
122
mark_as_advanced(WITH_PYTHON) # dont want people disabling this unless they really know what they are doing.
123
123
mark_as_advanced(WITH_PYTHON_SECURITY) # some distributions see this as a security issue, rather than have them patch it, make a build option.
124
set(WITH_PYTHON_SECURITY ON CACHE BOOL "ON" FORCE) # temp force on.
125
126
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)
126
127
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)
129
option(WITH_PYTHON_FRAMEWORK "Enable building using the Python available in the framework (OSX only)" OFF)
127
132
option(WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ON)
128
133
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
129
134
option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
233
240
# Camera/motion tracking
234
241
option(WITH_LIBMV "Enable libmv structure from motion library" ON)
244
option(WITH_FREESTYLE "Enable Freestyle (advanced edges rendering)" ON)
237
247
option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON)
238
248
option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON)
239
249
if(UNIX AND NOT APPLE)
240
250
option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON)
241
251
option(WITH_STATIC_LIBS "Try to link with static libraries, as much as possible, to make blender more portable across distributions" OFF)
253
option(WITH_BOOST_ICU "Boost uses ICU library (required for linking with static Boost built with libicu)." OFF)
254
mark_as_advanced(WITH_BOOST_ICU)
243
257
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
244
258
option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON)
250
264
option(WITH_CYCLES_TEST "Build cycles test application" OFF)
251
265
option(WITH_CYCLES_OSL "Build Cycles with OSL support" OFF)
252
266
option(WITH_CYCLES_CUDA_BINARIES "Build cycles CUDA binaries" OFF)
253
set(CYCLES_CUDA_BINARIES_ARCH sm_13 sm_20 sm_21 sm_30 CACHE STRING "CUDA architectures to build binaries for")
267
set(CYCLES_CUDA_BINARIES_ARCH sm_20 sm_21 sm_30 sm_35 CACHE STRING "CUDA architectures to build binaries for")
254
268
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
255
269
unset(PLATFORM_DEFAULT)
258
272
option(WITH_LLVM "Use LLVM" OFF)
273
option(LLVM_STATIC "Link with LLVM static libraries" ON)
274
mark_as_advanced(LLVM_STATIC)
260
276
# disable for now, but plan to support on all platforms eventually
261
277
option(WITH_MEM_JEMALLOC "Enable malloc replacement (http://www.canonware.com/jemalloc)" OFF)
265
281
option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF)
266
282
mark_as_advanced(WITH_CXX_GUARDEDALLOC)
284
option(WITH_GUARDEDALLOC "Enable GuardedAlloc (DISABLE AT OWN RISK!)" ON)
285
mark_as_advanced(WITH_GUARDEDALLOC)
268
287
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" OFF)
269
288
mark_as_advanced(WITH_ASSERT_ABORT)
271
290
option(WITH_BOOST "Enable features depending no boost" ON)
292
if(CMAKE_COMPILER_IS_GNUCC)
293
option(WITH_GCC_MUDFLAP "Enable mudflap" OFF)
294
mark_as_advanced(WITH_GCC_MUDFLAP)
275
298
cmake_minimum_required(VERSION 2.8.8)
335
358
# force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? )
336
359
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
337
360
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
338
add_definitions ("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
361
add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
341
364
option(WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON)
393
416
set(WITH_HEADLESS ON)
396
# auto enable openimageio for cycles
398
set(WITH_OPENIMAGEIO ON)
401
419
# enable boost for cycles, booleans, audaspace or i18n
402
420
# otherwise if the user disabled
403
421
if(NOT WITH_BOOST)
404
422
# Explicitly disabled. so disable all deps.
406
set(WITH_MOD_BOOLEAN OFF)
407
set(WITH_AUDASPACE OFF)
408
set(WITH_INTERNATIONAL OFF)
410
set(WITH_OPENAL OFF) # depends on AUDASPACE
411
set(WITH_GAMEENGINE OFF) # depends on AUDASPACE
426
message(STATUS "'WITH_BOOST' is disabled: forceing 'set(${_setting} ${_val})'")
428
set(${_setting} ${_val})
431
set_and_warn(WITH_CYCLES OFF)
432
set_and_warn(WITH_MOD_BOOLEAN OFF)
433
set_and_warn(WITH_AUDASPACE OFF)
434
set_and_warn(WITH_INTERNATIONAL OFF)
436
set_and_warn(WITH_OPENAL OFF) # depends on AUDASPACE
437
set_and_warn(WITH_GAMEENGINE OFF) # depends on AUDASPACE
412
438
elseif(WITH_CYCLES OR WITH_MOD_BOOLEAN OR WITH_AUDASPACE OR WITH_INTERNATIONAL)
525
562
if(UNIX AND NOT APPLE)
526
563
macro(find_package_wrapper)
527
STRING(TOUPPER ${ARGV0} _NAME_UPPER)
528
if(${WITH_STATIC_LIBS})
564
string(TOUPPER ${ARGV0} _NAME_UPPER)
529
566
set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
530
567
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
532
569
find_package(${ARGV})
533
if(${WITH_STATIC_LIBS})
534
571
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
535
572
unset(_cmake_find_library_suffixes_back)
671
708
# uses in build instructions to override include and library variables
672
709
if(NOT BOOST_CUSTOM)
673
if(${WITH_STATIC_LIBS})
674
711
set(Boost_USE_STATIC_LIBS ON)
676
713
set(Boost_USE_MULTITHREADED ON)
677
714
set(__boost_packages filesystem regex system thread date_time)
678
if (WITH_INTERNATIONAL)
715
if(WITH_INTERNATIONAL)
679
716
list(APPEND __boost_packages locale)
681
718
find_package(Boost 1.48 COMPONENTS ${__boost_packages})
682
if(Boost_USE_STATIC_LIBS AND Boost_USE_ICU)
719
unset(__boost_packages)
720
if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
683
721
find_package(IcuLinux)
685
723
mark_as_advanced(Boost_DIR) # why doesnt boost do this?
751
789
execute_process(COMMAND ${LLVM_CONFIG} --libdir
752
790
OUTPUT_VARIABLE LLVM_LIB_DIR
753
791
OUTPUT_STRIP_TRAILING_WHITESPACE)
754
find_library(LLVM_LIBRARY
755
NAMES LLVMAnalysis # first of a whole bunch of libs to get
756
PATHS ${LLVM_LIB_DIR})
794
find_library(LLVM_LIBRARY
795
NAMES LLVMAnalysis # first of a whole bunch of libs to get
796
PATHS ${LLVM_LIB_DIR})
798
find_library(LLVM_LIBRARY
799
NAMES LLVM-${LLVM_VERSION}
800
PATHS ${LLVM_LIB_DIR})
757
803
message(STATUS "LLVM version = ${LLVM_VERSION}")
758
804
message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
759
805
message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
886
932
# include(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
888
934
if(CMAKE_COMPILER_IS_GNUCC)
889
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw32)
890
INCLUDE (CheckCSourceCompiles)
935
include(CheckCSourceCompiles)
891
936
# Setup 64bit and 64bit windows systems
892
937
CHECK_C_SOURCE_COMPILES("
893
938
#ifndef __MINGW64__
941
int main(void) { return 0; }
901
message("Compiling for 64 bit with MinGW-w64.")
946
message(STATUS "Compiling for 64 bit with MinGW-w64.")
902
947
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64)
949
message(STATUS "Compiling for 32 bit with MinGW-w32.")
950
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw32)
952
if(WITH_RAYOPTIMIZATION)
953
message(WARNING "MinGW-w32 is known to be unstable with 'WITH_RAYOPTIMIZATION' option enabled.")
905
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows)
907
957
# Setup 64bit and 64bit windows systems
909
message("64 bit compiler detected.")
910
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64)
959
message(STATUS "64 bit compiler detected.")
961
message(STATUS "Visual C++ 2012 detected.")
962
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64_vc11)
964
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64)
967
# Setup 32bit windows systems
969
message(STATUS "Visual C++ 2012 detected.")
970
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows_vc11)
972
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows)
972
1039
set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi)
1041
# MSVC11 SDL is not hard linked to dxguid.lib
1042
if(MSVC11 AND WITH_SDL)
1043
set(PLATFORM_LINKLIBS ${PLATFORM_LINKLIBS} dxguid)
974
1046
add_definitions(/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB)
1048
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build
1050
add_definitions(/D_ALLOW_KEYWORD_MACROS)
976
1053
set(CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE)
977
1054
set(CMAKE_C_FLAGS "/nologo /J /Gd" CACHE STRING "MSVC MT C++ flags " FORCE)
1018
1095
set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
1020
1097
set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include)
1022
set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz.lib)
1024
set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/zlib.lib)
1098
set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz_st.lib)
1027
1100
set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include)
1028
1101
set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC2.lib)
1045
1118
set(OPENCOLLADA ${LIBDIR}/opencollada)
1047
1120
set(OPENCOLLADA_INCLUDE_DIRS
1048
${LIBDIR}/opencollada/include/COLLADAStreamWriter/include
1049
${LIBDIR}/opencollada/include/COLLADABaseUtils/include
1050
${LIBDIR}/opencollada/include/COLLADAFramework/include
1051
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
1052
${LIBDIR}/opencollada/include/GeneratedSaxParser/include
1121
${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
1122
${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
1123
${OPENCOLLADA}/include/opencollada/COLLADAFramework
1124
${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
1125
${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
1054
set_lib_path(OPENCOLLADA_LIBPATH "opencollada")
1056
1128
set(OPENCOLLADA_LIBRARIES
1057
${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADASaxFrameworkLoader.lib
1058
${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADAFramework.lib
1059
${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADABaseUtils.lib
1060
${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADAStreamWriter.lib
1061
${OPENCOLLADA_LIBPATH}/lib/MathMLSolver.lib
1062
${OPENCOLLADA_LIBPATH}/lib/GeneratedSaxParser.lib
1063
${OPENCOLLADA_LIBPATH}/lib/xml2.lib
1064
${OPENCOLLADA_LIBPATH}/lib/buffer.lib
1065
${OPENCOLLADA_LIBPATH}/lib/ftoa.lib
1066
${OPENCOLLADA_LIBPATH}/lib/UTF.lib
1129
${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib
1130
${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib
1131
${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib
1132
${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
1133
${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
1134
${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
1135
${OPENCOLLADA}/lib/opencollada/xml.lib
1136
${OPENCOLLADA}/lib/opencollada/buffer.lib
1137
${OPENCOLLADA}/lib/opencollada/ftoa.lib
1138
${OPENCOLLADA}/lib/opencollada/UTF.lib
1068
1140
set(PCRE_LIBRARIES
1069
${OPENCOLLADA_LIBPATH}/lib/pcre.lib
1141
${OPENCOLLADA}/lib/opencollada/pcre.lib
1072
unset(OPENCOLLADA_LIBPATH)
1076
1145
if(WITH_CODEC_FFMPEG)
1078
1147
${LIBDIR}/ffmpeg/include
1079
1148
${LIBDIR}/ffmpeg/include/msvc
1081
set(FFMPEG_LIBRARIES
1082
${LIBDIR}/ffmpeg/lib/avcodec-53.lib
1083
${LIBDIR}/ffmpeg/lib/avformat-53.lib
1084
${LIBDIR}/ffmpeg/lib/avdevice-53.lib
1085
${LIBDIR}/ffmpeg/lib/avutil-51.lib
1086
${LIBDIR}/ffmpeg/lib/swscale-2.lib
1150
# MSVC11 FFMPEG libs are newer
1152
set(FFMPEG_LIBRARIES
1153
${LIBDIR}/ffmpeg/lib/avcodec-54.lib
1154
${LIBDIR}/ffmpeg/lib/avformat-54.lib
1155
${LIBDIR}/ffmpeg/lib/avdevice-54.lib
1156
${LIBDIR}/ffmpeg/lib/avutil-52.lib
1157
${LIBDIR}/ffmpeg/lib/swscale-2.lib
1160
set(FFMPEG_LIBRARIES
1161
${LIBDIR}/ffmpeg/lib/avcodec-53.lib
1162
${LIBDIR}/ffmpeg/lib/avformat-53.lib
1163
${LIBDIR}/ffmpeg/lib/avdevice-53.lib
1164
${LIBDIR}/ffmpeg/lib/avutil-51.lib
1165
${LIBDIR}/ffmpeg/lib/swscale-2.lib
1090
1170
if(WITH_IMAGE_OPENEXR)
1091
set_lib_path(OPENEXR "openexr")
1171
set(OPENEXR ${LIBDIR}/openexr)
1092
1172
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
1093
1173
set(OPENEXR_INCLUDE_DIRS ${OPENEXR}/include/OpenEXR)
1094
1174
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
1117
1197
if(WITH_PYTHON)
1118
# normally cached but not since we include them with blender
1120
set(PYTHON_VERSION 3.3) # CACHE STRING)
1122
set(PYTHON_VERSION 3.3) # CACHE STRING)
1198
set(PYTHON_VERSION 3.3) # CACHE STRING)
1125
set_lib_path(PYTHON "python")
1126
STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
1200
string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
1127
1201
# Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs
1128
1202
set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib)
1129
# set(PYTHON_LIBRARY ${PYTHON}/lib/python${_PYTHON_VERSION_NO_DOTS}.lib) #CACHE FILEPATH
1130
1203
unset(_PYTHON_VERSION_NO_DOTS)
1132
#Shared includes for both vc2008 and vc2010
1205
# Shared includes for both vc2008 and vc2010
1133
1206
set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
1135
1208
# uncached vars
1141
1214
set(BOOST ${LIBDIR}/boost)
1142
1215
set(BOOST_INCLUDE_DIR ${BOOST}/include)
1144
set(BOOST_LIBPATH ${BOOST}/vc2010/lib)
1145
set(BOOST_POSTFIX "vc100-mt-s-1_49.lib")
1146
set(BOOST_DEBUG_POSTFIX "vc100-mt-sgd-1_49.lib")
1217
set(BOOST_LIBPATH ${BOOST}/lib)
1218
set(BOOST_POSTFIX "vc110-mt-s-1_53.lib")
1219
set(BOOST_DEBUG_POSTFIX "vc110-mt-sgd-1_53.lib")
1148
1221
set(BOOST_LIBPATH ${BOOST}/lib)
1149
1222
set(BOOST_POSTFIX "vc90-mt-s-1_49.lib")
1212
1283
set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing")
1214
1285
if(WITH_MINGW64)
1215
#We need to take care though not to have these on debug builds because they may play funky with gdb
1216
if(CMAKE_BUILD_TYPE MATCHES "Release")
1217
set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -mmmx -ftree-vectorize")
1219
1286
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
1220
1287
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread")
1222
1289
add_definitions(-DFREE_WINDOWS64 -DMS_WIN64)
1223
#Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes
1290
# Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes
1224
1291
set(WITH_OPENMP OFF)
1267
1334
if(WITH_OPENCOLLADA)
1268
1335
set(OPENCOLLADA ${LIBDIR}/opencollada)
1269
1336
set(OPENCOLLADA_INCLUDE_DIRS
1270
${LIBDIR}/opencollada/include/COLLADAStreamWriter/include
1271
${LIBDIR}/opencollada/include/COLLADABaseUtils/include
1272
${LIBDIR}/opencollada/include/COLLADAFramework/include
1273
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
1274
${LIBDIR}/opencollada/include/GeneratedSaxParser/include
1337
${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
1338
${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
1339
${OPENCOLLADA}/include/opencollada/COLLADAFramework
1340
${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
1341
${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
1276
set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib ${OPENCOLLADA}/lib)
1278
set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa xml)
1280
set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa)
1343
set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib/opencollada)
1344
set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver buffer ftoa xml)
1282
1345
set(PCRE_LIBRARIES pcre)
1365
1428
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
1366
1429
set(OPENIMAGEIO_LIBRARIES OpenImageIO)
1367
1430
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
1368
set(OPENIMAGEIO_DEFINITIONS)
1431
set(OPENIMAGEIO_DEFINITIONS "")
1372
1435
set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
1373
1436
set(LLVM_LIB_DIR ${LLVM_DIRECTORY}/lib)
1374
#Explicitly set llvm lib order.
1437
# Explicitly set llvm lib order.
1375
1438
#---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! ---------
1376
1439
set(LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive
1377
1440
LLVMAsmParser LLVMAsmPrinter
1459
1521
if(WITH_PYTHON)
1460
if(NOT WITH_PYTHON_MODULE)
1461
# we use precompiled libraries for py 3.3 and up by default
1522
# we use precompiled libraries for py 3.3 and up by default
1523
set(PYTHON_VERSION 3.3)
1524
if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
1463
1525
# normally cached but not since we include them with blender
1464
set(PYTHON_VERSION 3.3)
1465
1526
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
1466
1527
# set(PYTHON_BINARY "${LIBDIR}/python/bin/python${PYTHON_VERSION}") # not used yet
1467
1528
set(PYTHON_LIBRARY python${PYTHON_VERSION}m)
1469
1530
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
1471
1532
# module must be compiled against Python framework
1473
# normally cached but not since we include them with blender
1474
set(PYTHON_VERSION 3.3)
1475
1533
set(PYTHON_INCLUDE_DIR "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/include/python${PYTHON_VERSION}m")
1476
1534
set(PYTHON_BINARY "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/bin/python${PYTHON_VERSION}")
1477
1535
#set(PYTHON_LIBRARY python${PYTHON_VERSION})
1539
1597
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit")
1540
1598
if(CMAKE_OSX_ARCHITECTURES MATCHES i386)
1541
1599
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
1542
#libSDL still needs 32bit carbon quicktime
1600
# libSDL still needs 32bit carbon quicktime
1544
1602
elseif(WITH_CODEC_QUICKTIME)
1545
1603
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
1591
1649
set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
1592
1650
set(OPENCOLLADA_LIBRARIES "OpenCOLLADASaxFrameworkLoader -lOpenCOLLADAFramework -lOpenCOLLADABaseUtils -lOpenCOLLADAStreamWriter -lMathMLSolver -lGeneratedSaxParser -lUTF -lxml2 -lbuffer -lftoa")
1593
#pcre is bundled with openCollada
1651
# pcre is bundled with openCollada
1594
1652
#set(PCRE ${LIBDIR}/pcre)
1595
1653
#set(PCRE_LIBPATH ${PCRE}/lib)
1596
1654
set(PCRE_LIBRARIES pcre)
1922
1979
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero)
1924
1981
# gcc 4.2 gives annoying warnings on every file with this
1925
if (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3")
1982
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3")
1926
1983
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNINITIALIZED -Wuninitialized)
1986
# versions before gcc4.6 give many BLI_math warnings
1987
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.6")
1988
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_REDUNDANT_DECLS -Wredundant-decls)
1989
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_REDUNDANT_DECLS -Wredundant-decls)
1929
1992
# disable because it gives warnings for printf() & friends.
1930
1993
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DOUBLE_PROMOTION -Wdouble-promotion -Wno-error=double-promotion)
1965
2028
# strange, clang complains these are not supported, but then yses them.
1966
2029
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
2030
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_DECLARATION_AFTER_STATEMENT -Werror=declaration-after-statement)
2031
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
2032
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
1967
2033
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
1968
2034
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
1969
2035
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
1970
2036
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
1971
2037
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes)
1972
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
2038
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter)
1974
2040
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
1975
2041
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
1976
2042
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
1977
2043
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
1978
2044
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual) # we get a lot of these, if its a problem a dev needs to look into it.
2045
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
1979
2046
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
1980
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
2048
# gives too many unfixable warnings
2049
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
2050
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
2052
# flags to undo strict flags
2053
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
2054
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
2056
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
2057
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
2058
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast)
2059
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes)
2060
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum)
2061
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
2062
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
2064
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
2065
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
2066
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
2067
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
2068
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
1982
2070
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
2016
2097
if(WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY)
2017
2098
# set but invalid
2018
# -- disabled until we make numpy bundled with blender - campbell
2099
# -- disabled until we make numpy bundled with blender - campbell
2019
2100
if((NOT ${PYTHON_NUMPY_PATH} STREQUAL "") AND (NOT ${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
2020
2101
# if(NOT EXISTS "${PYTHON_NUMPY_PATH}/numpy")
2021
2102
# message(WARNING "PYTHON_NUMPY_PATH is invalid, numpy not found in '${PYTHON_NUMPY_PATH}' "
2143
if(WITH_GCC_MUDFLAP)
2144
set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -fmudflapth -funwind-tables")
2145
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lpthread -lmudflapth -rdynamic")
2146
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_ERROR_MUDFLAP -Wno-error=mudflap)
2147
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_ERROR_MUDFLAP -Wno-error=mudflap)
2062
2150
# Include warnings first, so its possible to disable them with user defined flags
2063
2151
# eg: -Wno-uninitialized
2064
2152
set(CMAKE_C_FLAGS "${C_WARNINGS} ${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}")
2169
2258
info_cfg_option(WITH_OPENAL)
2170
2259
info_cfg_option(WITH_SDL)
2171
2260
info_cfg_option(WITH_JACK)
2261
info_cfg_option(WITH_JACK_DYNLOAD)
2172
2262
info_cfg_option(WITH_CODEC_AVI)
2173
2263
info_cfg_option(WITH_CODEC_FFMPEG)
2174
2264
info_cfg_option(WITH_CODEC_SNDFILE)