[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56799] trunk/blender: CMake build system update

Jürgen Herrmann shadowrom at me.com
Tue May 14 18:16:26 CEST 2013


Revision: 56799
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56799
Author:   shadowrom
Date:     2013-05-14 16:16:25 +0000 (Tue, 14 May 2013)
Log Message:
-----------
CMake build system update
- Extending CMakeLists.txt to support builds with VC2012.
- Fix some typo in CMakeLists.txt
- Introduces experimental WITH_AVX_CPU to build with /arch:AVX (VC11 only)

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/source/creator/CMakeLists.txt

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2013-05-14 15:33:59 UTC (rev 56798)
+++ trunk/blender/CMakeLists.txt	2013-05-14 16:16:25 UTC (rev 56799)
@@ -157,7 +157,12 @@
 option(WITH_BOOL_COMPAT "Continue defining \"TRUE\" and \"FALSE\" until these can be replaced with \"true\" and \"false\" from stdbool.h" ON)
 mark_as_advanced(WITH_BOOL_COMPAT)
 
+if(MSVC11)
+	option(WITH_AVX_CPU "Warning: experimental build for newer CPUs with AVX extensions. Doesn't work on older CPUs!" OFF)
+	mark_as_advanced(WITH_AVX_CPU)
+endif()
 
+
 # (unix defaults to OpenMP On)
 if((UNIX AND NOT APPLE) OR (MINGW))
 	set(PLATFORM_DEFAULT ON)
@@ -944,16 +949,27 @@
 			WITH_MINGW64)
 		
 		if(WITH_MINGW64)
-			message("Compiling for 64 bit with MinGW-w64.")
+			message(STATUS "Compiling for 64 bit with MinGW-w64.")
 			set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64)
 		endif()
 	else()
-		set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows)
-
 		# Setup 64bit and 64bit windows systems
 		if(CMAKE_CL_64)
-			message("64 bit compiler detected.")
-			set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64)
+			message(STATUS "64 bit compiler detected.")
+			if(MSVC11)
+				message(STATUS "Visual C++ 2012 detected.")
+				set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64_vc11)
+			else()
+				set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64)
+			endif()
+		else()
+		# Setup 32bit windows systems
+			if(MSVC11)
+				message(STATUS "Visual C++ 2012 detected.")
+				set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows_vc11)
+			else()
+				set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows)
+			endif()
 		endif()
 	endif()
 		
@@ -1017,8 +1033,22 @@
 	if(MSVC)
 		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()
+
 		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(MSVC11)
+			add_definitions(/D_ALLOW_KEYWORD_MACROS)
+			# Experimental feature compile with /arch:AVX MSVC11 ONLY
+			if(WITH_AVX_CPU)
+				add_definitions(/arch:AVX)
+			endif()
+		endif()
+
 		set(CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE)
 		set(CMAKE_C_FLAGS   "/nologo /J /Gd"       CACHE STRING "MSVC MT C++ flags " FORCE)
 
@@ -1124,13 +1154,24 @@
 				${LIBDIR}/ffmpeg/include
 				${LIBDIR}/ffmpeg/include/msvc
 			)
-			set(FFMPEG_LIBRARIES
-				${LIBDIR}/ffmpeg/lib/avcodec-53.lib
-				${LIBDIR}/ffmpeg/lib/avformat-53.lib
-				${LIBDIR}/ffmpeg/lib/avdevice-53.lib
-				${LIBDIR}/ffmpeg/lib/avutil-51.lib
-				${LIBDIR}/ffmpeg/lib/swscale-2.lib
-			)
+			# MSVC11 FFMPEG libs are newer
+			if(MSVC11)
+				set(FFMPEG_LIBRARIES
+					${LIBDIR}/ffmpeg/lib/avcodec-54.lib
+					${LIBDIR}/ffmpeg/lib/avformat-54.lib
+					${LIBDIR}/ffmpeg/lib/avdevice-54.lib
+					${LIBDIR}/ffmpeg/lib/avutil-52.lib
+					${LIBDIR}/ffmpeg/lib/swscale-2.lib
+				)
+			else()
+				set(FFMPEG_LIBRARIES
+					${LIBDIR}/ffmpeg/lib/avcodec-53.lib
+					${LIBDIR}/ffmpeg/lib/avformat-53.lib
+					${LIBDIR}/ffmpeg/lib/avdevice-53.lib
+					${LIBDIR}/ffmpeg/lib/avutil-51.lib
+					${LIBDIR}/ffmpeg/lib/swscale-2.lib
+				)
+			endif()
 		endif()
 
 		if(WITH_IMAGE_OPENEXR)
@@ -1175,7 +1216,7 @@
 			# set(PYTHON_LIBRARY ${PYTHON}/lib/python${_PYTHON_VERSION_NO_DOTS}.lib) #CACHE FILEPATH
 			unset(_PYTHON_VERSION_NO_DOTS)
 
-			#Shared includes for both vc2008 and vc2010
+			# Shared includes for both vc2008 and vc2010
 			set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
 
 			# uncached vars
