Navigation


Changeset 1561:699c3fb0c57b in freeDiameter for include/freeDiameter


Ignore:
Timestamp:
Jun 17, 2021, 1:44:45 AM (3 years ago)
Author:
Thomas Klausner <wiz@gatalith.at>
Branch:
default
Phase:
public
Message:

Switch from libidn to libidn2.

libidn2 is the backwards compatible successor to libidn,
and at least Red Hat 8 does not provide a dev package for libidn1.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/freeDiameter/CMakeLists.txt

    r1406 r1561  
    22
    33Project("freeDiameter includes directory" C)
     4
     5INCLUDE(FindPkgConfig)
    46
    57########################
     
    136138SET(SCTP_LIBRARIES ${SCTP_LIBRARIES} PARENT_SCOPE)
    137139
    138 # IDNA process: we use libidn from GNU (unless the function & header files are included in libc)
     140# IDNA process: we use GNU libidn2
    139141IF(NOT DIAMID_IDNA_IGNORE AND NOT DIAMID_IDNA_REJECT)
    140         FIND_PACKAGE(IDNA)
    141         SET(CHECK_IDNA_SOURCE_CODE "
    142                 #include <idna.h>
    143                 int main() {
    144                    return idna_to_ascii_8z(NULL, NULL, 0);
    145                 }
    146                 ")
    147         SET(CMAKE_REQUIRED_INCLUDES ${IDNA_INCLUDE_DIR})
    148         SET(CMAKE_REQUIRED_LIBRARIES ${IDNA_LIBRARIES})
    149         CHECK_C_SOURCE_COMPILES("${CHECK_IDNA_SOURCE_CODE}" HAS_IDNA_SUPPORT)
    150         IF(NOT HAS_IDNA_SUPPORT)
    151                 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")
    152         ENDIF(NOT HAS_IDNA_SUPPORT)
     142        PKG_CHECK_MODULES(IDNA libidn2)
     143        IF(NOT IDNA_FOUND)
     144                MESSAGE(SEND_ERROR "Unable to find libidn2, please install libidn2-dev or equivalent, or set DIAMID_IDNA_IGNORE or DIAMID_IDNA_REJECT")
     145        ENDIF()
    153146ELSE (NOT DIAMID_IDNA_IGNORE  AND NOT DIAMID_IDNA_REJECT)
    154147        MESSAGE(STATUS "Non-default Internationalized Domain Names (IDN) behavior selected (no stringprep).")
    155148ENDIF(NOT DIAMID_IDNA_IGNORE  AND NOT DIAMID_IDNA_REJECT)
    156 SET(IDNA_INCLUDE_DIR ${IDNA_INCLUDE_DIR} PARENT_SCOPE)
    157 SET(IDNA_LIBRARIES ${IDNA_LIBRARIES} PARENT_SCOPE)
    158149
    159150
     
    221212
    222213# LFDPROTO_LIBS = libraries required by the libfdproto.
    223 SET(LFDPROTO_LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${IDNA_LIBRARIES} PARENT_SCOPE)
     214SET(LFDPROTO_LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${IDNA_LINK_LIBRARIES} PARENT_SCOPE)
    224215# And includes paths
    225 SET(LFDPROTO_INCLUDES ${IDNA_INCLUDE_DIR} PARENT_SCOPE)
     216SET(LFDPROTO_INCLUDES ${IDNA_INCLUDE_DIRS} PARENT_SCOPE)
    226217# Dependencies: the libraries required by any code linking to libfdproto.
    227218SET(LFDPROTO_LINK_INTERFACES ${CMAKE_THREAD_LIBS_INIT} PARENT_SCOPE)
Note: See TracChangeset for help on using the changeset viewer.