[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35381] trunk/blender: use install target for CMake Windows (msvc and mingw), for MinGW you now need to run 'make install', for MSVC the 'INSTALL' target needs to be enabled in the project file

Campbell Barton ideasman42 at gmail.com
Mon Mar 7 04:33:33 CET 2011


Revision: 35381
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35381
Author:   campbellbarton
Date:     2011-03-07 03:33:33 +0000 (Mon, 07 Mar 2011)
Log Message:
-----------
use install target for CMake Windows (msvc and mingw), for MinGW you now need to run 'make install', for MSVC the 'INSTALL' target needs to be enabled in the project file

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

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-03-07 03:12:30 UTC (rev 35380)
+++ trunk/blender/CMakeLists.txt	2011-03-07 03:33:33 UTC (rev 35381)
@@ -718,13 +718,12 @@
 			set(WITH_JACK OFF)
 		endif()
 
-		# TODO: mingw move to Python 3.2
 		if(WITH_PYTHON)
 			set(PYTHON ${LIBDIR}/python)
-			set(PYTHON_VERSION 3.1)
+			set(PYTHON_VERSION 3.2)
 			set(PYTHON_INCLUDE_DIRS "${PYTHON}/include/python${PYTHON_VERSION}")
 			# set(PYTHON_BINARY python) # not used yet
-			set(PYTHON_LIBRARY python31mw)
+			set(PYTHON_LIBRARY python32mw)
 			set(PYTHON_LIBPATH ${PYTHON}/lib)
 		endif()
 

Modified: trunk/blender/source/creator/CMakeLists.txt
===================================================================
--- trunk/blender/source/creator/CMakeLists.txt	2011-03-07 03:12:30 UTC (rev 35380)
+++ trunk/blender/source/creator/CMakeLists.txt	2011-03-07 03:33:33 UTC (rev 35381)
@@ -181,8 +181,14 @@
 
 # Post build steps for bundling/packaging.
 
-set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR})
 
+if(MSVC)
+	# ${CMAKE_CFG_INTDIR} should replace \${BUILD_TYPE} when using add_command
+	set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
+else()
+	set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH})
+endif()
+
 if(WITH_INSTALL)
 
 	if(UNIX)
@@ -320,147 +326,178 @@
 			endif()
 		endif()
 	elseif(WIN32)