@@ -1186,7 +1227,11 @@
 		if(WITH_BOOST)
 			set(BOOST ${LIBDIR}/boost)
 			set(BOOST_INCLUDE_DIR ${BOOST}/include)
-			if(MSVC10)
+			if(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")
+			elseif(MSVC10)
 				set(BOOST_LIBPATH ${BOOST}/vc2010/lib)
 				set(BOOST_POSTFIX "vc100-mt-s-1_49.lib")
 				set(BOOST_DEBUG_POSTFIX "vc100-mt-sgd-1_49.lib")
@@ -1236,7 +1281,6 @@
 			set(OPENCOLORIO_DEFINITIONS)
 		endif()
 
-
 		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
@@ -1261,7 +1305,7 @@
 			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
+			# Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes
 			set(WITH_OPENMP OFF)
 		endif()
 
@@ -1285,7 +1329,7 @@
 		set(ZLIB_LIBPATH ${ZLIB}/lib)
 		set(ZLIB_LIBRARIES z)
 
-		#comes with own pthread library
+		# comes with own pthread library
 		if(NOT WITH_MINGW64)
 			set(PTHREADS ${LIBDIR}/pthreads)
 			#set(PTHREADS_INCLUDE_DIRS ${PTHREADS}/include)
@@ -1408,7 +1452,7 @@
 		if(WITH_LLVM)
 			set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH	"Path to the LLVM installation")
 			set(LLVM_LIB_DIR ${LLVM_DIRECTORY}/lib)
-			#Explicitly set llvm lib order.
+			# Explicitly set llvm lib order.
 			#---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! ---------
 			set(LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive
 				LLVMAsmParser LLVMAsmPrinter
@@ -1428,7 +1472,7 @@
 				LLVMX86Disassembler LLVMX86Info
 				LLVMX86Utils LLVMipa
 				LLVMipo LLVMCore)
-			#imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc
+			# imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc
 			set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -limagehlp")
 		endif()
 		
@@ -1571,7 +1615,7 @@
 			set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QTKit")
 			if(CMAKE_OSX_ARCHITECTURES MATCHES i386)
 				set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
-				#libSDL still needs 32bit carbon quicktime
+				# libSDL still needs 32bit carbon quicktime
 			endif()
 		elseif(WITH_CODEC_QUICKTIME)
 			set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework QuickTime")
@@ -1622,7 +1666,7 @@
 
 		set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
 		set(OPENCOLLADA_LIBRARIES "OpenCOLLADASaxFrameworkLoader -lOpenCOLLADAFramework -lOpenCOLLADABaseUtils -lOpenCOLLADAStreamWriter -lMathMLSolver -lGeneratedSaxParser -lUTF -lxml2 -lbuffer -lftoa")
-		#pcre is bundled with openCollada
+		# pcre is bundled with openCollada
 		#set(PCRE ${LIBDIR}/pcre)
 		#set(PCRE_LIBPATH ${PCRE}/lib)
 		set(PCRE_LIBRARIES pcre)

Modified: trunk/blender/source/creator/CMakeLists.txt
===================================================================
--- trunk/blender/source/creator/CMakeLists.txt	2013-05-14 15:33:59 UTC (rev 56798)
+++ trunk/blender/source/creator/CMakeLists.txt	2013-05-14 16:16:25 UTC (rev 56799)
@@ -587,15 +587,29 @@
 	endif()
 
 	if(WITH_CODEC_FFMPEG)
-		install(
-			FILES
-				${LIBDIR}/ffmpeg/lib/avcodec-53.dll
-				${LIBDIR}/ffmpeg/lib/avformat-53.dll
-				${LIBDIR}/ffmpeg/lib/avdevice-53.dll
-				${LIBDIR}/ffmpeg/lib/avutil-51.dll
-				${LIBDIR}/ffmpeg/lib/swscale-2.dll
-			DESTINATION ${TARGETDIR}
-		)
+		if(MSVC11)
+			install(
+				FILES
+					${LIBDIR}/ffmpeg/lib/avcodec-54.dll
+					${LIBDIR}/ffmpeg/lib/avformat-54.dll
+					${LIBDIR}/ffmpeg/lib/avdevice-54.dll
+					${LIBDIR}/ffmpeg/lib/avutil-52.dll
+					${LIBDIR}/ffmpeg/lib/avfilter-3.dll
+					${LIBDIR}/ffmpeg/lib/swresample-0.dll
+					${LIBDIR}/ffmpeg/lib/swscale-2.dll
+				DESTINATION ${TARGETDIR}
+			)
+		else()
+			install(
+				FILES
+					${LIBDIR}/ffmpeg/lib/avcodec-53.dll
+					${LIBDIR}/ffmpeg/lib/avformat-53.dll
+					${LIBDIR}/ffmpeg/lib/avdevice-53.dll
+					${LIBDIR}/ffmpeg/lib/avutil-51.dll
+					${LIBDIR}/ffmpeg/lib/swscale-2.dll
+				DESTINATION ${TARGETDIR}
+			)
+		endif()
 		if(WITH_MINGW64)
 		install(
 			FILES




More information about the Bf-blender-cvs mailing list