diff options
author | Nils Dagsson Moskopp <nils@dieweltistgarnichtso.net> | 2011-07-22 10:30:55 -0700 |
---|---|---|
committer | Nils Dagsson Moskopp <nils@dieweltistgarnichtso.net> | 2011-07-22 10:30:55 -0700 |
commit | a45f287ae1b96742dfd03a01e0b558385e7b1384 (patch) | |
tree | a8cc536df3d78b67a11a98ba672cfc4d80f9e32f /cmake/Modules/FindGettextLib.cmake | |
parent | 21b7a272c4558795f5e8b7d8af859d51dd616d31 (diff) | |
parent | 7d9dd352cfd680ef31bb309138939d37e4cbf90a (diff) | |
download | minetest-a45f287ae1b96742dfd03a01e0b558385e7b1384.tar.gz minetest-a45f287ae1b96742dfd03a01e0b558385e7b1384.tar.bz2 minetest-a45f287ae1b96742dfd03a01e0b558385e7b1384.zip |
Merge pull request #32 from Oblomov/master
Gettext + misc fixes
Diffstat (limited to 'cmake/Modules/FindGettextLib.cmake')
-rw-r--r-- | cmake/Modules/FindGettextLib.cmake | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake new file mode 100644 index 000000000..b99fd33b8 --- /dev/null +++ b/cmake/Modules/FindGettextLib.cmake @@ -0,0 +1,80 @@ +# Package finder for gettext libs and include files + +SET(CUSTOM_GETTEXT_PATH "${PROJECT_SOURCE_DIR}/../../gettext" + CACHE FILEPATH "path to custom gettext") + +# by default +SET(GETTEXT_FOUND FALSE) + +FIND_PATH(GETTEXT_INCLUDE_DIR + NAMES libintl.h + PATHS "${CUSTOM_GETTEXT_PATH}/include" + DOC "gettext include directory") + +FIND_PROGRAM(GETTEXT_MSGFMT + NAMES msgfmt + PATHS "${CUSTOM_GETTEXT_PATH}/bin" + DOC "path to msgfmt") + +FIND_PROGRAM(GETTEXT_MSGMERGE + NAMES msgmerge + PATHS "${CUSTOM_GETTEXT_PATH}/bin" + DOC "path to msgmerge") + +FIND_PROGRAM(GETTEXT_MSGEN + NAMES msgen + PATHS "${CUSTOM_GETTEXT_PATH}/bin" + DOC "path to msgen") + +FIND_PROGRAM(GETTEXT_EXTRACT + NAMES xgettext + PATHS "${CUSTOM_GETTEXT_PATH}/bin" + DOC "path to xgettext") + +# modern Linux, as well as Mac, seem to not need require special linking +# they do not because gettext is part of glibc +# TODO check the requirements on other BSDs and older Linux +IF (WIN32) + IF(MSVC) + SET(GETTEXT_LIB_NAMES + libintl.lib intl.lib libintl3.lib intl3.lib) + ELSE() + SET(GETTEXT_LIB_NAMES + libintl.dll.a intl.dll.a libintl3.dll.a intl3.dll.a) + ENDIF() + FIND_LIBRARY(GETTEXT_LIBRARY + NAMES ${GETTEXT_LIB_NAMES} + PATHS "${CUSTOM_GETTEXT_PATH}/lib" + DOC "gettext *intl*.lib") + FIND_FILE(GETTEXT_DLL + NAMES libintl.dll intl.dll libintl3.dll intl3.dll + PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" + DOC "gettext *intl*.dll") + FIND_FILE(GETTEXT_ICONV_DLL + NAMES libiconv2.dll + PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" + DOC "gettext *iconv*.lib") +ENDIF(WIN32) + + +IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT) + IF (WIN32) + # in the Win32 case check also for the extra linking requirements + IF(GETTEXT_LIBRARY AND GETTEXT_DLL AND GETTEXT_ICONV_DLL) + SET(GETTEXT_FOUND TRUE) + ENDIF() + ELSE(WIN32) + SET(GETTEXT_FOUND TRUE) + ENDIF(WIN32) +ENDIF() + +IF(GETTEXT_FOUND) + SET(GETTEXT_PO_PATH ${CMAKE_SOURCE_DIR}/po) + SET(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES) + SET(GETTEXT_MO_DEST_PATH locale/<locale>/LC_MESSAGES) + FILE(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*") + MACRO(SET_MO_PATHS _buildvar _destvar _locale) + STRING(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH}) + STRING(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH}) + ENDMACRO(SET_MO_PATHS) +ENDIF() |