Mercurial > hg > freeDiameter
diff include/freeDiameter/CMakeLists.txt @ 1562:6219359a36a9 default tip
Merge latest changes from proposed branch
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Mon, 21 Jun 2021 19:08:18 +0800 |
parents | 699c3fb0c57b |
children |
line wrap: on
line diff
--- a/include/freeDiameter/CMakeLists.txt Sat Oct 10 12:58:37 2020 +0800 +++ b/include/freeDiameter/CMakeLists.txt Mon Jun 21 19:08:18 2021 +0800 @@ -2,6 +2,8 @@ Project("freeDiameter includes directory" C) +INCLUDE(FindPkgConfig) + ######################## # Configurable parameters @@ -135,26 +137,15 @@ SET(SCTP_INCLUDE_DIR ${SCTP_INCLUDE_DIR} PARENT_SCOPE) SET(SCTP_LIBRARIES ${SCTP_LIBRARIES} PARENT_SCOPE) -# IDNA process: we use libidn from GNU (unless the function & header files are included in libc) +# IDNA process: we use GNU libidn2 IF(NOT DIAMID_IDNA_IGNORE AND NOT DIAMID_IDNA_REJECT) - FIND_PACKAGE(IDNA) - SET(CHECK_IDNA_SOURCE_CODE " - #include <idna.h> - int main() { - return idna_to_ascii_8z(NULL, NULL, 0); - } - ") - SET(CMAKE_REQUIRED_INCLUDES ${IDNA_INCLUDE_DIR}) - SET(CMAKE_REQUIRED_LIBRARIES ${IDNA_LIBRARIES}) - CHECK_C_SOURCE_COMPILES("${CHECK_IDNA_SOURCE_CODE}" HAS_IDNA_SUPPORT) - IF(NOT HAS_IDNA_SUPPORT) - MESSAGE(SEND_ERROR "Unable to find idna.h header or idna_to_ascii_8z function, please install libidn-dev or equivalent, or set DIAMID_IDNA_IGNORE or DIAMID_IDNA_REJECT") - ENDIF(NOT HAS_IDNA_SUPPORT) + PKG_CHECK_MODULES(IDNA libidn2) + IF(NOT IDNA_FOUND) + MESSAGE(SEND_ERROR "Unable to find libidn2, please install libidn2-dev or equivalent, or set DIAMID_IDNA_IGNORE or DIAMID_IDNA_REJECT") + ENDIF() ELSE (NOT DIAMID_IDNA_IGNORE AND NOT DIAMID_IDNA_REJECT) MESSAGE(STATUS "Non-default Internationalized Domain Names (IDN) behavior selected (no stringprep).") ENDIF(NOT DIAMID_IDNA_IGNORE AND NOT DIAMID_IDNA_REJECT) -SET(IDNA_INCLUDE_DIR ${IDNA_INCLUDE_DIR} PARENT_SCOPE) -SET(IDNA_LIBRARIES ${IDNA_LIBRARIES} PARENT_SCOPE) # Require GNU TLS for building the library @@ -220,9 +211,9 @@ ########################## # LFDPROTO_LIBS = libraries required by the libfdproto. -SET(LFDPROTO_LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${IDNA_LIBRARIES} PARENT_SCOPE) +SET(LFDPROTO_LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${IDNA_LINK_LIBRARIES} PARENT_SCOPE) # And includes paths -SET(LFDPROTO_INCLUDES ${IDNA_INCLUDE_DIR} PARENT_SCOPE) +SET(LFDPROTO_INCLUDES ${IDNA_INCLUDE_DIRS} PARENT_SCOPE) # Dependencies: the libraries required by any code linking to libfdproto. SET(LFDPROTO_LINK_INTERFACES ${CMAKE_THREAD_LIBS_INIT} PARENT_SCOPE)