-		# notice 'xcopy /Y /H' on .bfont.ttf, this is needed when building over samba
-		add_custom_command(TARGET blender
-			POST_BUILD
-			MAIN_DEPENDENCY blender
-			COMMAND if not exist \"${TARGETDIR}\\${BLENDER_VERSION}\" mkdir \"${TARGETDIR}\\${BLENDER_VERSION}\"
-			COMMAND if not exist \"${TARGETDIR}\\${BLENDER_VERSION}\\scripts\" mkdir \"${TARGETDIR}\\${BLENDER_VERSION}\\scripts\"
-			COMMAND if not exist \"${TARGETDIR}\\${BLENDER_VERSION}\\config\" mkdir \"${TARGETDIR}\\${BLENDER_VERSION}\\config\"
-			COMMAND if not exist \"${TARGETDIR}\\plugins\" mkdir \"${TARGETDIR}\\plugins\"
-			COMMAND xcopy /Y /H \"${CMAKE_SOURCE_DIR}\\release\\bin\\.blender\\.bfont.ttf\" \"${TARGETDIR}\\${BLENDER_VERSION}\\config\\\"
-			COMMAND xcopy /E /Y \"${CMAKE_SOURCE_DIR}\\release\\scripts\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\scripts\\\"
-			COMMAND xcopy /E /Y \"${CMAKE_SOURCE_DIR}\\release\\plugins\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\plugins\\\"
-			COMMAND copy /Y \"${CMAKE_SOURCE_DIR}\\release\\text\\*.*\" \"${TARGETDIR}\\\"
+
+		set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
+
+		install(  # same as linux!, deduplicate
+			CODE
+			"file(REMOVE_RECURSE ${TARGETDIR_VER})"
 		)
-	
+
+		install(  # same as linux!, deduplicate
+			DIRECTORY ${CMAKE_SOURCE_DIR}/release/text/
+			DESTINATION ${TARGETDIR_VER}/../
+			PATTERN ".svn" EXCLUDE
+		)
+
+		install(  # same as linux!, deduplicate
+			FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
+			DESTINATION ${TARGETDIR_VER}/config
+		)
+
+		if(WITH_INTERNATIONAL) # same as linux!, deduplicate
+			install(
+				FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.Blanguages
+				DESTINATION ${TARGETDIR_VER}/config
+			)
+			install(
+				DIRECTORY ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
+				DESTINATION ${TARGETDIR_VER}/datafiles/
+				PATTERN ".svn" EXCLUDE
+			)
+
+			if(NOT CMAKE_CL_64)
+				install(
+					FILES ${LIBDIR}/iconv/lib/iconv.dll
+					DESTINATION ${TARGETDIR}/
+				)
+			endif()
+		endif()
+
+		install( # same as linux!, deduplicate
+			DIRECTORY ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale/
+			DESTINATION ${CMAKE_INSTALL_PREFIX}/share/blender/${BLENDER_VERSION}/datafiles/locale
+			PATTERN ".svn" EXCLUDE
+		)
+
+		install( # same as linux!, deduplicate
+			DIRECTORY ${CMAKE_SOURCE_DIR}/release/text/
+			DESTINATION ${TARGETDIR_VER}/../
+			PATTERN ".svn" EXCLUDE
+		)
+
+		install(  # TODO, copy to linux
+			DIRECTORY ${CMAKE_SOURCE_DIR}/release/plugins
+			DESTINATION ${TARGETDIR_VER}/
+			PATTERN ".svn" EXCLUDE
+		)
+
+		if(WITH_PYTHON)
+			# install(CODE "message(\"copying blender scripts...\")")
+			install(  # same as linux!, deduplicate
+				DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts
+				DESTINATION ${TARGETDIR_VER}/
+				PATTERN ".svn" EXCLUDE
+				PATTERN "__pycache__" EXCLUDE
+			)
+
+			# TODO, multiple targets?
+			install(FILES ${LIBDIR}/python/lib/python32.dll DESTINATION ${TARGETDIR}/ CONFIGURATIONS Release)
+			install(FILES ${LIBDIR}/python/lib/python32.dll DESTINATION ${TARGETDIR}/ CONFIGURATIONS RelWithDebInfo)
+			install(FILES ${LIBDIR}/python/lib/python32.dll DESTINATION ${TARGETDIR}/ CONFIGURATIONS MinSizeRel)
+
+			install(
+				FILES ${LIBDIR}/python/lib/python32_d.dll
+				DESTINATION ${TARGETDIR}/
+				CONFIGURATIONS Debug
+			)
+
+			if(WITH_PYTHON_INSTALL)
+				#~ # note, as far as python is concerned 'RelWithDebInfo' is not debug since its without debug flags.
+				# install(CODE "message(\"copying a subset of the systems python...\")")
+
+				install(
+					CODE
+					"execute_process(COMMAND ${CMAKE_COMMAND}
+					-E make_directory ${TARGETDIR_VER}/python/lib/)"
+				)
+
+				install(
+					CODE
+					"
+					if(BUILD_TYPE MATCHES \"Debug\")
+						set(PYBUNDLE \"python32_d.tar.gz\")
+					else()
+						set(PYBUNDLE \"python32.tar.gz\")
+					endif()
+
+					execute_process(COMMAND ${CMAKE_COMMAND}
+						-E chdir ${TARGETDIR_VER}/python/lib/
+						${CMAKE_COMMAND} -E tar xzfv ${LIBDIR}/release/\${PYBUNDLE})
+					"
+				)
+
+				# TODO, debug
+
+				# doesnt work, todo
+				# install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
+			endif()
+		endif()
+
 		if(CMAKE_CL_64)
 			# gettext and png are statically linked on win64
-			add_custom_command(TARGET blender
-				POST_BUILD
-				MAIN_DEPENDENCY blender
-				COMMAND copy /Y \"${LIBDIR}\\zlib\\lib\\zlib.dll\" \"${TARGETDIR}\\\"
+			install(
+				FILES ${LIBDIR}/zlib/lib/zlib.dll
+				DESTINATION ${TARGETDIR}/
 			)
 		else()
-			add_custom_command(TARGET blender
-				POST_BUILD
-				MAIN_DEPENDENCY blender
-				COMMAND copy /Y \"${LIBDIR}\\gettext\\lib\\gnu_gettext.dll\" \"${TARGETDIR}\\\"
-				COMMAND copy /Y \"${LIBDIR}\\png\\lib\\libpng.dll\" \"${TARGETDIR}\\\"
-				COMMAND copy /Y \"${LIBDIR}\\zlib\\lib\\zlib.dll\" \"${TARGETDIR}\\\"
+			install(
+				FILES
+				${LIBDIR}/gettext/lib/gnu_gettext.dll # TODO INTERNATIONAL ONLY!
+				${LIBDIR}/png/lib/libpng.dll
+				${LIBDIR}/zlib/lib/zlib.dll
+				DESTINATION ${TARGETDIR}/
 			)
 		endif()
-		
-		
+
 		if(MSVC)
-			add_custom_command(TARGET blender
-				POST_BUILD
-				MAIN_DEPENDENCY blender
-				COMMAND copy /Y \"${LIBDIR}\\pthreads\\lib\\pthreadVC2.dll\" \"${TARGETDIR}\\\"
+			install(
+				FILES ${LIBDIR}/pthreads/lib/pthreadVC2.dll
+				DESTINATION ${TARGETDIR}/
 			)
 		else()
-			add_custom_command(TARGET blender
-				POST_BUILD
-				MAIN_DEPENDENCY blender
-				COMMAND copy /Y \"${LIBDIR}\\pthreads\\lib\\pthreadGC2.dll\" \"${TARGETDIR}\\\"
+			install(
+				FILES ${LIBDIR}/pthreads/lib/pthreadGC2.dll
+				DESTINATION ${TARGETDIR}/
 			)
 		endif()
 
-		if(WITH_PYTHON)
-			# note, as far as python is concerned 'RelWithDebInfo' is not debug since its without debug flags.
-			if(NOT CMAKE_BUILD_TYPE) # hack: with multi-configuration generator this is "", so for now copy both python32.dll/zip and python32_d.dll/zip
-				add_custom_command(TARGET blender
-					POST_BUILD
-					MAIN_DEPENDENCY blender
-					COMMAND if not exist \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\" mkdir \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\"
-					COMMAND if \"$(ConfigurationName)\" == \"\" copy /Y \"${LIBDIR}\\python\\lib\\python32.dll\" \"${TARGETDIR}\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"\" xcopy /E /Y \"${LIBDIR}\\release\\python32\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"Debug\" copy /Y \"${LIBDIR}\\python\\lib\\python32_d.dll\" \"${TARGETDIR}\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"Debug\" xcopy /E /Y \"${LIBDIR}\\release\\python32_d\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"RelWithDebInfo\" copy /Y \"${LIBDIR}\\python\\lib\\python32.dll\" \"${TARGETDIR}\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"RelWithDebInfo\" xcopy /E /Y \"${LIBDIR}\\release\\python32\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"Release\" copy /Y \"${LIBDIR}\\python\\lib\\python32.dll\" \"${TARGETDIR}\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"Release\" xcopy /E /Y \"${LIBDIR}\\release\\python32\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"MinSizeRel\" copy /Y \"${LIBDIR}\\python\\lib\\python32.dll\" \"${TARGETDIR}\\\"
-					COMMAND if \"$(ConfigurationName)\" == \"MinSizeRel\" xcopy /E /Y \"${LIBDIR}\\release\\python32\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-				)
-			else()
-				if(CMAKE_BUILD_TYPE STREQUAL Debug)
-					add_custom_command(TARGET blender
-						POST_BUILD
-						MAIN_DEPENDENCY blender
-						COMMAND copy /Y \"${LIBDIR}\\python\\lib\\python32_d.dll\" \"${TARGETDIR}\\\"
-						COMMAND xcopy /E /Y \"${LIBDIR}\\release\\python32_d\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					)
-				else()
-					add_custom_command(TARGET blender
-						POST_BUILD
-						MAIN_DEPENDENCY blender
-						COMMAND copy /Y \"${LIBDIR}\\python\\lib\\python32.dll\" \"${TARGETDIR}\\\"
-						COMMAND xcopy /E /Y \"${LIBDIR}\\release\\python32\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\python\\lib\\\"
-					)
-				endif()
-			endif()
-		endif()
-
-		if(WITH_INTERNATIONAL)
-			if(CMAKE_CL_64)
-				# iconv is statically linked on win64
-				add_custom_command(TARGET blender
-					POST_BUILD
-					MAIN_DEPENDENCY blender
-					COMMAND if not exist \"${TARGETDIR}\\${BLENDER_VERSION}\\config\\locale\" mkdir \"${TARGETDIR}\\${BLENDER_VERSION}\\config\\locale\"
-					COMMAND copy /Y \"${CMAKE_SOURCE_DIR}\\release\\bin\\.blender\\.Blanguages\" \"${TARGETDIR}\\${BLENDER_VERSION}\\config\\\" 
-					COMMAND xcopy /E /Y \"${CMAKE_SOURCE_DIR}\\release\\bin\\.blender\\locale\\*.*\" \"${TARGETDIR}\\${BLENDER_VERSION}\\config\\locale\\\"
-				)
-			else()
-				add_custom_command(TARGET blender
-					POST_BUILD
-					MAIN_DEPENDENCY blender
-					COMMAND copy /Y \"${LIBDIR}\\iconv\\lib\\iconv.dll\" \"${TARGETDIR}\\\"

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list