From 872a334c19615873e796175158bb93420f439492 Mon Sep 17 00:00:00 2001 From: Thorbjørn Lindeijer Date: Mon, 8 Apr 2024 14:59:47 +0200 Subject: CMake: Use FindIntl FindIntl was added with CMake 3.2 and can be used to find the Gettext libintl headers and libraries. I've removed special handling of Solaris, which explicitly added linking to 'intl' and added '/usr/local/lib' include path. It can be easily restored if necessary, once somebody tries to compile Mana on Solaris. --- CMake/Modules/FindLibIntl.cmake | 46 ----------------------------------------- src/CMakeLists.txt | 27 +++++++----------------- 2 files changed, 8 insertions(+), 65 deletions(-) delete mode 100644 CMake/Modules/FindLibIntl.cmake diff --git a/CMake/Modules/FindLibIntl.cmake b/CMake/Modules/FindLibIntl.cmake deleted file mode 100644 index e7596052..00000000 --- a/CMake/Modules/FindLibIntl.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# Try to find the libintl library. Explicit searching is currently -# only required for Win32, though it might be useful for some UNIX -# variants, too. Therefore code for searching common UNIX include -# directories is included, too. -# -# Once done this will define -# -# LIBINTL_FOUND - system has libintl -# LIBINTL_LIBRARIES - the library needed for linking - -IF (LibIntl_LIBRARY) - SET(LibIntl_FIND_QUIETLY TRUE) -ENDIF () - -# for Windows we rely on the environement variables -# %INCLUDE% and %LIB%; FIND_LIBRARY checks %LIB% -# automatically on Windows -IF(WIN32) - FIND_LIBRARY(LibIntl_LIBRARY - NAMES intl - ) -ELSE() - FIND_LIBRARY(LibIntl_LIBRARY - NAMES intl - PATHS /usr/lib /usr/local/lib - ) -ENDIF() - -IF (LibIntl_LIBRARY) - SET(LIBINTL_FOUND TRUE) - SET(LIBINTL_LIBRARIES ${LibIntl_LIBRARY}) -ELSE () - SET(LIBINTL_FOUND FALSE) -ENDIF () - -IF (LIBINTL_FOUND) - IF (NOT LibIntl_FIND_QUIETLY) - MESSAGE(STATUS "Found libintl: ${LibIntl_LIBRARY}") - ENDIF () -ELSE () - IF (LibIntl_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could NOT find libintl") - ENDIF () -ENDIF () - -MARK_AS_ADVANCED(LibIntl_LIBRARY) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3a35d6dc..1d330112 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,6 +10,7 @@ find_package(CURL REQUIRED) find_package(LibXml2 REQUIRED) find_package(PNG REQUIRED) find_package(Gettext REQUIRED) +find_package(Intl REQUIRED) if(CMAKE_COMPILER_IS_GNUCXX) # Help getting compilation warnings @@ -56,16 +57,6 @@ if(ENABLE_NLS) message(STATUS "i18n support enabled") endif() -if(WIN32) - set(EXTRA_LIBRARIES ws2_32 winmm) - find_package(LibIntl REQUIRED) -elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR BEOS) - find_package(LibIntl REQUIRED) -elseif(CMAKE_SYSTEM_NAME STREQUAL SunOS) - # explicit linking to libintl is required on Solaris - set(EXTRA_LIBRARIES intl) -endif() - if(WITH_OPENGL) find_package(OpenGL REQUIRED) include_directories(${OPENGL_INCLUDE_DIR}) @@ -80,7 +71,8 @@ include_directories( ${PHYSFS_INCLUDE_DIR} ${CURL_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} - ${GUICHAN_INCLUDE_DIR}) + ${GUICHAN_INCLUDE_DIR} + ${Intl_INCLUDE_DIRS}) set(SRCS gui/widgets/avatarlistbox.cpp @@ -631,8 +623,7 @@ target_link_libraries( ${LIBXML2_LIBRARIES} ${GUICHAN_LIBRARIES} ${OPENGL_LIBRARIES} - ${LIBINTL_LIBRARIES} - ${EXTRA_LIBRARIES}) + ${Intl_LIBRARIES}) set_target_properties( mana @@ -651,6 +642,10 @@ install( BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +if(WIN32) + target_link_libraries(mana PRIVATE ws2_32 winmm) +endif() + if(APPLE) target_link_libraries(mana PRIVATE "-framework Foundation") set_target_properties(mana PROPERTIES OUTPUT_NAME Mana) @@ -662,9 +657,3 @@ if(APPLE) fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/Mana.app\" \"\" \"/usr/local/lib\")" ) endif() - -if(CMAKE_SYSTEM_NAME STREQUAL SunOS) - # we expect the SMCgtxt package to be present on Solaris; the Solaris gettext - # is not API-compatible to GNU gettext - set_target_properties(mana PROPERTIES LINK_FLAGS "-L/usr/local/lib") -endif() -- cgit v1.2.3-70-g09d2