Support musl libc
This commit is contained in:
parent
ac1a21eac8
commit
b87fbc93a6
|
@ -29,12 +29,6 @@ set (project_libraries ${dependencies_LIBRARIES} ${LibEV_LIBRARIES})
|
||||||
include_directories (${dependencies_INCLUDE_DIRS} ${LibEV_INCLUDE_DIRS})
|
include_directories (${dependencies_INCLUDE_DIRS} ${LibEV_INCLUDE_DIRS})
|
||||||
link_directories (${dependencies_LIBRARY_DIRS})
|
link_directories (${dependencies_LIBRARY_DIRS})
|
||||||
|
|
||||||
# -liconv may or may not be a part of libc
|
|
||||||
find_library (iconv_LIBRARIES iconv)
|
|
||||||
if (iconv_LIBRARIES)
|
|
||||||
list (APPEND project_libraries ${iconv_LIBRARIES})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if ("${CMAKE_SYSTEM_NAME}" MATCHES "BSD")
|
if ("${CMAKE_SYSTEM_NAME}" MATCHES "BSD")
|
||||||
# Need this for SIGWINCH in FreeBSD and OpenBSD respectively;
|
# Need this for SIGWINCH in FreeBSD and OpenBSD respectively;
|
||||||
# our POSIX version macros make it undefined
|
# our POSIX version macros make it undefined
|
||||||
|
@ -43,6 +37,20 @@ elseif (APPLE)
|
||||||
add_definitions (-D_DARWIN_C_SOURCE)
|
add_definitions (-D_DARWIN_C_SOURCE)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# -liconv may or may not be a part of libc
|
||||||
|
find_library (iconv_LIBRARIES iconv)
|
||||||
|
if (iconv_LIBRARIES)
|
||||||
|
list (APPEND project_libraries ${iconv_LIBRARIES})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
include (CheckCSourceRuns)
|
||||||
|
set (CMAKE_REQUIRED_LIBRARIES ${project_libraries})
|
||||||
|
get_property (CMAKE_REQUIRED_INCLUDES
|
||||||
|
DIRECTORY "${PROJECT_SOURCE_DIR}" PROPERTY INCLUDE_DIRECTORIES)
|
||||||
|
CHECK_C_SOURCE_RUNS ("#include <iconv.h>
|
||||||
|
int main () { return iconv_open (\"UTF-8//TRANSLIT\", \"ISO-8859-1\")
|
||||||
|
== (iconv_t) -1; }" ICONV_ACCEPTS_TRANSLIT)
|
||||||
|
|
||||||
if (Ncursesw_FOUND)
|
if (Ncursesw_FOUND)
|
||||||
list (APPEND project_libraries ${Ncursesw_LIBRARIES})
|
list (APPEND project_libraries ${Ncursesw_LIBRARIES})
|
||||||
include_directories (${Ncursesw_INCLUDE_DIRS})
|
include_directories (${Ncursesw_INCLUDE_DIRS})
|
||||||
|
|
|
@ -7,5 +7,7 @@
|
||||||
#cmakedefine HAVE_READLINE
|
#cmakedefine HAVE_READLINE
|
||||||
#cmakedefine HAVE_EDITLINE
|
#cmakedefine HAVE_EDITLINE
|
||||||
|
|
||||||
|
#cmakedefine01 ICONV_ACCEPTS_TRANSLIT
|
||||||
|
|
||||||
#endif // ! CONFIG_H
|
#endif // ! CONFIG_H
|
||||||
|
|
||||||
|
|
|
@ -4076,11 +4076,10 @@ main (int argc, char *argv[])
|
||||||
setlocale (LC_CTYPE, "");
|
setlocale (LC_CTYPE, "");
|
||||||
|
|
||||||
char *encoding = nl_langinfo (CODESET);
|
char *encoding = nl_langinfo (CODESET);
|
||||||
#ifdef __linux__
|
|
||||||
// XXX: not quite sure if this is actually desirable
|
// XXX: not quite sure if this is actually desirable
|
||||||
// TODO: instead retry with JSON_ENSURE_ASCII
|
// TODO: instead retry with JSON_ENSURE_ASCII
|
||||||
|
if (ICONV_ACCEPTS_TRANSLIT)
|
||||||
encoding = xstrdup_printf ("%s//TRANSLIT", encoding);
|
encoding = xstrdup_printf ("%s//TRANSLIT", encoding);
|
||||||
#endif // __linux__
|
|
||||||
|
|
||||||
if ((g_ctx.term_from_utf8 = iconv_open (encoding, "UTF-8"))
|
if ((g_ctx.term_from_utf8 = iconv_open (encoding, "UTF-8"))
|
||||||
== (iconv_t) -1
|
== (iconv_t) -1
|
||||||
|
|
Loading…
Reference in New Issue