Skip to content

Commit

Permalink
updated cmakerules to autodetect if gettext can be used
Browse files Browse the repository at this point in the history
fixed error if gettext is disabled
  • Loading branch information
SpeedProg committed Jul 23, 2011
1 parent 4771b49 commit f6d9bcc
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 18 deletions.
3 changes: 3 additions & 0 deletions cmake/Modules/FindGettextLib.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
31 changes: 14 additions & 17 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,24 @@ 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)
message(STATUS "gettext library: ${GETTEXT_LIBRARY}")
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++")
Expand Down Expand Up @@ -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")
Expand All @@ -283,22 +280,22 @@ 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)

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")
Expand Down Expand Up @@ -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

Expand Down
6 changes: 6 additions & 0 deletions src/gettext.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
#ifdef GETTEXT_FOUND
#ifdef USE_GETTEXT
#include <libintl.h>
#else
#define gettext(String) String
#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
Expand Down
4 changes: 3 additions & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit f6d9bcc

Please sign in to comment.