diff --git a/mingw-w64-blender-git/PKGBUILD b/mingw-w64-blender-git/PKGBUILD index 715b02a973..ec7e10b96d 100644 --- a/mingw-w64-blender-git/PKGBUILD +++ b/mingw-w64-blender-git/PKGBUILD @@ -5,15 +5,14 @@ _mingw_suff=mingw-w64-${CARCH} pkgname="${_mingw_suff}-${_realname}-git" provides=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff}-${_realname}") -blender_version=2.69 -pkgver=r53025.cc2cdfb +blender_version=2.70 +pkgver=r53403.4614c63 pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (mingw-w64)" arch=('any') license=('GPL') url="http://www.blender.org" -depends=( - "${_mingw_suff}-boost" +depends=("${_mingw_suff}-boost" "${_mingw_suff}-glew" "${_mingw_suff}-ffmpeg" "${_mingw_suff}-fftw" @@ -21,7 +20,6 @@ depends=( "${_mingw_suff}-libpng" "${_mingw_suff}-libsndfile" "${_mingw_suff}-libtiff" - "${_mingw_suff}-python3-numpy" "${_mingw_suff}-openexr" "${_mingw_suff}-openal" "${_mingw_suff}-opencollada" @@ -29,8 +27,9 @@ depends=( "${_mingw_suff}-openimageio" "${_mingw_suff}-openshadinglanguage" "${_mingw_suff}-python3" + "${_mingw_suff}-python3-numpy" "${_mingw_suff}-wintab-sdk") -makedepends=("${_mingw_suff}-cmake" "${_mingw_suff}-boost") +makedepends=("${_mingw_suff}-boost" "${_mingw_suff}-clang" "${_mingw_suff}-cmake") #[[ $CARCH == x86_64 ]] && makedepends+=('cuda') optdepends=('cuda: cycles renderer cuda support') options=(!strip staticlibs !buildflags) @@ -46,8 +45,8 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '0c0c9e0ffe1efe2176f5267e6ef019c3' - '57bce4d96f2724d44d5bbeedaa36d392' + 'ab83bd4cf48d08cff63f795b268be350' + '4ae668ebdaa1408485937e767881c80b' '1969914e11d0a4f74dbfeddad742c9da') pkgver() { @@ -112,8 +111,8 @@ build() { -DPYTHON_NUMPY_PATH=${PREFIX_DEPS}/lib/python3.4/site-packages \ -DCYCLES_OSL=${PREFIX_DEPS} \ -DWITH_IMAGE_REDCODE=ON \ - -DWITH_OPENMP=OFF \ - ../$_realname + -DWITH_OPENMP=ON \ + ../${_realname} # Remove the openjpeg line once blender accepts my patch make # -j1 VERBOSE=1 diff --git a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch index 4b472be3da..8ef7974b55 100644 --- a/mingw-w64-blender-git/fix-mingw-w64-definitions.patch +++ b/mingw-w64-blender-git/fix-mingw-w64-definitions.patch @@ -23,9 +23,9 @@ diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.cc blender-pp/ --- blender/extern/libmv/third_party/glog/src/windows/port.cc 2014-01-14 08:17:57.112600000 +0400 +++ blender-pp/extern/libmv/third_party/glog/src/windows/port.cc 2014-01-14 07:08:38.441200000 +0400 @@ -56,7 +56,7 @@ + return _vsnprintf(str, size-1, format, ap); } - // MinGW64 defines -#ifndef __MINGW64__ +#ifndef __MINGW64_VERSION_MAJOR int snprintf(char *str, size_t size, const char *format, ...) { @@ -56,17 +56,16 @@ diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.h blender-pp/e #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) #ifndef __MINGW32__ enum { STDIN_FILENO = 0, STDOUT_FILENO = 1, STDERR_FILENO = 2 }; -@@ -123,9 +125,8 @@ +@@ -123,7 +125,9 @@ #define DEFAULT_TEMPLATE_ROOTDIR ".." // ----------------------------------- SYSTEM/PROCESS --#ifndef __MINGW64__ +#ifndef __MINGW64_VERSION_MAJOR typedef int pid_t; --#endif ++#endif #define getpid _getpid - // ----------------------------------- THREADS + #include @@ -152,6 +153,7 @@ return result; #endif diff --git a/mingw-w64-blender-git/mingw-w64-cmake.patch b/mingw-w64-blender-git/mingw-w64-cmake.patch index 2aeca95956..342134c3e2 100644 --- a/mingw-w64-blender-git/mingw-w64-cmake.patch +++ b/mingw-w64-blender-git/mingw-w64-cmake.patch @@ -1,6 +1,6 @@ ---- blender/CMakeLists.txt.orig 2014-03-16 12:47:56.672200000 +0400 -+++ blender/CMakeLists.txt 2014-03-16 13:17:24.108600000 +0400 -@@ -174,6 +174,8 @@ +--- blender/CMakeLists.txt.orig 2014-04-08 00:22:36.736800000 +0400 ++++ blender/CMakeLists.txt 2014-04-08 06:51:03.051600000 +0400 +@@ -171,6 +171,8 @@ option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON) option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON) @@ -9,7 +9,7 @@ else() # not an option for other OS's set(WITH_SYSTEM_GLEW OFF) -@@ -181,7 +183,7 @@ +@@ -178,7 +180,7 @@ # (unix defaults to System OpenJPEG On) @@ -18,7 +18,7 @@ set(PLATFORM_DEFAULT ON) else() set(PLATFORM_DEFAULT OFF) -@@ -585,7 +587,7 @@ +@@ -579,7 +581,7 @@ #----------------------------------------------------------------------------- #Platform specifics @@ -27,7 +27,7 @@ macro(find_package_wrapper) string(TOUPPER ${ARGV0} _NAME_UPPER) if(WITH_STATIC_LIBS) -@@ -604,15 +606,32 @@ +@@ -598,15 +600,29 @@ find_package_wrapper(ZLIB REQUIRED) find_package_wrapper(Freetype REQUIRED) @@ -43,42 +43,33 @@ + set(PYTHON_VERSION 3.4) # CACHE STRING) + set(PYTHON_INCLUDE_DIR "${LIBDIR}/include/python${PYTHON_VERSION}m") # CACHE PATH) + set(PYTHON_LIBRARY "${LIBDIR}/lib/libpython3.4m.dll.a") # CACHE FILEPATH) - -- # Use our own instead, since wothout py is such a rare case, -- # require this package -- # XXX Linking errors with debian static python :/ --# find_package_wrapper(PythonLibsUnix REQUIRED) -- find_package(PythonLibsUnix REQUIRED) + # uncached vars + set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") + set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") + else() -+ # No way to set py33. remove for now. -+ # find_package(PythonLibs) -+ -+ # Use our own instead, since wothout py is such a rare case, -+ # require this package -+ # XXX Linking errors with debian static python :/ -+# find_package_wrapper(PythonLibsUnix REQUIRED) -+ find_package(PythonLibsUnix REQUIRED) + + # Use our own instead, since wothout py is such a rare case, + # require this package + # XXX Linking errors with debian static python :/ + # find_package_wrapper(PythonLibsUnix REQUIRED) + find_package(PythonLibsUnix REQUIRED) + endif() endif() if(WITH_IMAGE_OPENEXR) -@@ -676,7 +695,11 @@ +@@ -670,7 +686,11 @@ endif() if(WITH_CODEC_FFMPEG) -- set(FFMPEG /usr CACHE PATH "FFMPEG Directory") + if(MINGW) + set(FFMPEG ${LIBDIR} CACHE PATH "FFMPEG Directory") + else() -+ set(FFMPEG /usr CACHE PATH "FFMPEG Directory") + set(FFMPEG /usr CACHE PATH "FFMPEG Directory") + endif() set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries") mark_as_advanced(FFMPEG) -@@ -705,6 +728,9 @@ +@@ -699,6 +719,9 @@ if(OPENCOLLADA_FOUND) find_package_wrapper(XML2) find_package_wrapper(PCRE) @@ -88,58 +79,38 @@ else() set(WITH_OPENCOLLADA OFF) endif() -@@ -861,8 +887,13 @@ +@@ -855,8 +878,13 @@ message(FATAL_ERROR "LLVM not found.") endif() -- # Fix for conflict with Mesa llvmpipe -- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map") + if(MINGW) + # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc + set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -limagehlp") + else() -+ # Fix for conflict with Mesa llvmpipe -+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map") + # Fix for conflict with Mesa llvmpipe + set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map") + endif() endif() if(WITH_CYCLES_OSL) -@@ -873,9 +904,13 @@ +@@ -867,9 +895,13 @@ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) -- # Note: --whole-archive is needed to force loading of all symbols in liboslexec, -- # otherwise LLVM is missing the osl_allocate_closure_component function -- list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY}) + if(MINGW) + list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) + else() -+ # Note: --whole-archive is needed to force loading of all symbols in liboslexec, -+ # otherwise LLVM is missing the osl_allocate_closure_component function -+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY}) + # Note: --whole-archive is needed to force loading of all symbols in liboslexec, + # otherwise LLVM is missing the osl_allocate_closure_component function + list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY}) + endif() find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) -@@ -889,313 +924,355 @@ +@@ -883,6 +915,47 @@ endif() endif() -- # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed -- set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") -- -- if((NOT WITH_HEADLESS) AND (NOT WITH_GHOST_SDL)) -- find_package(X11 REQUIRED) -- find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH}) -- mark_as_advanced(X11_XF86keysym_INCLUDE_PATH) -- -- set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_X11_LIB}") -- -- if(WITH_X11_XINPUT) -- if(X11_Xinput_LIB) -- set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_Xinput_LIB}") -- else() -- set(WITH_X11_XINPUT OFF) + if(MINGW) + add_definitions(-DWIN32) + # keep GCC specific stuff here @@ -160,23 +131,9 @@ + message(STATUS "Compiling MinGW-w64.") + else() + message(STATUS "Compiling with MinGW-w32.") -+ -+ if(WITH_RAYOPTIMIZATION) -+ message(WARNING "MinGW-w32 is known to be unstable with 'WITH_RAYOPTIMIZATION' option enabled.") - endif() - endif() ++ endif() + 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") - -- 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() + if(WITH_MINGW64) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") + set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread") @@ -184,127 +141,25 @@ + add_definitions(-DFREE_WINDOWS64 -DMS_WIN64) + # Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes + #set(WITH_OPENMP OFF) - endif() -- endif() ++ endif() + add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) + add_definitions(-DFREE_WINDOWS) + set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") + + set(WINTAB_INC ${LIBDIR}/include) + ++ if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD) ++ add_definitions(-D__SSE__ -D__MMX__) ++ endif() + else() -+ # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed -+ set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") + # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed + set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") -- if(CMAKE_SYSTEM_NAME MATCHES "Linux") -- if(NOT WITH_PYTHON_MODULE) -- # binreloc is linux only -- set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include) -- set(WITH_BINRELOC ON) -+ if((NOT WITH_HEADLESS) AND (NOT WITH_GHOST_SDL)) -+ find_package(X11 REQUIRED) -+ find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH}) -+ mark_as_advanced(X11_XF86keysym_INCLUDE_PATH) -+ -+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_X11_LIB}") -+ -+ if(WITH_X11_XINPUT) -+ if(X11_Xinput_LIB) -+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_Xinput_LIB}") -+ else() -+ set(WITH_X11_XINPUT OFF) -+ endif() -+ endif() -+ -+ if(WITH_X11_XF86VMODE) -+ # XXX, why dont cmake make this available? -+ FIND_LIBRARY(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH}) -+ mark_as_advanced(X11_Xxf86vmode_LIB) -+ if(X11_Xxf86vmode_LIB) -+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} ${X11_Xxf86vmode_LIB}") -+ else() -+ set(WITH_X11_XF86VMODE OFF) -+ endif() -+ endif() - endif() -- endif() - -- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -pthread") -+ if(CMAKE_SYSTEM_NAME MATCHES "Linux") -+ if(NOT WITH_PYTHON_MODULE) -+ # binreloc is linux only -+ set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include) -+ set(WITH_BINRELOC ON) -+ endif() -+ endif() -+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -pthread") - -- # lfs on glibc, all compilers should use -- add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) -+ # lfs on glibc, all compilers should use -+ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) - -- # GNU Compiler -- if(CMAKE_COMPILER_IS_GNUCC) -- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -- # CLang is the same as GCC for now. -- elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") -- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -- # Solaris CC -- elseif(CMAKE_C_COMPILER_ID MATCHES "SunPro") -- set(PLATFORM_CFLAGS "-pipe -features=extensions -fPIC -D__FUNCTION__=__func__") -- -- # Intel C++ Compiler -- elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") -- # think these next two are broken -- find_program(XIAR xiar) -- if(XIAR) -- set(CMAKE_AR "${XIAR}") -- endif() -- mark_as_advanced(XIAR) -+ # GNU Compiler -+ if(CMAKE_COMPILER_IS_GNUCC) -+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -+ # CLang is the same as GCC for now. -+ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") -+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -+ # Solaris CC -+ elseif(CMAKE_C_COMPILER_ID MATCHES "SunPro") -+ set(PLATFORM_CFLAGS "-pipe -features=extensions -fPIC -D__FUNCTION__=__func__") -+ -+ # Intel C++ Compiler -+ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") -+ # think these next two are broken -+ find_program(XIAR xiar) -+ if(XIAR) -+ set(CMAKE_AR "${XIAR}") -+ endif() -+ mark_as_advanced(XIAR) - -- find_program(XILD xild) -- if(XILD) -- set(CMAKE_LINKER "${XILD}") -- endif() -- mark_as_advanced(XILD) -+ find_program(XILD xild) -+ if(XILD) -+ set(CMAKE_LINKER "${XILD}") -+ endif() -+ mark_as_advanced(XILD) - -- 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") -+ 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") - -- # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3") -- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") -+ # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3") -+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") -+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") -+ endif() +@@ -958,12 +1031,12 @@ + set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") + set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") endif() ++ endif() -elseif(WIN32) +elseif(MSVC) @@ -312,568 +167,13 @@ add_definitions(-DWIN32) - if(MSVC) -- set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi) -+ set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi) + set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi) -- # MSVC11 SDL is not hard linked to dxguid.lib -- if(MSVC11 AND WITH_SDL) -- set(PLATFORM_LINKLIBS ${PLATFORM_LINKLIBS} dxguid) -- endif() -+ # MSVC11 SDL is not hard linked to dxguid.lib -+ if(MSVC11 AND WITH_SDL) -+ set(PLATFORM_LINKLIBS ${PLATFORM_LINKLIBS} dxguid) -+ endif() + # MSVC11 SDL is not hard linked to dxguid.lib +@@ -1329,227 +1402,6 @@ -- add_definitions( -- -D_CRT_NONSTDC_NO_DEPRECATE -- -D_CRT_SECURE_NO_DEPRECATE -- -D_SCL_SECURE_NO_DEPRECATE -- -D_CONSOLE -- -D_LIB -- ) -+ add_definitions( -+ -D_CRT_NONSTDC_NO_DEPRECATE -+ -D_CRT_SECURE_NO_DEPRECATE -+ -D_SCL_SECURE_NO_DEPRECATE -+ -D_CONSOLE -+ -D_LIB -+ ) - -- # MSVC11 needs _ALLOW_KEYWORD_MACROS to build -- if(NOT MSVC_VERSION VERSION_LESS 1700) -- add_definitions(-D_ALLOW_KEYWORD_MACROS) -- endif() -+ # MSVC11 needs _ALLOW_KEYWORD_MACROS to build -+ if(NOT MSVC_VERSION VERSION_LESS 1700) -+ add_definitions(-D_ALLOW_KEYWORD_MACROS) -+ endif() - -- if(CMAKE_CL_64) -- # We want to support Vista level ABI for x64 -- if(NOT MSVC_VERSION VERSION_LESS 1700) -- add_definitions(-D_WIN32_WINNT=0x600) -- endif() -+ if(CMAKE_CL_64) -+ # We want to support Vista level ABI for x64 -+ if(NOT MSVC_VERSION VERSION_LESS 1700) -+ add_definitions(-D_WIN32_WINNT=0x600) - endif() -+ endif() - -- set(CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc /MP" CACHE STRING "MSVC MT C++ flags " FORCE) -- set(CMAKE_C_FLAGS "/nologo /J /Gd /MP" CACHE STRING "MSVC MT C++ flags " FORCE) -+ set(CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc /MP" CACHE STRING "MSVC MT C++ flags " FORCE) -+ set(CMAKE_C_FLAGS "/nologo /J /Gd /MP" CACHE STRING "MSVC MT C++ flags " FORCE) - -- if(CMAKE_CL_64) -- set(CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -- else() -- set(CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE) -- endif() -- set(CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -- set(CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -- if(CMAKE_CL_64) -- set(CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -- else() -- set(CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE) -- endif() -- set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -- set(CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -- set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -- -- # most msvc warnings are C & C++ -- set(_WARNINGS -- # warning level: -- "/W3" -- "/w34062" # switch statement contains 'default' but no 'case' labels -- # disable: -- "/wd4018" # signed/unsigned mismatch -- "/wd4065" # switch statement contains 'default' but no 'case' labels -- "/wd4127" # conditional expression is constant -- "/wd4181" # qualifier applied to reference type; ignored -- "/wd4200" # zero-sized array in struct/union -- "/wd4244" # conversion from 'type1' to 'type2', possible loss of data -- "/wd4267" # conversion from 'size_t' to 'type', possible loss of data -- "/wd4305" # truncation from 'type1' to 'type2' -- "/wd4800" # forcing value to bool 'true' or 'false' -- # errors: -- "/we4013" # 'function' undefined; assuming extern returning int -- "/we4431" # missing type specifier - int assumed -- ) -+ if(CMAKE_CL_64) -+ set(CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -+ else() -+ set(CMAKE_CXX_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE) -+ endif() -+ set(CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -+ set(CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -+ if(CMAKE_CL_64) -+ set(CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -+ else() -+ set(CMAKE_C_FLAGS_DEBUG "/Od /RTC1 /MTd /ZI /MP" CACHE STRING "MSVC MT flags " FORCE) -+ endif() -+ set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -+ set(CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /MT /MP" CACHE STRING "MSVC MT flags " FORCE) -+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi /MP" CACHE STRING "MSVC MT flags " FORCE) -+ -+ # most msvc warnings are C & C++ -+ set(_WARNINGS -+ # warning level: -+ "/W3" -+ "/w34062" # switch statement contains 'default' but no 'case' labels -+ # disable: -+ "/wd4018" # signed/unsigned mismatch -+ "/wd4065" # switch statement contains 'default' but no 'case' labels -+ "/wd4127" # conditional expression is constant -+ "/wd4181" # qualifier applied to reference type; ignored -+ "/wd4200" # zero-sized array in struct/union -+ "/wd4244" # conversion from 'type1' to 'type2', possible loss of data -+ "/wd4267" # conversion from 'size_t' to 'type', possible loss of data -+ "/wd4305" # truncation from 'type1' to 'type2' -+ "/wd4800" # forcing value to bool 'true' or 'false' -+ # errors: -+ "/we4013" # 'function' undefined; assuming extern returning int -+ "/we4431" # missing type specifier - int assumed -+ ) - -- string(REPLACE ";" " " _WARNINGS "${_WARNINGS}") -- set(C_WARNINGS "${_WARNINGS}") -- set(CXX_WARNINGS "${_WARNINGS}") -- unset(_WARNINGS) -+ string(REPLACE ";" " " _WARNINGS "${_WARNINGS}") -+ set(C_WARNINGS "${_WARNINGS}") -+ set(CXX_WARNINGS "${_WARNINGS}") -+ unset(_WARNINGS) -+ -+ set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib") -+ -+ # MSVC only, Mingw doesnt need -+ if(CMAKE_CL_64) -+ set(PLATFORM_LINKFLAGS "/MACHINE:X64 /OPT:NOREF ${PLATFORM_LINKFLAGS}") -+ else() -+ set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") -+ endif() - -- set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib") -+ set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") - -- # MSVC only, Mingw doesnt need -+ if(NOT DEFINED LIBDIR) -+ # Setup 64bit and 64bit windows systems - if(CMAKE_CL_64) -- set(PLATFORM_LINKFLAGS "/MACHINE:X64 /OPT:NOREF ${PLATFORM_LINKFLAGS}") -+ message(STATUS "64 bit compiler detected.") -+ set(LIBDIR_BASE ${CMAKE_SOURCE_DIR}/../lib/win64) - else() -- set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") -+ message(STATUS "32 bit compiler detected.") -+ set(LIBDIR_BASE ${CMAKE_SOURCE_DIR}/../lib/windows) - endif() -- -- set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") -- -- if(NOT DEFINED LIBDIR) -- # Setup 64bit and 64bit windows systems -- if(CMAKE_CL_64) -- message(STATUS "64 bit compiler detected.") -- set(LIBDIR_BASE ${CMAKE_SOURCE_DIR}/../lib/win64) -- else() -- message(STATUS "32 bit compiler detected.") -- set(LIBDIR_BASE ${CMAKE_SOURCE_DIR}/../lib/windows) -- endif() -- if(MSVC12) -- message(STATUS "Visual C++ 2013 detected.") -- set(LIBDIR ${LIBDIR_BASE}_vc12) -- elseif(MSVC11) -- message(STATUS "Visual C++ 2012 detected.") -- set(LIBDIR ${LIBDIR_BASE}_vc11) -- else() -- set(LIBDIR ${LIBDIR_BASE}) -- endif() -+ -+ if(MSVC12) -+ message(STATUS "Visual C++ 2013 detected.") -+ set(LIBDIR ${LIBDIR_BASE}_vc12) -+ elseif(MSVC11) -+ message(STATUS "Visual C++ 2012 detected.") -+ set(LIBDIR ${LIBDIR_BASE}_vc11) - else() -- message(STATUS using LIBDIR ${LIBDIR}) -+ set(LIBDIR ${LIBDIR_BASE}) - endif() -+ else() -+ message(STATUS using LIBDIR ${LIBDIR}) -+ endif() - -- # Add each of our libraries to our cmake_prefix_path so find_package() could work -- FILE(GLOB children RELATIVE ${LIBDIR} ${LIBDIR}/*) -- FOREACH(child ${children}) -- IF(IS_DIRECTORY ${LIBDIR}/${child}) -- LIST(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child}) -- ENDIF() -- ENDFOREACH() -+ # Add each of our libraries to our cmake_prefix_path so find_package() could work -+ FILE(GLOB children RELATIVE ${LIBDIR} ${LIBDIR}/*) -+ FOREACH(child ${children}) -+ IF(IS_DIRECTORY ${LIBDIR}/${child}) -+ LIST(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child}) -+ ENDIF() -+ ENDFOREACH() -+ -+ set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include) -+ set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz_st.lib) -+ set(ZLIB_INCLUDE_DIR ${LIBDIR}/zlib/include) -+ set(ZLIB_LIBRARY ${LIBDIR}/zlib/lib/libz_st.lib) -+ set(ZLIB_DIR ${LIBDIR}/zlib) -+ find_package(zlib) # we want to find before finding things that depend on it like png -+ -+ find_package(png) -+ if(NOT PNG_FOUND) -+ set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include) -+ message(WARNING "Using HARDCODED libpng locations") -+ set(PNG_LIBRARIES libpng) -+ set(PNG "${LIBDIR}/png") -+ set(PNG_INCLUDE_DIR "${PNG}/include") -+ set(PNG_LIBPATH ${PNG}/lib) # not cmake defined -+ endif() - -- set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include) -- set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz_st.lib) -- set(ZLIB_INCLUDE_DIR ${LIBDIR}/zlib/include) -- set(ZLIB_LIBRARY ${LIBDIR}/zlib/lib/libz_st.lib) -- set(ZLIB_DIR ${LIBDIR}/zlib) -- find_package(zlib) # we want to find before finding things that depend on it like png -+ find_package(jpeg REQUIRED) - -+ set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include) -+ set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC2.lib) - -- find_package(png) -- if(NOT PNG_FOUND) -- set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include) -- message(WARNING "Using HARDCODED libpng locations") -- set(PNG_LIBRARIES libpng) -- set(PNG "${LIBDIR}/png") -- set(PNG_INCLUDE_DIR "${PNG}/include") -- set(PNG_LIBPATH ${PNG}/lib) # not cmake defined -- endif() -+ set(FREETYPE ${LIBDIR}/freetype) -+ set(FREETYPE_INCLUDE_DIRS -+ ${LIBDIR}/freetype/include -+ ${LIBDIR}/freetype/include/freetype2 -+ ) -+ set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib) -+ find_package(freetype REQUIRED) - -- find_package(jpeg REQUIRED) -+ if(WITH_FFTW3) -+ set(FFTW3 ${LIBDIR}/fftw3) -+ set(FFTW3_LIBRARIES libfftw) -+ set(FFTW3_INCLUDE_DIRS ${FFTW3}/include) -+ set(FFTW3_LIBPATH ${FFTW3}/lib) -+ endif() - -- set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include) -- set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC2.lib) -+ if(WITH_OPENCOLLADA) -+ set(OPENCOLLADA ${LIBDIR}/opencollada) - -- set(FREETYPE ${LIBDIR}/freetype) -- set(FREETYPE_INCLUDE_DIRS -- ${LIBDIR}/freetype/include -- ${LIBDIR}/freetype/include/freetype2 -+ set(OPENCOLLADA_INCLUDE_DIRS -+ ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter -+ ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils -+ ${OPENCOLLADA}/include/opencollada/COLLADAFramework -+ ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader -+ ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser - ) -- set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib) -- find_package(freetype REQUIRED) -- -- if(WITH_FFTW3) -- set(FFTW3 ${LIBDIR}/fftw3) -- set(FFTW3_LIBRARIES libfftw) -- set(FFTW3_INCLUDE_DIRS ${FFTW3}/include) -- set(FFTW3_LIBPATH ${FFTW3}/lib) -- endif() -- -- if(WITH_OPENCOLLADA) -- set(OPENCOLLADA ${LIBDIR}/opencollada) -- -- set(OPENCOLLADA_INCLUDE_DIRS -- ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter -- ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils -- ${OPENCOLLADA}/include/opencollada/COLLADAFramework -- ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader -- ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser -- ) - -- set(OPENCOLLADA_LIBRARIES -- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib -- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib -- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib -- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib -- ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib -- ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib -- ${OPENCOLLADA}/lib/opencollada/xml.lib -- ${OPENCOLLADA}/lib/opencollada/buffer.lib -- ${OPENCOLLADA}/lib/opencollada/ftoa.lib -- ${OPENCOLLADA}/lib/opencollada/UTF.lib -- ) -- set(PCRE_LIBRARIES -- ${OPENCOLLADA}/lib/opencollada/pcre.lib -- ) -- endif() -+ set(OPENCOLLADA_LIBRARIES -+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib -+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib -+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib -+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib -+ ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib -+ ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib -+ ${OPENCOLLADA}/lib/opencollada/xml.lib -+ ${OPENCOLLADA}/lib/opencollada/buffer.lib -+ ${OPENCOLLADA}/lib/opencollada/ftoa.lib -+ ${OPENCOLLADA}/lib/opencollada/UTF.lib -+ ) -+ set(PCRE_LIBRARIES -+ ${OPENCOLLADA}/lib/opencollada/pcre.lib -+ ) -+ endif() - -- if(WITH_CODEC_FFMPEG) -- set(FFMPEG_INCLUDE_DIRS -- ${LIBDIR}/ffmpeg/include -- ${LIBDIR}/ffmpeg/include/msvc -- ) -- find_package(FFMPEG) -- if(NOT FFMPEG_FOUND) -- message(WARNING "Using HARDCODED ffmpeg locations") -- # MSVC11 FFMPEG libs are newer -- if(MSVC11) -- set(FFMPEG_LIBRARY_VERSION 54) -- set(FFMPEG_LIBRARY_VERSION_AVU 52) -- else() -- set(FFMPEG_LIBRARY_VERSION 53) -- set(FFMPEG_LIBRARY_VERSION_AVU 51) -- endif() -- set(FFMPEG_LIBRARIES -- ${LIBDIR}/ffmpeg/lib/avcodec-${FFMPEG_LIBRARY_VERSION}.lib -- ${LIBDIR}/ffmpeg/lib/avformat-${FFMPEG_LIBRARY_VERSION}.lib -- ${LIBDIR}/ffmpeg/lib/avdevice-${FFMPEG_LIBRARY_VERSION}.lib -- ${LIBDIR}/ffmpeg/lib/avutil-${FFMPEG_LIBRARY_VERSION_AVU}.lib -- ${LIBDIR}/ffmpeg/lib/swscale-2.lib -- ) -+ if(WITH_CODEC_FFMPEG) -+ set(FFMPEG_INCLUDE_DIRS -+ ${LIBDIR}/ffmpeg/include -+ ${LIBDIR}/ffmpeg/include/msvc -+ ) -+ find_package(FFMPEG) -+ if(NOT FFMPEG_FOUND) -+ message(WARNING "Using HARDCODED ffmpeg locations") -+ # MSVC11 FFMPEG libs are newer -+ if(MSVC11) -+ set(FFMPEG_LIBRARY_VERSION 54) -+ set(FFMPEG_LIBRARY_VERSION_AVU 52) -+ else() -+ set(FFMPEG_LIBRARY_VERSION 53) -+ set(FFMPEG_LIBRARY_VERSION_AVU 51) - endif() -+ set(FFMPEG_LIBRARIES -+ ${LIBDIR}/ffmpeg/lib/avcodec-${FFMPEG_LIBRARY_VERSION}.lib -+ ${LIBDIR}/ffmpeg/lib/avformat-${FFMPEG_LIBRARY_VERSION}.lib -+ ${LIBDIR}/ffmpeg/lib/avdevice-${FFMPEG_LIBRARY_VERSION}.lib -+ ${LIBDIR}/ffmpeg/lib/avutil-${FFMPEG_LIBRARY_VERSION_AVU}.lib -+ ${LIBDIR}/ffmpeg/lib/swscale-2.lib -+ ) - endif() -+ endif() - -- if(WITH_IMAGE_OPENEXR) -- set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr) -- set(OPENEXR_VERSION "2.1") -- find_package(OPENEXR REQUIRED) -- if(NOT OPENEXR_FOUND) -- message(WARNING "Using HARDCODED OpenEXR locations") -- set(OPENEXR ${LIBDIR}/openexr) -- set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include) -- set(OPENEXR_INCLUDE_DIRS ${OPENEXR}/include/OpenEXR) -- set(OPENEXR_LIBPATH ${OPENEXR}/lib) -- set(OPENEXR_LIBRARIES -- ${OPENEXR_LIBPATH}/Iex.lib -- ${OPENEXR_LIBPATH}/Half.lib -- ${OPENEXR_LIBPATH}/IlmImf.lib -- ${OPENEXR_LIBPATH}/Imath.lib -- ${OPENEXR_LIBPATH}/IlmThread.lib -- ) -- endif(NOT OPENEXR_FOUND) -- endif() -+ if(WITH_IMAGE_OPENEXR) -+ set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr) -+ set(OPENEXR_VERSION "2.1") -+ find_package(OPENEXR REQUIRED) -+ if(NOT OPENEXR_FOUND) -+ message(WARNING "Using HARDCODED OpenEXR locations") -+ set(OPENEXR ${LIBDIR}/openexr) -+ set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include) -+ set(OPENEXR_INCLUDE_DIRS ${OPENEXR}/include/OpenEXR) -+ set(OPENEXR_LIBPATH ${OPENEXR}/lib) -+ set(OPENEXR_LIBRARIES -+ ${OPENEXR_LIBPATH}/Iex.lib -+ ${OPENEXR_LIBPATH}/Half.lib -+ ${OPENEXR_LIBPATH}/IlmImf.lib -+ ${OPENEXR_LIBPATH}/Imath.lib -+ ${OPENEXR_LIBPATH}/IlmThread.lib -+ ) -+ endif(NOT OPENEXR_FOUND) -+ endif() - -- if(WITH_IMAGE_TIFF) -+ if(WITH_IMAGE_TIFF) - # Try to find tiff first then complain and set static and maybe wrong paths - find_package(TIFF) - if(NOT TIFF_FOUND) -@@ -1203,363 +1280,137 @@ - set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib) - set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include) - endif() -- endif() -- -- if(WITH_JACK) -- set(JACK_INCLUDE_DIRS -- ${LIBDIR}/jack/include/jack -- ${LIBDIR}/jack/include -- ) -- set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib) -- endif() -- -- if(WITH_PYTHON) -- set(PYTHON_VERSION 3.3) # CACHE STRING) -- -- string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION}) -- # Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs -- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib) -- unset(_PYTHON_VERSION_NO_DOTS) -- -- # Shared includes for both vc2008 and vc2010 -- set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION}) -- -- # uncached vars -- set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") -- set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") -- endif() -- -- if(WITH_BOOST) -- if(WITH_CYCLES_OSL) -- set(boost_extra_libs wave) -- endif(WITH_CYCLES_OSL) -- if(WITH_INTERNATIONAL) -- list(APPEND boost_extra_libs locale) -- endif(WITH_INTERNATIONAL) -- find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs}) -- IF(NOT Boost_FOUND) -- message(WARNING "USING HARDCODED boost locations") -- set(BOOST ${LIBDIR}/boost) -- set(BOOST_INCLUDE_DIR ${BOOST}/include) -- if(MSVC12) -- set(BOOST_LIBPATH ${BOOST}/lib) -- set(BOOST_POSTFIX "vc120-mt-s-1_55.lib") -- set(BOOST_DEBUG_POSTFIX "vc120-mt-sgd-1_55.lib") -- elseif(MSVC11) -- set(BOOST_LIBPATH ${BOOST}/lib) -- set(BOOST_POSTFIX "vc110-mt-s-1_53.lib") -- set(BOOST_DEBUG_POSTFIX "vc110-mt-sgd-1_53.lib") -- else() -- set(BOOST_LIBPATH ${BOOST}/lib) -- set(BOOST_POSTFIX "vc90-mt-s-1_49.lib") -- set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_49.lib") -- endif() -- set(BOOST_LIBRARIES -- optimized libboost_date_time-${BOOST_POSTFIX} optimized libboost_filesystem-${BOOST_POSTFIX} -- optimized libboost_regex-${BOOST_POSTFIX} -- optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX} -- debug libboost_date_time-${BOOST_DEBUG_POSTFIX} debug libboost_filesystem-${BOOST_DEBUG_POSTFIX} -- debug libboost_regex-${BOOST_DEBUG_POSTFIX} -- debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX}) -- if(WITH_CYCLES_OSL) -- set(BOOST_LIBRARIES ${BOOST_LIBRARIES} -- optimized libboost_wave-${BOOST_POSTFIX} -- debug libboost_wave-${BOOST_DEBUG_POSTFIX}) -- endif() -- if(WITH_INTERNATIONAL) -- set(BOOST_LIBRARIES ${BOOST_LIBRARIES} -- optimized libboost_locale-${BOOST_POSTFIX} -- debug libboost_locale-${BOOST_DEBUG_POSTFIX}) -- endif() -- else() # we found boost using find_package -- set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) -- set(BOOST_LIBRARIES ${Boost_LIBRARIES}) -- set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS}) -- endif() -- set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") -- endif() -- -- if(WITH_OPENIMAGEIO) -- find_package(OpenImageIO) -- set(OPENIMAGEIO ${LIBDIR}/openimageio) -- set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) -- set(OPENIMAGEIO_LIBRARIES optimized OpenImageIO debug OpenImageIO_d) -- set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) -- set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0") -- endif() -- -- if(WITH_LLVM) -- set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") -- file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_DIRECTORY}/lib/*.lib) -- -- if(EXISTS ${LLVM_DIRECTORY}/debug/lib) -- foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED}) -- get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE) -- list(APPEND LLVM_LIBS optimized ${LIBNAME}) -- endforeach(LLVM_OPTIMIZED_LIB) -- -- file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_DIRECTORY}/debug/lib/*.lib) -- -- foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG}) -- get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE) -- list(APPEND LLVM_LIBS debug ${LIBNAME}) -- endforeach(LLVM_DEBUG_LIB) -- -- set(LLVM_LIBRARY ${LLVM_LIBS}) -- else() -- message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.") -- set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED}) -- endif() -- -- endif() -- -- if(WITH_OPENCOLORIO) -- set(OPENCOLORIO ${LIBDIR}/opencolorio) -- set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include) -- set(OPENCOLORIO_LIBRARIES OpenColorIO) -- set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib) -- set(OPENCOLORIO_DEFINITIONS) -- endif() -- -- -- if(WITH_MOD_CLOTH_ELTOPO) -- set(LAPACK ${LIBDIR}/lapack) -- # set(LAPACK_INCLUDE_DIR ${LAPACK}/include) -- set(LAPACK_LIBPATH ${LAPACK}/lib) -- set(LAPACK_LIBRARIES -- ${LIBDIR}/lapack/lib/libf2c.lib -- ${LIBDIR}/lapack/lib/clapack_nowrap.lib -- ${LIBDIR}/lapack/lib/BLAS_nowrap.lib -- ) -- endif() -- -- # used in many places so include globally, like OpenGL -- blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") + # used in many places so include globally, like OpenGL + blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") - - elseif(CMAKE_COMPILER_IS_GNUCC) - # keep GCC specific stuff here @@ -907,8 +207,6 @@ - set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread") - - add_definitions(-DFREE_WINDOWS64 -DMS_WIN64) -- # Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes -- set(WITH_OPENMP OFF) - endif() - - add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE) @@ -975,7 +273,7 @@ - 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) +- set(FFMPEG_LIBRARIES avcodec-55 avformat-55 avdevice-55 avutil-52 swscale-2) - endif() - set(FFMPEG_LIBPATH ${FFMPEG}/lib) - endif() @@ -987,87 +285,46 @@ - set(OPENEXR_LIBRARIES Half IlmImf Imath IlmThread Iex) - set(OPENEXR_LIBPATH ${OPENEXR}/lib) - endif() -+ endif() - +- - if(WITH_IMAGE_TIFF) - set(TIFF ${LIBDIR}/tiff) - set(TIFF_LIBRARY tiff) - set(TIFF_INCLUDE_DIR ${TIFF}/include) - set(TIFF_LIBPATH ${TIFF}/lib) - endif() -+ if(WITH_JACK) -+ set(JACK_INCLUDE_DIRS -+ ${LIBDIR}/jack/include/jack -+ ${LIBDIR}/jack/include -+ ) -+ set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib) -+ endif() - +- - if(WITH_JACK) - set(JACK ${LIBDIR}/jack) - set(JACK_INCLUDE_DIRS ${JACK}/include/jack ${JACK}/include) - set(JACK_LIBRARIES jack) - set(JACK_LIBPATH ${JACK}/lib) -+ if(WITH_PYTHON) -+ set(PYTHON_VERSION 3.4) # CACHE STRING) - +- - # TODO, gives linking errors, force off - set(WITH_JACK OFF) - endif() -+ string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION}) -+ # Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs -+ set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib) -+ unset(_PYTHON_VERSION_NO_DOTS) - +- - if(WITH_PYTHON) - # normally cached but not since we include them with blender - set(PYTHON_VERSION 3.3) # CACHE STRING) - set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}") # CACHE PATH) - set(PYTHON_LIBRARY "${LIBDIR}/python/lib/python33mw.lib") # CACHE FILEPATH) -+ # Shared includes for both vc2008 and vc2010 -+ set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION}) - +- - # uncached vars - set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") - set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") - endif() -+ # uncached vars -+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") -+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") -+ endif() - +- - if(WITH_BOOST) -+ if(WITH_BOOST) -+ if(WITH_CYCLES_OSL) -+ set(boost_extra_libs wave) -+ endif(WITH_CYCLES_OSL) -+ if(WITH_INTERNATIONAL) -+ list(APPEND boost_extra_libs locale) -+ endif(WITH_INTERNATIONAL) -+ find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs}) -+ IF(NOT Boost_FOUND) -+ message(WARNING "USING HARDCODED boost locations") - set(BOOST ${LIBDIR}/boost) - set(BOOST_INCLUDE_DIR ${BOOST}/include) +- set(BOOST ${LIBDIR}/boost) +- set(BOOST_INCLUDE_DIR ${BOOST}/include) - if(WITH_MINGW64) - set(BOOST_POSTFIX "mgw47-mt-s-1_49") - set(BOOST_DEBUG_POSTFIX "mgw47-mt-sd-1_49") -+ if(MSVC12) -+ set(BOOST_LIBPATH ${BOOST}/lib) -+ set(BOOST_POSTFIX "vc120-mt-s-1_55.lib") -+ set(BOOST_DEBUG_POSTFIX "vc120-mt-sgd-1_55.lib") -+ elseif(MSVC11) -+ set(BOOST_LIBPATH ${BOOST}/lib) -+ set(BOOST_POSTFIX "vc110-mt-s-1_53.lib") -+ set(BOOST_DEBUG_POSTFIX "vc110-mt-sgd-1_53.lib") - else() +- else() - set(BOOST_POSTFIX "mgw46-mt-s-1_49") - set(BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_49") -+ set(BOOST_LIBPATH ${BOOST}/lib) -+ set(BOOST_POSTFIX "vc90-mt-s-1_49.lib") -+ set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_49.lib") - endif() - set(BOOST_LIBRARIES +- endif() +- set(BOOST_LIBRARIES - optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${BOOST_POSTFIX} - boost_regex-${BOOST_POSTFIX} - boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX} @@ -1075,27 +332,15 @@ - boost_regex-${BOOST_DEBUG_POSTFIX} - boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX}) - if(WITH_INTERNATIONAL) -+ optimized libboost_date_time-${BOOST_POSTFIX} optimized libboost_filesystem-${BOOST_POSTFIX} -+ optimized libboost_regex-${BOOST_POSTFIX} -+ optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX} -+ debug libboost_date_time-${BOOST_DEBUG_POSTFIX} debug libboost_filesystem-${BOOST_DEBUG_POSTFIX} -+ debug libboost_regex-${BOOST_DEBUG_POSTFIX} -+ debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX}) -+ if(WITH_CYCLES_OSL) - set(BOOST_LIBRARIES ${BOOST_LIBRARIES} +- set(BOOST_LIBRARIES ${BOOST_LIBRARIES} - optimized boost_locale-${BOOST_POSTFIX} - debug boost_locale-${BOOST_DEBUG_POSTFIX}) -+ optimized libboost_wave-${BOOST_POSTFIX} -+ debug libboost_wave-${BOOST_DEBUG_POSTFIX}) - endif() +- endif() - if(WITH_CYCLES_OSL) -+ if(WITH_INTERNATIONAL) - set(BOOST_LIBRARIES ${BOOST_LIBRARIES} +- set(BOOST_LIBRARIES ${BOOST_LIBRARIES} - optimized boost_wave-${BOOST_POSTFIX} - debug boost_wave-${BOOST_DEBUG_POSTFIX}) -+ optimized libboost_locale-${BOOST_POSTFIX} -+ debug libboost_locale-${BOOST_DEBUG_POSTFIX}) - endif() +- endif() - set(BOOST_LIBPATH ${BOOST}/lib) - set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ") - endif() @@ -1106,14 +351,8 @@ - set(OPENIMAGEIO_LIBRARIES OpenImageIO) - set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) - set(OPENIMAGEIO_DEFINITIONS "") -+ else() # we found boost using find_package -+ set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) -+ set(BOOST_LIBRARIES ${Boost_LIBRARIES}) -+ set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS}) - endif() -+ set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") -+ endif() - +- endif() +- - if(WITH_LLVM) - set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") - set(LLVM_LIBPATH ${LLVM_DIRECTORY}/lib) @@ -1139,38 +378,8 @@ - LLVMipo LLVMCore) - # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc - set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -limagehlp") -+ if(WITH_OPENIMAGEIO) -+ find_package(OpenImageIO) -+ set(OPENIMAGEIO ${LIBDIR}/openimageio) -+ set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) -+ set(OPENIMAGEIO_LIBRARIES optimized OpenImageIO debug OpenImageIO_d) -+ set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) -+ set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0") -+ endif() -+ -+ if(WITH_LLVM) -+ set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") -+ file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_DIRECTORY}/lib/*.lib) -+ -+ if(EXISTS ${LLVM_DIRECTORY}/debug/lib) -+ foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED}) -+ get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE) -+ list(APPEND LLVM_LIBS optimized ${LIBNAME}) -+ endforeach(LLVM_OPTIMIZED_LIB) -+ -+ file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_DIRECTORY}/debug/lib/*.lib) -+ -+ foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG}) -+ get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE) -+ list(APPEND LLVM_LIBS debug ${LIBNAME}) -+ endforeach(LLVM_DEBUG_LIB) -+ -+ set(LLVM_LIBRARY ${LLVM_LIBS}) -+ else() -+ message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.") -+ set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED}) - endif() - +- endif() +- - if(WITH_OPENCOLORIO) - set(OPENCOLORIO ${LIBDIR}/opencolorio) - set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include) @@ -1180,52 +389,12 @@ - endif() - - set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152") -+ endif() - +- - ## DISABLE - causes linking errors - ## for re-distribution, so users dont need mingw installed - # set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++") -+ if(WITH_OPENCOLORIO) -+ set(OPENCOLORIO ${LIBDIR}/opencolorio) -+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include) -+ set(OPENCOLORIO_LIBRARIES OpenColorIO) -+ set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib) -+ set(OPENCOLORIO_DEFINITIONS) -+ endif() +- +- endif() + + # Things common to both mingw and MSVC should go here -+ if(WITH_MOD_CLOTH_ELTOPO) -+ set(LAPACK ${LIBDIR}/lapack) -+ # set(LAPACK_INCLUDE_DIR ${LAPACK}/include) -+ set(LAPACK_LIBPATH ${LAPACK}/lib) -+ set(LAPACK_LIBRARIES -+ ${LIBDIR}/lapack/lib/libf2c.lib -+ ${LIBDIR}/lapack/lib/clapack_nowrap.lib -+ ${LIBDIR}/lapack/lib/BLAS_nowrap.lib -+ ) - endif() -- -- # Things common to both mingw and MSVC should go here -+ -+ # used in many places so include globally, like OpenGL -+ blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}") - - set(WINTAB_INC ${LIBDIR}/wintab/include) - -@@ -2236,7 +2087,7 @@ - "Python.h for python version \"${PYTHON_VERSION}\"") - endif() - -- if(WIN32) -+ if(WIN32 AND NOT MINGW) - # pass, we have this in an archive to extract - elseif(WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) - # set but invalid -@@ -2283,7 +2134,7 @@ - endif() - endif() - -- if(WIN32 OR APPLE) -+ if((WIN32 OR APPLE) AND NOT MINGW) - # pass, we have this in lib/python/site-packages - elseif(WITH_PYTHON_INSTALL_REQUESTS) - if(NOT EXISTS ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/requests)