[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52106] trunk/blender: Replacing gettext i18n backend by boost::locale one.

Bastien Montagne montagne29 at wanadoo.fr
Sun Nov 11 17:55:45 CET 2012


And again, forgot to say thanks to Sergey for testing and review!

Grrrr… I should invest in a brain/memory upgrade!

On 11/11/2012 17:54, Bastien Montagne wrote:
> Revision: 52106
>            http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52106
> Author:   mont29
> Date:     2012-11-11 16:54:26 +0000 (Sun, 11 Nov 2012)
> Log Message:
> -----------
> Replacing gettext i18n backend by boost::locale one.
>
> This commit adds a small and simplistic C wrapper around boost's locale library as intern/locale, and heavily simplifies/reduces Blender's own i18n code (under blenfont/ dir). And it adds back UI translation on windows' official builds (with msvc)!
>
> Note to platform maintainers: iconv and gettext (libintl) can now be removed from precompiled libs (not gettext binaries, under windows, of course ;) ).
>
> Note to MinGW32/64 users: boost_locale lib has not yet been uploaded for those build env, please disable WITH_INTERNATIONAL for now (hopefully will be fixed very soon, have contacted psy-fy).
>
> Modified Paths:
> --------------
>      trunk/blender/CMakeLists.txt
>      trunk/blender/build_files/cmake/macros.cmake
>      trunk/blender/build_files/scons/config/darwin-config.py
>      trunk/blender/build_files/scons/config/linux-config.py
>      trunk/blender/build_files/scons/config/win32-mingw-config.py
>      trunk/blender/build_files/scons/config/win32-vc-config.py
>      trunk/blender/build_files/scons/config/win64-mingw-config.py
>      trunk/blender/build_files/scons/config/win64-vc-config.py
>      trunk/blender/intern/CMakeLists.txt
>      trunk/blender/intern/SConscript
>      trunk/blender/source/blender/blenfont/BLF_translation.h
>      trunk/blender/source/blender/blenfont/CMakeLists.txt
>      trunk/blender/source/blender/blenfont/SConscript
>      trunk/blender/source/blender/blenfont/intern/blf_lang.c
>      trunk/blender/source/blender/blenfont/intern/blf_translation.c
>      trunk/blender/source/blender/makesrna/intern/rna_access.c
>      trunk/blender/source/blenderplayer/CMakeLists.txt
>      trunk/blender/source/creator/CMakeLists.txt
>      trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
>
> Added Paths:
> -----------
>      trunk/blender/intern/locale/
>      trunk/blender/intern/locale/CMakeLists.txt
>      trunk/blender/intern/locale/SConscript
>      trunk/blender/intern/locale/boost_locale_wrapper.cpp
>      trunk/blender/intern/locale/boost_locale_wrapper.h
>
> Modified: trunk/blender/CMakeLists.txt
> ===================================================================
> --- trunk/blender/CMakeLists.txt	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/CMakeLists.txt	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -296,11 +296,11 @@
>
>   	if(${CMAKE_GENERATOR} MATCHES "Xcode")
>   	
> -		##### cmake incompatibility with xcode  4.3 and higher #####
> +		##### workaround for actual official cmake incompatibility with xcode 4.3 #####
>   		if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
> -			message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
> +			message("Official cmake does not yet support Xcode 4.3, get a patched version here: http://www.jensverwiebe.de/Blender/CMake%202.8-7patched.zip")
>   		endif()
> -		### end cmake incompatibility with xcode 4.3 and higher ###
> +		### end workaround for actual official cmake incompatibility with xcode 4.3 ###
>   		
>   		if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
>   			# Xcode 4 defaults to the Apple LLVM Compiler.
> @@ -376,8 +376,8 @@
>   	set(WITH_OPENIMAGEIO ON)
>   endif()
>
> -# auto enable boost for cycles, booleans or audaspace
> -if(WITH_CYCLES OR WITH_MOD_BOOLEAN OR WITH_AUDASPACE)
> +# auto enable boost for cycles, booleans, audaspace or i18n
> +if(WITH_CYCLES OR WITH_MOD_BOOLEAN OR WITH_AUDASPACE OR WITH_INTERNATIONAL)
>   	set(WITH_BOOST ON)
>   endif()
>
> @@ -593,28 +593,6 @@
>   		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS")
>   	endif()
>
> -	if(WITH_INTERNATIONAL)
> -		find_library(INTL_LIBRARY
> -			NAMES intl
> -			PATHS
> -			/sw/lib
> -		)
> -
> -		find_library(ICONV_LIBRARY
> -			NAMES iconv
> -			PATHS
> -			/sw/lib
> -		)
> -		mark_as_advanced(
> -			ICONV_LIBRARY
> -			INTL_LIBRARY
> -		)
> -
> -		if(INTL_LIBRARY AND ICONV_LIBRARY)
> -			set(GETTEXT_LIBRARIES ${INTL_LIBRARY} ${ICONV_LIBRARY})
> -		endif()
> -	endif()
> -
>   	if(WITH_FFTW3)
>   		find_package(Fftw3)
>   		if(NOT FFTW3_FOUND)
> @@ -662,7 +640,11 @@
>   			else()
>   				set(Boost_USE_MULTITHREADED ON)
>   			endif()
> -			find_package(Boost 1.34 COMPONENTS filesystem regex system thread)
> +			set(__boost_packages filesystem regex system thread)
> +			if (WITH_INTERNATIONAL)
> +				list(APPEND __boost_packages locale)
> +			endif()
> +			find_package(Boost 1.34 COMPONENTS ${__boost_packages})
>   			mark_as_advanced(Boost_DIR)  # why doesnt boost do this?
>   		endif()
>
> @@ -879,13 +861,6 @@
>   		
>   	add_definitions(-DWIN32)
>
> -	if(WITH_INTERNATIONAL)
> -		set(ICONV ${LIBDIR}/iconv)
> -		set(ICONV_INCLUDE_DIRS ${ICONV}/include)
> -		set(ICONV_LIBRARIES iconv)
> -		set(ICONV_LIBPATH ${ICONV}/lib)
> -	endif()
> -
>   	set(JPEG "${LIBDIR}/jpeg")
>   	set(JPEG_INCLUDE_DIR "${JPEG}/include")
>   	set(JPEG_LIBPATH ${JPEG}/lib) # not cmake defined
> @@ -978,13 +953,6 @@
>   		set(CXX_WARNINGS "${_WARNINGS}")
>   		unset(_WARNINGS)
>
> -		if(WITH_INTERNATIONAL)
> -			set(GETTEXT ${LIBDIR}/gettext)
> -			set(GETTEXT_INCLUDE_DIRS ${GETTEXT}/include)
> -			set(GETTEXT_LIBPATH ${GETTEXT}/lib)
> -			set(GETTEXT_LIBRARIES gnu_gettext)
> -		endif()
> -		
>   		if(WITH_MOD_CLOTH_ELTOPO)
>   			set(LAPACK ${LIBDIR}/lapack)
>   			# set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
> @@ -1137,6 +1105,11 @@
>   				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_INTERNATIONAL)
> +				set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
> +					optimized libboost_locale-${BOOST_POSTFIX}
> +					debug libboost_locale-${BOOST_DEBUG_POSTFIX})
> +			endif(WITH_INTERNATIONAL)
>   			set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
>   		endif()
>   			
> @@ -1190,16 +1163,8 @@
>
>   		add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
>
> -
>   		add_definitions(-DFREE_WINDOWS)
>
> -		if(WITH_INTERNATIONAL)
> -			set(GETTEXT ${LIBDIR}/gettext)
> -			set(GETTEXT_INCLUDE_DIRS ${GETTEXT}/include)
> -			set(GETTEXT_LIBPATH ${GETTEXT}/lib)
> -			set(GETTEXT_LIBRARIES intl)
> -		endif()
> -		
>   		set(PNG "${LIBDIR}/png")
>   		set(PNG_INCLUDE_DIR "${PNG}/include")
>   		set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
> @@ -1317,6 +1282,11 @@
>   				debug boost_date_time-${BOOST_DEBUG_POSTFIX} boost_filesystem-${BOOST_DEBUG_POSTFIX}
>   				boost_regex-${BOOST_DEBUG_POSTFIX}
>   				boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
> +			if(WITH_INTERNATIONAL)
> +				set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
> +					optimized libboost_locale-${BOOST_POSTFIX}
> +					debug libboost_locale-${BOOST_DEBUG_POSTFIX})
> +			endif(WITH_CYCLES_OSL)
>   			set(BOOST_LIBPATH ${BOOST}/lib)
>   			set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ")
>   		endif()
> @@ -1383,13 +1353,10 @@
>   	endif()
>
>   	if(WITH_JACK)
> -		find_library(JACK_FRAMEWORK
> -			NAMES jackmp
> -		)
> -		set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
> -		if(NOT JACK_FRAMEWORK)
> -			set(WITH_JACK OFF)
> -		endif()
> +		set(JACK /usr/local)
> +		set(JACK_INCLUDE_DIRS ${JACK}/include/jack)
> +		set(JACK_LIBRARIES jack)
> +		set(JACK_LIBPATH ${JACK}/lib)
>   	endif()
>
>   	if(WITH_CODEC_SNDFILE)
> @@ -1427,13 +1394,6 @@
>   		set(PYTHON_LIBRARIES  "${PYTHON_LIBRARY}")
>   	endif()
>
> -	if(WITH_INTERNATIONAL)
> -		set(GETTEXT ${LIBDIR}/gettext)
> -		set(GETTEXT_INCLUDE_DIRS "${GETTEXT}/include")
> -		set(GETTEXT_LIBRARIES intl iconv)
> -		set(GETTEXT_LIBPATH ${GETTEXT}/lib)
> -	endif()
> -
>   	if(WITH_FFTW3)
>   		set(FFTW3 ${LIBDIR}/fftw3)
>   		set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
> @@ -1500,10 +1460,10 @@
>   		if(WITH_INPUT_NDOF)
>   			# This thread it *should* work and check the framework - campbell
>   			# http://www.cmake.org/pipermail/cmake/2005-December/007740.html
> -			find_library(3DCONNEXION_CLIENT_FRAMEWORK
> +			find_library(3D_CONNEXION_CLIENT_LIBRARY
>   				NAMES 3DconnexionClient
>   			)
> -			if(NOT 3DCONNEXION_CLIENT_FRAMEWORK)
> +			if(NOT 3D_CONNEXION_CLIENT_LIBRARY)
>   				set(WITH_INPUT_NDOF OFF)
>   			endif()
>
> @@ -1511,11 +1471,7 @@
>   				set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -weak_framework 3DconnexionClient")
>   			endif()
>   		endif()
> -		
> -	if(WITH_JACK)
> -		set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -weak_framework jackmp")
> -	endif()
> -	
> +
>   	else()
>   		set(PLATFORM_CFLAGS "-pipe -funsigned-char")
>   		set(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime")
> @@ -1579,6 +1535,9 @@
>   		set(BOOST ${LIBDIR}/boost)
>   		set(BOOST_INCLUDE_DIR ${BOOST}/include)
>   		set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt)
> +		if (WITH_INTERNATIONAL)
> +			list(APPEND BOOST_LIBRARIES boost_locale-mt)
> +		endif()
>   		set(BOOST_LIBPATH ${BOOST}/lib)
>   		set(BOOST_DEFINITIONS)
>   	endif()
> @@ -1704,6 +1663,11 @@
>   	endif()
>   endif()
>
> +if(WITH_INTERNATIONAL)
> +	if(NOT WITH_BOOST)
> +		message(FATAL_ERROR "Internationalization reqires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_INTERNATIONAL")
> +	endif()
> +endif()
>
>   # See TEST_SSE_SUPPORT() for how this is defined.
>
>
> Modified: trunk/blender/build_files/cmake/macros.cmake
> ===================================================================
> --- trunk/blender/build_files/cmake/macros.cmake	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/build_files/cmake/macros.cmake	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -196,10 +196,6 @@
>   	if(WITH_PYTHON)  #  AND NOT WITH_PYTHON_MODULE  # WIN32 needs
>   		link_directories(${PYTHON_LIBPATH})
>   	endif()
> -	if(WITH_INTERNATIONAL)
> -		link_directories(${ICONV_LIBPATH})
> -		link_directories(${GETTEXT_LIBPATH})
> -	endif()
>   	if(WITH_SDL)
>   		link_directories(${SDL_LIBPATH})
>   	endif()
> @@ -287,14 +283,6 @@
>   		target_link_libraries(${target} ${GLEW_LIBRARY})
>   	endif()
>
> -	if(WITH_INTERNATIONAL)
> -		target_link_libraries(${target} ${GETTEXT_LIBRARIES})
> -
> -		if(WIN32 AND NOT UNIX)
> -			target_link_libraries(${target} ${ICONV_LIBRARIES})
> -		endif()
> -	endif()
> -
>   	if(WITH_OPENAL)
>   		target_link_libraries(${target} ${OPENAL_LIBRARY})
>   	endif()
>
> Modified: trunk/blender/build_files/scons/config/darwin-config.py
> ===================================================================
> --- trunk/blender/build_files/scons/config/darwin-config.py	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/build_files/scons/config/darwin-config.py	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -297,6 +297,8 @@
>   BF_BOOST = LIBDIR + '/boost'
>   BF_BOOST_INC = BF_BOOST + '/include'
>   BF_BOOST_LIB = 'boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt'
> +if WITH_BF_INTERNATIONAL:
> +    BF_BOOST_LIB += ' boost_locale-mt'
>   BF_BOOST_LIBPATH = BF_BOOST + '/lib'
>
>   WITH_BF_CYCLES_CUDA_BINARIES = False
>
> Modified: trunk/blender/build_files/scons/config/linux-config.py
> ===================================================================
> --- trunk/blender/build_files/scons/config/linux-config.py	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/build_files/scons/config/linux-config.py	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -233,6 +233,8 @@
>       BF_BOOST = '/usr'
>   BF_BOOST_INC = BF_BOOST + '/include'
>   BF_BOOST_LIB = 'boost_date_time boost_filesystem boost_regex boost_system boost_thread'
> +if WITH_BF_INTERNATIONAL:
> +    BF_BOOST_LIB += ' boost_locale'
>   BF_BOOST_LIBPATH = BF_BOOST + '/lib'
>
>   WITH_BF_CYCLES = WITH_BF_OIIO and WITH_BF_BOOST
>
> Modified: trunk/blender/build_files/scons/config/win32-mingw-config.py
> ===================================================================
> --- trunk/blender/build_files/scons/config/win32-mingw-config.py	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/build_files/scons/config/win32-mingw-config.py	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -169,6 +169,8 @@
>   BF_BOOST = LIBDIR + '/boost'
>   BF_BOOST_INC = BF_BOOST + '/include'
>   BF_BOOST_LIB = 'boost_date_time-mgw46-mt-s-1_49 boost_filesystem-mgw46-mt-s-1_49 boost_regex-mgw46-mt-s-1_49 boost_system-mgw46-mt-s-1_49 boost_thread-mgw46-mt-s-1_49'
> +if WITH_BF_INTERNATIONAL:
> +    BF_BOOST_LIB += ' boost_locale-mgw46-mt-s-1_49'
>   BF_BOOST_LIBPATH = BF_BOOST + '/lib'
>
>   #Ray trace optimization
>
> Modified: trunk/blender/build_files/scons/config/win32-vc-config.py
> ===================================================================
> --- trunk/blender/build_files/scons/config/win32-vc-config.py	2012-11-11 16:21:43 UTC (rev 52105)
> +++ trunk/blender/build_files/scons/config/win32-vc-config.py	2012-11-11 16:54:26 UTC (rev 52106)
> @@ -171,6 +171,8 @@
>   BF_BOOST = '${LIBDIR}/boost'
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



More information about the Bf-committers mailing list