mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-19 13:46:13 +00:00
9bc219ee14
About Shared Library (shared) and Module Library (module) type of cmake target INSTALL command has different behaviour for ARCHIVE LIBRARY RUNTIME depending on the platform
83 lines
2.4 KiB
CMake
83 lines
2.4 KiB
CMake
# - Try to find Iconv on Mac OS X
|
|
# 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
|
|
#
|
|
|
|
IF(APPLE)
|
|
include(CheckCCompilerFlag)
|
|
include(CheckCSourceCompiles)
|
|
|
|
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
# Already in cache, be silent
|
|
SET(ICONV_FIND_QUIETLY TRUE)
|
|
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
|
|
IF(APPLE)
|
|
FIND_PATH(ICONV_INCLUDE_DIR iconv.h
|
|
PATHS
|
|
/opt/local/include/
|
|
NO_CMAKE_SYSTEM_PATH
|
|
)
|
|
|
|
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c
|
|
PATHS
|
|
/opt/local/lib/
|
|
NO_CMAKE_SYSTEM_PATH
|
|
)
|
|
ENDIF(APPLE)
|
|
|
|
FIND_PATH(ICONV_INCLUDE_DIR iconv.h PATHS /opt/local/include /sw/include)
|
|
|
|
string(REGEX REPLACE "(.*)/include/?" "\\1" ICONV_INCLUDE_BASE_DIR "${ICONV_INCLUDE_DIR}")
|
|
|
|
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c HINTS "${ICONV_INCLUDE_BASE_DIR}/lib" PATHS /opt/local/lib)
|
|
|
|
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
|
|
)
|
|
ENDIF(APPLE)
|