1 cmake_minimum_required(VERSION 3.8)
5 find_package(Iconv REQUIRED)
8 add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
9 add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
12 add_definitions(-DIDN2_BUILDING)
14 if(NOT BUILD_SHARED_LIBS)
15 add_definitions(-DIDN2_STATIC)
18 # List the source files
19 set(LIB_SRC lib/bidi.c
36 # List the libunistring source files
37 set(UNISTR_SRC unistring/c-ctype.c
38 unistring/c-strcasecmp.c
39 unistring/c-strncasecmp.c
41 unistring/striconveh.c
42 unistring/striconveha.c
43 unistring/uniconv/u8-conv-from-enc.c
44 unistring/uniconv/u8-strconv-from-enc.c
45 unistring/uniconv/u8-strconv-from-locale.c
46 unistring/uniconv/u8-strconv-to-enc.c
47 unistring/uniconv/u8-strconv-to-locale.c
48 unistring/unistr/u32-cpy.c
49 unistring/unistr/u32-cpy-alloc.c
50 unistring/unistr/u32-mbtouc-unsafe.c
51 unistring/unistr/u32-strlen.c
52 unistring/unistr/u32-to-u8.c
53 unistring/unistr/u32-uctomb.c
54 unistring/unistr/u8-check.c
55 unistring/unistr/u8-mblen.c
56 unistring/unistr/u8-mbtouc.c
57 unistring/unistr/u8-mbtouc-aux.c
58 unistring/unistr/u8-mbtouc-unsafe.c
59 unistring/unistr/u8-mbtouc-unsafe-aux.c
60 unistring/unistr/u8-mbtoucr.c
61 unistring/unistr/u8-prev.c
62 unistring/unistr/u8-strlen.c
63 unistring/unistr/u8-to-u32.c
64 unistring/unistr/u8-uctomb.c
65 unistring/unistr/u8-uctomb-aux.c
66 unistring/uninorm/canonical-decomposition.c
67 unistring/uninorm/composition.c
68 unistring/uninorm/decompose-internal.c
69 unistring/uninorm/decomposition-table.c
70 unistring/uninorm/nfc.c
71 unistring/uninorm/nfd.c
72 unistring/uninorm/u32-normalize.c
73 unistring/unictype/bidi_of.c
74 unistring/unictype/categ_M.c
75 unistring/unictype/categ_none.c
76 unistring/unictype/categ_of.c
77 unistring/unictype/categ_test.c
78 unistring/unictype/combiningclass.c
79 unistring/unictype/joiningtype_of.c
80 unistring/unictype/scripts.c
83 # List the gnulib source files
84 set(GL_SRC gl/rawmemchr.c
91 add_library(libidn2 ${LIB_SRC} ${UNISTR_SRC} ${GL_SRC})
93 target_include_directories(libidn2 PRIVATE . ./unistring ./gl)
94 target_link_libraries(libidn2 PRIVATE Iconv::Iconv)
96 install(TARGETS libidn2
97 RUNTIME DESTINATION bin
98 LIBRARY DESTINATION lib
99 ARCHIVE DESTINATION lib)
101 install(FILES lib/idn2.h DESTINATION include)