diff options
author | Pierre Ossman <ossman@cendio.se> | 2011-04-28 14:38:04 +0000 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2011-04-28 14:38:04 +0000 |
commit | b232b5fd73140c09f739ddbbd045a89fc7259f19 (patch) | |
tree | ab6b2388cce07d06ff5e8b5a3c4f03c6e2c7cf8c /cmake/Modules | |
parent | bb445ef944f3850de98a6a90b44b1f87c341e989 (diff) | |
download | tigervnc-b232b5fd73140c09f739ddbbd045a89fc7259f19.tar.gz tigervnc-b232b5fd73140c09f739ddbbd045a89fc7259f19.zip |
Finish up the gettext handling in CMake. The included functions in CMake only
take care of finding the gettext tools, not the headers and libraries needed
to build things. Use the licq project as inspiration on how to solve this.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4389 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'cmake/Modules')
-rw-r--r-- | cmake/Modules/FindIconv.cmake | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/cmake/Modules/FindIconv.cmake b/cmake/Modules/FindIconv.cmake new file mode 100644 index 00000000..cf268ea0 --- /dev/null +++ b/cmake/Modules/FindIconv.cmake @@ -0,0 +1,66 @@ +# From: http://gitorious.org/gammu/mainline/blobs/master/cmake/FindIconv.cmake + +# - Try to find Iconv +# Once done this will define +# +# ICONV_FOUND - system has Iconv +# ICONV_INCLUDE_DIR - the Iconv include directory +# ICONV_LIBRARIES - Link these to use Iconv +# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const +# +include(CheckCCompilerFlag) +include(CheckCXXSourceCompiles) + +IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + # Already in cache, be silent + SET(ICONV_FIND_QUIETLY TRUE) +ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +FIND_PATH(ICONV_INCLUDE_DIR iconv.h) + +FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c) + +IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + SET(ICONV_FOUND TRUE) +ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) +set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) +IF(ICONV_FOUND) + check_c_compiler_flag("-Werror" ICONV_HAVE_WERROR) + set (CMAKE_C_FLAGS_BACKUP "${CMAKE_C_FLAGS}") + if(ICONV_HAVE_WERROR) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + endif(ICONV_HAVE_WERROR) + check_c_source_compiles(" + #include <iconv.h> + int main(){ + iconv_t conv = 0; + const char* in = 0; + size_t ilen = 0; + char* out = 0; + size_t olen = 0; + iconv(conv, &in, &ilen, &out, &olen); + return 0; + } +" ICONV_SECOND_ARGUMENT_IS_CONST ) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BACKUP}") +ENDIF(ICONV_FOUND) +set(CMAKE_REQUIRED_INCLUDES) +set(CMAKE_REQUIRED_LIBRARIES) + +IF(ICONV_FOUND) + IF(NOT ICONV_FIND_QUIETLY) + MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") + ENDIF(NOT ICONV_FIND_QUIETLY) +ELSE(ICONV_FOUND) + IF(Iconv_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find Iconv") + ENDIF(Iconv_FIND_REQUIRED) +ENDIF(ICONV_FOUND) + +MARK_AS_ADVANCED( + ICONV_INCLUDE_DIR + ICONV_LIBRARIES + ICONV_SECOND_ARGUMENT_IS_CONST +) |