Skip to content
Snippets Groups Projects
Commit f6d9bcc9 authored by Constantin Wenger's avatar Constantin Wenger
Browse files

updated cmakerules to autodetect if gettext can be used

fixed error if gettext is disabled
parent 4771b495
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
#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,10 +1132,12 @@ 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
std::string debugfile = DEBUGFILE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment