X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=cmake%2FModules%2FFindGettextLib.cmake;h=c6f731e04e3b6f866508bbb1ca90be5eae8d7806;hb=c410e9182d322a8c095ef94fbadf4d8f541e6b98;hp=1bc92708a1475d16cc3944a69ca9a49226b741ad;hpb=9fa4b72a4752795962b0d17c485de92fdbd029fc;p=minetest.git diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake index 1bc92708a..c6f731e04 100644 --- a/cmake/Modules/FindGettextLib.cmake +++ b/cmake/Modules/FindGettextLib.cmake @@ -16,6 +16,18 @@ FIND_PROGRAM(GETTEXT_MSGFMT PATHS "${CUSTOM_GETTEXT_PATH}/bin" DOC "path to msgfmt") +if(APPLE) + FIND_LIBRARY(GETTEXT_LIBRARY + NAMES libintl.a + PATHS "${CUSTOM_GETTEXT_PATH}/lib" + DOC "gettext *intl*.lib") + + FIND_LIBRARY(ICONV_LIBRARY + NAMES libiconv.dylib + PATHS "/usr/lib" + DOC "iconv lib") +endif(APPLE) + # 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 @@ -31,17 +43,16 @@ IF (WIN32) NAMES ${GETTEXT_LIB_NAMES} PATHS "${CUSTOM_GETTEXT_PATH}/lib" DOC "gettext *intl*.lib") - FIND_LIBRARY(GETTEXT_DLL + 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_LIBRARY(GETTEXT_ICONV_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 @@ -49,8 +60,25 @@ IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT) SET(GETTEXT_FOUND TRUE) ENDIF() ELSE(WIN32) + # *BSD variants require special linkage as they don't use glibc + IF(${CMAKE_SYSTEM_NAME} MATCHES "BSD") + SET(GETTEXT_LIBRARY "intl") + ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "BSD") 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//LC_MESSAGES) + SET(GETTEXT_MO_DEST_PATH ${LOCALEDIR}//LC_MESSAGES) + FILE(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*") + LIST(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES minetest.pot) + MACRO(SET_MO_PATHS _buildvar _destvar _locale) + STRING(REPLACE "" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH}) + STRING(REPLACE "" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH}) + ENDMACRO(SET_MO_PATHS) +ELSE() + SET(GETTEXT_INCLUDE_DIR "") + SET(GETTEXT_LIBRARY "") +ENDIF()