aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
blob: 8cadb2bbab2436a07730266ad68449d3b7989a90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
From 12414304245cce6ef0e8b9547949be5109845353 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 24 Jul 2018 13:33:33 +0800
Subject: [PATCH] cmake: Install libcares.pc

Prepare and install libcares.pc file during cmake build, so libraries
using pkg-config to find libcares will not fail.

Signed-off-by: Alexey Firago <alexey_firago@mentor.com>

update to 1.14.0, fix patch warning

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 CMakeLists.txt      | 23 +++++++++++++++++++++++
 libcares.pc.cmakein | 20 ++++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 libcares.pc.cmakein

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 60a880c..71eaa53 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -193,22 +193,30 @@ ADD_DEFINITIONS(${SYSFLAGS})
 
 
 # Tell C-Ares about libraries to depend on
+# Also pass these libraries to pkg-config file
+SET(CARES_PRIVATE_LIBS_LIST)
 IF (HAVE_LIBRESOLV)
 	LIST (APPEND CARES_DEPENDENT_LIBS resolv)
+	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv")
 ENDIF ()
 IF (HAVE_LIBNSL)
 	LIST (APPEND CARES_DEPENDENT_LIBS nsl)
+	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl")
 ENDIF ()
 IF (HAVE_LIBSOCKET)
 	LIST (APPEND CARES_DEPENDENT_LIBS socket)
+	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket")
 ENDIF ()
 IF (HAVE_LIBRT)
 	LIST (APPEND CARES_DEPENDENT_LIBS rt)
+	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt")
 ENDIF ()
 IF (WIN32)
 	LIST (APPEND CARES_DEPENDENT_LIBS ws2_32)
+	LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
 ENDIF ()
 
+string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
 
 # When checking for symbols, we need to make sure we set the proper
 # headers, libraries, and definitions for the detection to work properly
@@ -514,6 +522,15 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
 # Write ares_config.h configuration file.  This is used only for the build.
 CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h)
 
+# Pass required CFLAGS to pkg-config in case of static library
+IF (CARES_STATIC)
+       SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
+ENDIF()
+
+# Write ares_config.h configuration file.  This is used only for the build.
+CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
+
+
 
 # TRANSFORM_MAKEFILE_INC
 #
@@ -664,6 +681,12 @@ IF (CARES_INSTALL)
 	INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 ENDIF ()
 
+# pkg-config file
+IF (CARES_INSTALL)
+       SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+       INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
+ENDIF ()
+
 # Legacy chain-building variables (provided for compatibility with old code).
 # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
 SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
diff --git a/libcares.pc.cmakein b/libcares.pc.cmakein
new file mode 100644
index 0000000..3579256
--- /dev/null
+++ b/libcares.pc.cmakein
@@ -0,0 +1,20 @@
+#***************************************************************************
+# Project        ___       __ _ _ __ ___  ___ 
+#               / __|____ / _` | '__/ _ \/ __|
+#              | (_|_____| (_| | | |  __/\__ \
+#               \___|     \__,_|_|  \___||___/
+#
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+
+Name: c-ares
+URL: http://daniel.haxx.se/projects/c-ares/
+Description: asynchronous DNS lookup library
+Version: @VERSION@
+Requires: 
+Requires.private: 
+Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@
+Libs: -L${libdir} -lcares
+Libs.private: @CARES_PRIVATE_LIBS@
-- 
2.7.4