From fb9f41b3e52cfddada7773a65b9723cd3a96b785 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 30 Oct 2010 19:41:13 -0400 Subject: Made gettext work on most OSs. Tested on Debian, FreeBSD, Gentoo, and Windows. Added a search path option to the Config script for cmake to use when finding libraries for modules or for gettext. Fixed m_mysql and m_ssl to work under Windows, made the Windows Config program remember the last used options, and fixed Windows release builds. --- cmake/Anope.cmake | 8 ++++---- cmake/FindGettext.cmake | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 cmake/FindGettext.cmake (limited to 'cmake') diff --git a/cmake/Anope.cmake b/cmake/Anope.cmake index 97734199f..6c257bf20 100644 --- a/cmake/Anope.cmake +++ b/cmake/Anope.cmake @@ -386,9 +386,9 @@ macro(calculate_depends SRC SKIP) if(CHECK_ANGLE_INCLUDES) # Find the path of the include file if(DEFAULT_INCLUDE_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) - find_path(FOUND_${FILENAME}_INCLUDE NAMES ${FILENAME} PATHS ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/include $ENV{VCINSTALLDIR}/include) + find_path(FOUND_${FILENAME}_INCLUDE NAMES ${FILENAME} PATHS ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/include $ENV{VCINSTALLDIR}/include ${EXTRA_INCLUDE}) else(DEFAULT_INCLUDE_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) - find_path(FOUND_${FILENAME}_INCLUDE NAMES ${FILENAME}) + find_path(FOUND_${FILENAME}_INCLUDE NAMES ${FILENAME} ${EXTRA_INCLUDE}) endif(DEFAULT_INCLUDE_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) # If the include file was found, add it's path to the list of include paths, but only if it doesn't already exist and isn't in the defaults for the compiler if(FOUND_${FILENAME}_INCLUDE) @@ -437,9 +437,9 @@ macro(calculate_libraries SRC SKIP SRC_LDFLAGS EXTRA_DEPENDS) foreach(LIBRARY ${REQUIRED_LIBRARY}) # Locate the library to see if it exists if(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) - find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib) + find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib ${EXTRA_INCLUDE}) else(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) - find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY}) + find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${EXTRA_INCLUDE}) endif(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR}) # If the library was found, we will add it to the linker flags if(FOUND_${LIBRARY}_LIBRARY) diff --git a/cmake/FindGettext.cmake b/cmake/FindGettext.cmake new file mode 100644 index 000000000..c46c7ec20 --- /dev/null +++ b/cmake/FindGettext.cmake @@ -0,0 +1,28 @@ +# Find the header files, libs, and executables for gettext +if(NOT WIN32) + find_path(GETTEXT_INCLUDE libintl.h /usr/include /usr/local/include ${EXTRA_INCLUDE}) + find_library(GETTEXT_LIBRARY intl PATHS /usr/lib /usr/lib64 ${EXTRA_INCLUDE}) + find_program(GETTEXT_MSGFMT msgfmt PATHS /usr/bin/ /usr/local/bin ${EXTRA_INCLUDE}) +else(NOT WIN32) + find_path(GETTEXT_INCLUDE libintl.h ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/include $ENV{VCINSTALLDIR}/include gettext/include ${EXTRA_INCLUDE}) + find_library(GETTEXT_LIBRARY libintl PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib gettext/lib ${EXTRA_INCLUDE}) + find_library(ICONV_LIBRARY libiconv PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib gettext/lib ${EXTRA_INCLUDE}) + find_library(MINGWEX_LIBRARY libmingwex PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib gettext/lib ${EXTRA_INCLUDE}) + find_library(GCC_LIBRARY libgcc PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib gettext/lib ${EXTRA_INCLUDE}) + find_program(GETTEXT_MSGFMT msgfmt PATHS ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/bin $ENV{VCINSTALLDIR}/bin gettext/bin ${EXTRA_INCLUDE}) +endif(NOT WIN32) + +# If we found everything we need set variables correctly for lang/CMakeLists.txt to use +if(GETTEXT_INCLUDE AND GETTEXT_MSGFMT AND (NOT WIN32 OR (ICONV_LIBRARY AND MINGWEX_LIBRARY AND GCC_LIBRARY))) + set(GETTEXT_FOUND TRUE) + set(LIBINTL_INCLUDE "${GETTEXT_INCLUDE}/libintl.h") + set(GETTEXT_MSGFMT_EXECUTABLE ${GETTEXT_MSGFMT}) + + if(WIN32) + set(GETTEXT_LIBRARIES libiconv libintl libmingwex libgcc) + else(WIN32) + if(GETTEXT_LIBRARY) + set(GETTEXT_LIBRARIES ${GETTEXT_LIBRARY}) + endif(GETTEXT_LIBRARY) + endif(WIN32) +endif(GETTEXT_INCLUDE AND GETTEXT_MSGFMT AND (NOT WIN32 OR (ICONV_LIBRARY AND MINGWEX_LIBRARY AND GCC_LIBRARY))) -- cgit