forked from Mirrorlandia_minetest/minetest
updated cmakerules to autodetect if gettext can be used
fixed error if gettext is disabled
This commit is contained in:
parent
4771b4951d
commit
f6d9bcc9bb
@ -77,4 +77,7 @@ IF(GETTEXT_FOUND)
|
||||
STRING(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
|
||||
STRING(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH})
|
||||
ENDMACRO(SET_MO_PATHS)
|
||||
ELSE()
|
||||
SET(GETTEXT_INCLUDE_DIR "")
|
||||
SET(GETTEXT_LIBRARY "")
|
||||
ENDIF()
|
||||
|
@ -5,10 +5,11 @@ if(RUN_IN_PLACE)
|
||||
add_definitions ( -DRUN_IN_PLACE )
|
||||
endif(RUN_IN_PLACE)
|
||||
|
||||
OPTION(USE_GETTEXT "Use GetText for internationalization" OFF)
|
||||
OPTION(USE_GETTEXT "Use GetText for internationalization" ON)
|
||||
|
||||
if(USE_GETTEXT)
|
||||
find_package(GettextLib REQUIRED)
|
||||
find_package(GettextLib)
|
||||
|
||||
if(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
message(STATUS "gettext include path: ${GETTEXT_INCLUDE_DIR}")
|
||||
message(STATUS "gettext msgfmt path: ${GETTEXT_MSGFMT}")
|
||||
if(WIN32)
|
||||
@ -16,16 +17,12 @@ if(USE_GETTEXT)
|
||||
message(STATUS "gettext dll: ${GETTEXT_DLL}")
|
||||
message(STATUS "gettext iconv dll: ${GETTEXT_ICONV_DLL}")
|
||||
endif()
|
||||
if (GETTEXT_FOUND)
|
||||
add_definitions( -DUSE_GETTEXT )
|
||||
message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
|
||||
else()
|
||||
message(STATUS "ERROR: GetText enabled but not found, disabling")
|
||||
set(USE_GETTEXT FALSE)
|
||||
endif(GETTEXT_FOUND)
|
||||
else(USE_GETTEXT)
|
||||
message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}")
|
||||
elseif(GETTEXT_FOUND AND NOT USE_GETTEXT)
|
||||
MESSAGE(STATUS "GetText found but disabled;")
|
||||
else(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
message(STATUS "GetText disabled")
|
||||
endif(USE_GETTEXT)
|
||||
endif(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
|
||||
if(NOT MSVC)
|
||||
set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
|
||||
@ -268,7 +265,7 @@ if(BUILD_CLIENT)
|
||||
|
||||
install(FILES ${images} DESTINATION ${DATADIR})
|
||||
|
||||
if (USE_GETTEXT)
|
||||
if(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
|
||||
set_mo_paths(MO_BUILD_PATH MO_DEST_PATH ${LOCALE})
|
||||
set(MO_BUILD_PATH "${MO_BUILD_PATH}/${PROJECT_NAME}.mo")
|
||||
@ -283,14 +280,14 @@ if(BUILD_CLIENT)
|
||||
if(DEFINED ZLIB_DLL)
|
||||
install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
if(USE_GETTEXT)
|
||||
if(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
if(DEFINED GETTEXT_DLL)
|
||||
install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
if(DEFINED GETTEXT_ICONV_DLL)
|
||||
install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
endif(USE_GETTEXT)
|
||||
endif(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
endif()
|
||||
endif(BUILD_CLIENT)
|
||||
|
||||
@ -298,7 +295,7 @@ if(BUILD_SERVER)
|
||||
install(TARGETS ${PROJECT_NAME}server DESTINATION ${BINDIR})
|
||||
endif(BUILD_SERVER)
|
||||
|
||||
if (USE_GETTEXT)
|
||||
if (GETTEXT_FOUND AND USE_GETTEXT)
|
||||
add_custom_command(OUTPUT "${GETTEXT_PO_PATH}/en"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${GETTEXT_PO_PATH}/en"
|
||||
COMMENT "po-update [en]: creating translation template base directory")
|
||||
@ -347,7 +344,7 @@ if (USE_GETTEXT)
|
||||
|
||||
add_custom_target(translations ALL COMMENT "mo update" DEPENDS ${MO_FILES})
|
||||
add_custom_target(updatepo COMMENT "po update" DEPENDS ${PO_FILES})
|
||||
endif(USE_GETTEXT)
|
||||
endif(GETTEXT_FOUND AND USE_GETTEXT)
|
||||
|
||||
# Subdirectories
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifdef GETTEXT_FOUND
|
||||
#ifdef USE_GETTEXT
|
||||
#include <libintl.h>
|
||||
#else
|
||||
@ -5,6 +6,11 @@
|
||||
#define bindtextdomain(domain, dir) /* */
|
||||
#define textdomain(domain) /* */
|
||||
#endif
|
||||
#else
|
||||
#define gettext(String) String
|
||||
#define bindtextdomain(domain, dir) /* */
|
||||
#define textdomain(domain) /* */
|
||||
#endif
|
||||
|
||||
#define _(String) gettext(String)
|
||||
#define gettext_noop(String) String
|
||||
|
@ -1132,9 +1132,11 @@ int main(int argc, char *argv[])
|
||||
// Create user data directory
|
||||
fs::CreateDir(porting::path_userdata);
|
||||
|
||||
#ifdef LC_MESSAGES
|
||||
setlocale(LC_MESSAGES, "");
|
||||
bindtextdomain("minetest", (porting::path_userdata+"/locale").c_str());
|
||||
textdomain("minetest");
|
||||
#endif
|
||||
|
||||
// Initialize debug streams
|
||||
#ifdef RUN_IN_PLACE
|
||||
|
Loading…
Reference in New Issue
Block a user