[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43012] trunk/blender: Patch is partially made by Pelle Johnsen.

Alexander Kuznetsov kuzsasha at gmail.com
Fri Dec 30 23:10:59 CET 2011


Revision: 43012
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43012
Author:   alexk
Date:     2011-12-30 22:10:48 +0000 (Fri, 30 Dec 2011)
Log Message:
-----------
Patch is partially made by Pelle Johnsen. Thanks!
This patch enables search for specific libraries for vc2010 using "set_lib_path" macro
If *x* library or path exists in lib/win___/vc2010/*x* , vc2010 will use it. If not, compiler will use standard libraries.
It can be easily extended to gcc.

The function is enabled for:
openCollada
openExr
Python
openImageIO

The different libraries are needed for different compilers because C++ was used. There is no standard for lib's C++ structure/functions' names.

Actual libs will follow

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

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-12-30 21:29:02 UTC (rev 43011)
+++ trunk/blender/CMakeLists.txt	2011-12-30 22:10:48 UTC (rev 43012)
@@ -765,22 +765,27 @@
 				${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
 				${LIBDIR}/opencollada/include/GeneratedSaxParser/include
 			)
+			
+			set_lib_path(OPENCOLLADA_LIBPATH "opencollada/lib")
 
 			set(OPENCOLLADA_LIBRARIES
-				${LIBDIR}/opencollada/lib/OpenCOLLADASaxFrameworkLoader.lib
-				${LIBDIR}/opencollada/lib/OpenCOLLADAFramework.lib
-				${LIBDIR}/opencollada/lib/OpenCOLLADABaseUtils.lib
-				${LIBDIR}/opencollada/lib/OpenCOLLADAStreamWriter.lib
-				${LIBDIR}/opencollada/lib/MathMLSolver.lib
-				${LIBDIR}/opencollada/lib/GeneratedSaxParser.lib
-				${LIBDIR}/opencollada/lib/xml2.lib
-				${LIBDIR}/opencollada/lib/buffer.lib
-				${LIBDIR}/opencollada/lib/ftoa.lib
-				${LIBDIR}/opencollada/lib/UTF.lib
+				${OPENCOLLADA_LIBPATH}/OpenCOLLADASaxFrameworkLoader.lib
+				${OPENCOLLADA_LIBPATH}/OpenCOLLADAFramework.lib
+				${OPENCOLLADA_LIBPATH}/OpenCOLLADABaseUtils.lib
+				${OPENCOLLADA_LIBPATH}/OpenCOLLADAStreamWriter.lib
+				${OPENCOLLADA_LIBPATH}/MathMLSolver.lib
+				${OPENCOLLADA_LIBPATH}/GeneratedSaxParser.lib
+				${OPENCOLLADA_LIBPATH}/xml2.lib
+				${OPENCOLLADA_LIBPATH}/buffer.lib
+				${OPENCOLLADA_LIBPATH}/ftoa.lib
+				${OPENCOLLADA_LIBPATH}/UTF.lib
 			)
 			set(PCRE_LIBRARIES
-				${LIBDIR}/opencollada/lib/pcre.lib
+				${OPENCOLLADA_LIBPATH}/pcre.lib
 			)
+			
+			unset(OPENCOLLADA_LIBPATH)
+			
 		endif()
 
 		if(WITH_CODEC_FFMPEG)
@@ -798,18 +803,8 @@
 		endif()
 
 		if(WITH_IMAGE_OPENEXR)
-			if(MSVC90)
-				set(MSVC_LIB _vs2008)
-				set(MSVC_INC)
-			elseif(MSVC10)
-				set(MSVC_LIB _vs2010)
-				set(MSVC_INC _vs2010)
-			else()
-				set(MSVC_LIB msvc)
-				set(MSVC_INC)
-			endif()
-			set(OPENEXR ${LIBDIR}/openexr)
-			set(OPENEXR_LIBPATH ${OPENEXR}/lib${MSVC_LIB})
+			set_lib_path(OPENEXR "openexr")
+			set_lib_path(OPENEXR_LIBPATH "openexr/lib")
 			set(OPENEXR_LIBRARIES
 				${OPENEXR_LIBPATH}/Iex.lib
 				${OPENEXR_LIBPATH}/Half.lib
@@ -817,7 +812,7 @@
 				${OPENEXR_LIBPATH}/Imath.lib
 				${OPENEXR_LIBPATH}/IlmThread.lib
 			)
-			set(OPENEXR_INCUDE ${OPENEXR}/include${MSVC_INC})
+			set_lib_path(OPENEXR_INCUDE "openexr/include")
 			set(OPENEXR_INCLUDE_DIRS
 				${OPENEXR_INCUDE}
 				${OPENEXR_INCUDE}/IlmImf
@@ -844,9 +839,9 @@
 		if(WITH_PYTHON)
 			# normally cached but not since we include them with blender
 			set(PYTHON_VERSION 3.2) # CACHE STRING)
-			set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}") # CACHE PATH)
-			set(PYTHON_LIBRARY "${LIBDIR}/python/lib/python32.lib") #CACHE FILEPATH)
-
+			set_lib_path(PYTHON_INCLUDE_DIR "python/include/python${PYTHON_VERSION}")
+			set_lib_path(PYTHON_LIBRARY "python/lib/python32.lib") #CACHE FILEPATH)
+			
 			# uncached vars
 			set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
 			set(PYTHON_LIBRARIES  "${PYTHON_LIBRARY}")
@@ -879,7 +874,7 @@
 			set(OPENIMAGEIO ${LIBDIR}/openimageio)
 			set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
 			set(OPENIMAGEIO_LIBRARIES OpenImageIO)
-			set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
+			set_lib_path(OPENIMAGEIO_LIBPATH "openimageio/lib")
 			set(OPENIMAGEIO_DEFINITIONS)
 		endif()
 
@@ -1431,11 +1426,9 @@
 if(MSVC10)
 	if(WITH_IMAGE_OPENEXR)
 		message(WARNING "MSVC 2010 does not support OpenEXR, disabling WITH_IMAGE_OPENEXR. To enable support use Use MSVC 2008")
-		set(WITH_IMAGE_OPENEXR OFF)
 	endif()
 	if(WITH_OPENCOLLADA)
 		message(WARNING "MSVC 2010 does not support OpenCollada, disabling WITH_OPENCOLLADA. To enable support use Use MSVC 2008")
-		set(WITH_OPENCOLLADA OFF)
 	endif()
 endif()
 

Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake	2011-12-30 21:29:02 UTC (rev 43011)
+++ trunk/blender/build_files/cmake/macros.cmake	2011-12-30 22:10:48 UTC (rev 43012)
@@ -665,3 +665,16 @@
 	endif()
 endfunction()
 
+macro(set_lib_path
+		lvar
+		lproj)
+
+	
+	if(MSVC10 AND EXISTS ${LIBDIR}/vc2010/${lproj})
+		set(${lvar} ${LIBDIR}/vc2010/${lproj})
+	else()
+		set(${lvar} ${LIBDIR}/${lproj})
+	endif()
+
+
+endmacro()
\ No newline at end of file

Modified: trunk/blender/source/creator/CMakeLists.txt
===================================================================
--- trunk/blender/source/creator/CMakeLists.txt	2011-12-30 21:29:02 UTC (rev 43011)
+++ trunk/blender/source/creator/CMakeLists.txt	2011-12-30 22:10:48 UTC (rev 43012)
@@ -437,15 +437,15 @@
 	# )
 
 	if(WITH_PYTHON)
-
+		set_lib_path(PYLIB "python/lib")
 		install(
-			FILES ${LIBDIR}/python/lib/python32.dll
+			FILES ${PYLIB}/python32.dll
 			DESTINATION ${TARGETDIR}
 			CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
 		)
 
 		install(
-			FILES ${LIBDIR}/python/lib/python32_d.dll
+			FILES ${PYLIB}/python32_d.dll
 			DESTINATION ${TARGETDIR}
 			CONFIGURATIONS Debug
 		)
@@ -558,9 +558,10 @@
 	)	
 
 	if(WITH_OPENIMAGEIO)
+		set_lib_path(OIIOBIN "openimageio/bin")
 		install(
 			FILES
-				${LIBDIR}/openimageio/bin/OpenImageIO.dll
+				${OIIOBIN}/OpenImageIO.dll
 			DESTINATION ${TARGETDIR}
 		)
 	endif()




More information about the Bf-blender-cvs mailing list