Finish user- s/success/invoked/g rename
[hiphop-php.git] / CMake / HPHPFindLibs.cmake
blob6c1df6a0977fae5e0dd8c08b520b97387227ecb3
2 #   +----------------------------------------------------------------------+
3 #   | HipHop for PHP                                                       |
4 #   +----------------------------------------------------------------------+
5 #   | Copyright (c) 2010 Facebook, Inc. (http://www.facebook.com)          |
6 #   | Copyright (c) 1997-2010 The PHP Group                                |
7 #   +----------------------------------------------------------------------+
8 #   | This source file is subject to version 3.01 of the PHP license,      |
9 #   | that is bundled with this package in the file LICENSE, and is        |
10 #   | available through the world-wide-web at the following url:           |
11 #   | http://www.php.net/license/3_01.txt                                  |
12 #   | If you did not receive a copy of the PHP license and are unable to   |
13 #   | obtain it through the world-wide-web, please send a note to          |
14 #   | license@php.net so we can mail you a copy immediately.               |
15 #   +----------------------------------------------------------------------+
18 include(CheckFunctionExists)
20 # libdl
21 find_package(LibDL)
22 if (LIBDL_INCLUDE_DIRS)
23         add_definitions("-DHAVE_LIBDL")
24         include_directories(${LIBDL_INCLUDE_DIRS})
25         if (LIBDL_NEEDS_UNDERSCORE)
26                 add_definitions("-DLIBDL_NEEDS_UNDERSCORE")
27         endif()
28 endif()
30 # boost checks
31 find_package(Boost 1.48.0 COMPONENTS system program_options filesystem regex REQUIRED)
32 include_directories(${Boost_INCLUDE_DIRS})
33 link_directories(${Boost_LIBRARY_DIRS})
34 # Boost 1.49 supports a better flat_multimap, but 1.48 is good enough
35 if (Boost_VERSION GREATER 104899)
36         add_definitions("-DHAVE_BOOST1_49")
37 endif()
40 # features.h
41 FIND_PATH(FEATURES_HEADER features.h)
42 if (FEATURES_HEADER)
43         add_definitions("-DHAVE_FEATURES_H=1")
44 endif()
46 # magickwand
47 find_package(LibMagickWand REQUIRED)
48 include_directories(${LIBMAGICKWAND_INCLUDE_DIRS})
50 # google-glog
51 find_package(Glog REQUIRED)
52 include_directories(${LIBGLOG_INCLUDE_DIR})
54 # inotify checks
55 find_package(Libinotify)
56 if (LIBINOTIFY_INCLUDE_DIR)
57         include_directories(${LIBINOTIFY_INCLUDE_DIR})
58 endif()
60 # iconv checks
61 find_package(Libiconv REQUIRED)
62 include_directories(${LIBICONV_INCLUDE_DIR})
63 if (LIBICONV_CONST)
64   message(STATUS "Using const for input to iconv() call")
65   add_definitions("-DICONV_CONST=const")
66 endif()
68 # mysql checks
69 find_package(MySQL REQUIRED)
70 include_directories(${MYSQL_INCLUDE_DIR})
71 link_directories(${MYSQL_LIB_DIR})
72 MYSQL_SOCKET_SEARCH()
73 if (MYSQL_UNIX_SOCK_ADDR)
74   add_definitions(-DPHP_MYSQL_UNIX_SOCK_ADDR="${MYSQL_UNIX_SOCK_ADDR}")
75 endif()
77 # libmemcached checks
78 find_package(Libmemcached REQUIRED)
79 if (LIBMEMCACHED_VERSION VERSION_LESS "0.39")
80   unset(LIBMEMCACHED_INCLUDE_DIR CACHE)
81   unset(LIBMEMCACHED_LIBRARY CACHE)
82   unset(LIBMEMCACHED_VERSION CACHE)
83   message(FATAL_ERROR "libmemcache is too old, found ${LIBMEMCACHED_VERSION} and we need 0.39")
84 endif ()
85 include_directories(${LIBMEMCACHED_INCLUDE_DIR})
87 # pcre checks
88 find_package(PCRE REQUIRED)
89 include_directories(${PCRE_INCLUDE_DIRS})
91 # libevent checks
92 find_package(LibEvent REQUIRED)
93 include_directories(${LIBEVENT_INCLUDE_DIR})
95 set(CMAKE_REQUIRED_LIBRARIES "${LIBEVENT_LIB}")
96 CHECK_FUNCTION_EXISTS("evhttp_bind_socket_with_fd" HAVE_CUSTOM_LIBEVENT)
97 if(HAVE_CUSTOM_LIBEVENT)
98         message("Using custom LIBEVENT")
99         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_CUSTOM_LIBEVENT")
100 endif()
101 set(CMAKE_REQUIRED_LIBRARIES)
103 find_package(LibUODBC)
104 if (LIBUODBC_INCLUDE_DIRS)
105         include_directories(${LIBUODBC_INCLUDE_DIRS})
106         add_definitions("-DHAVE_UODBC")
107 endif ()
109 # GD checks
110 add_definitions(-DPNG_SKIP_SETJMP_CHECK)
111 find_package(LibVpx)
112 if (LIBVPX_INCLUDE_DIRS)
113         include_directories(${LIBVPX_INCLUDE_DIRS})
114         add_definitions("-DHAVE_GD_WEBP")
115 endif()
116 find_package(LibJpeg)
117 if (LIBJPEG_INCLUDE_DIRS)
118         include_directories(${LIBJPEG_INCLUDE_DIRS})
119         add_definitions("-DHAVE_GD_JPG")
120 endif()
121 find_package(LibPng)
122 if (LIBPNG_INCLUDE_DIRS)
123         include_directories(${LIBPNG_INCLUDE_DIRS})
124         add_definitions("-DHAVE_GD_PNG")
125 endif()
126 find_package(Freetype)
127 if (FREETYPE_INCLUDE_DIRS)
128         include_directories(${FREETYPE_INCLUDE_DIRS})
129         add_definitions("-DHAVE_LIBFREETYPE -DHAVE_GD_FREETYPE -DENABLE_GD_TTF")
130 endif()
132 # libXed
133 find_package(LibXed)
134 if (LibXed_INCLUDE_DIR AND LibXed_LIBRARY)
135         include_directories(${LibXed_INCLUDE_DIR})
136         add_definitions("-DHAVE_LIBXED")
137 endif()
139 # CURL checks
140 find_package(CURL REQUIRED)
141 include_directories(${CURL_INCLUDE_DIR})
143 set(CMAKE_REQUIRED_LIBRARIES "${CURL_LIBRARIES}")
144 CHECK_FUNCTION_EXISTS("curl_multi_select" HAVE_CURL_MULTI_SELECT)
145 CHECK_FUNCTION_EXISTS("curl_multi_wait" HAVE_CURL_MULTI_WAIT)
146 if (HAVE_CURL_MULTI_SELECT)
147         add_definitions("-DHAVE_CURL_MULTI_SELECT")
148 endif()
149 if (HAVE_CURL_MULTI_WAIT)
150         add_definitions("-DHAVE_CURL_MULTI_WAIT")
151 endif()
152 set(CMAKE_REQUIRED_LIBRARIES)
154 # LibXML2 checks
155 find_package(LibXml2 REQUIRED)
156 include_directories(${LIBXML2_INCLUDE_DIR})
157 add_definitions(${LIBXML2_DEFINITIONS})
159 find_package(EXPAT REQUIRED)
160 include_directories(${EXPAT_INCLUDE_DIRS})
162 # SQLite3 + timelib are bundled in HPHP sources
163 include_directories("${HPHP_HOME}/hphp/third_party/libsqlite3")
164 include_directories("${HPHP_HOME}/hphp/third_party/timelib")
165 include_directories("${HPHP_HOME}/hphp/third_party/libafdt/src")
166 include_directories("${HPHP_HOME}/hphp/third_party/libmbfl")
167 include_directories("${HPHP_HOME}/hphp/third_party/libmbfl/mbfl")
168 include_directories("${HPHP_HOME}/hphp/third_party/libmbfl/filter")
169 include_directories("${HPHP_HOME}/hphp/third_party/lz4")
170 include_directories("${HPHP_HOME}/hphp/third_party/double-conversion/src")
171 include_directories("${HPHP_HOME}/hphp/third_party/folly")
172 include_directories("${HPHP_HOME}/hphp/third_party/libzip")
174 # ICU
175 find_package(ICU REQUIRED)
176 if (ICU_FOUND)
177         if (ICU_VERSION VERSION_LESS "4.2")
178                 unset(ICU_FOUND CACHE)
179                 unset(ICU_INCLUDE_DIRS CACHE)
180                 unset(ICU_LIBRARIES CACHE)
181                 message(FATAL_ERROR "ICU is too old, found ${ICU_VERSION} and we need 4.2")
182         endif ()
183         include_directories(${ICU_INCLUDE_DIRS})
184 endif (ICU_FOUND)
186 # jemalloc/tmalloc and profiler
187 if (USE_GOOGLE_HEAP_PROFILER OR USE_GOOGLE_CPU_PROFILER)
188         FIND_LIBRARY(GOOGLE_PROFILER_LIB profiler)
189         if (GOOGLE_PROFILER_LIB)
190                 message(STATUS "Found Google profiler: ${GOOGLE_PROFILER_LIB}")
191                 if (USE_GOOGLE_CPU_PROFILER)
192                         set(GOOGLE_CPU_PROFILER_ENABLED 1)
193                 endif()
194         else()
195                 message(STATUS "Can't find Google profiler")
196         endif()
197 endif()
199 if (USE_GOOGLE_HEAP_PROFILER AND GOOGLE_PROFILER_LIB)
200         FIND_LIBRARY(GOOGLE_TCMALLOC_FULL_LIB tcmalloc)
201         if (GOOGLE_TCMALLOC_FULL_LIB)
202                 message(STATUS "Found full tcmalloc: ${GOOGLE_TCMALLOC_FULL_LIB}")
203                 set(GOOGLE_HEAP_PROFILER_ENABLED 1)
204                 set(GOOGLE_TCMALLOC_ENABLED 1)
205         else()
206                 message(STATUS "Can't find full tcmalloc - heap profiling is disabled")
207         endif()
208 endif()
210 if (USE_JEMALLOC AND NOT GOOGLE_TCMALLOC_ENABLED)
211         FIND_LIBRARY(JEMALLOC_LIB NAMES jemalloc)
212         FIND_PATH(JEMALLOC_INCLUDE_DIR NAMES jemalloc/jemalloc.h)
214         if (JEMALLOC_INCLUDE_DIR AND JEMALLOC_LIB)
215                 include_directories(${JEMALLOC_INCLUDE_DIR})
217                 set (CMAKE_REQUIRED_INCLUDES ${JEMALLOC_INCLUDE_DIR})
218                 INCLUDE(CheckCXXSourceCompiles)
219                 CHECK_CXX_SOURCE_COMPILES("
220 #include <jemalloc/jemalloc.h>
221 int main(void) {
222 #if !defined(JEMALLOC_VERSION_MAJOR) || (JEMALLOC_VERSION_MAJOR < 3)
223 # error \"jemalloc version >= 3.0.0 required\"
224 #endif
225         return 0;
226 }" JEMALLOC_VERSION_3)
227                 set (CMAKE_REQUIRED_INCLUDES)
229                 if (JEMALLOC_VERSION_3)
230                         message(STATUS "Found jemalloc: ${JEMALLOC_LIB}")
231                         set(JEMALLOC_ENABLED 1)
232                 else()
233                         message(STATUS "Found jemalloc, but it was too old")
234                 endif()
235         endif()
236 endif()
238 if (USE_TCMALLOC AND NOT JEMALLOC_ENABLED AND NOT GOOGLE_TCMALLOC_ENABLED)
239         FIND_LIBRARY(GOOGLE_TCMALLOC_MIN_LIB tcmalloc_minimal)
240         if (GOOGLE_TCMALLOC_MIN_LIB)
241                 message(STATUS "Found minimal tcmalloc: ${GOOGLE_TCMALLOC_MIN_LIB}")
242                 set(GOOGLE_TCMALLOC_ENABLED 1)
243         else()
244                 message(STATUS "Can't find minimal tcmalloc")
245         endif()
246 endif()
248 if (JEMALLOC_ENABLED)
249         add_definitions(-DUSE_JEMALLOC=1)
250 else()
251         add_definitions(-DNO_JEMALLOC=1)
252 endif()
253 if (GOOGLE_TCMALLOC_ENABLED)
254         add_definitions(-DGOOGLE_TCMALLOC=1)
255 else()
256         add_definitions(-DNO_TCMALLOC=1)
257 endif()
258 if (GOOGLE_HEAP_PROFILER_ENABLED)
259         add_definitions(-DGOOGLE_HEAP_PROFILER=1)
260 endif()
261 if (GOOGLE_CPU_PROFILER_ENABLED)
262         add_definitions(-DGOOGLE_CPU_PROFILER=1)
263 endif()
265 # tbb libs
266 find_package(TBB REQUIRED)
267 if (${TBB_INTERFACE_VERSION} LESS 5005)
268         unset(TBB_FOUND CACHE)
269         unset(TBB_INCLUDE_DIRS CACHE)
270         unset(TBB_LIBRARIES CACHE)
271         message(FATAL_ERROR "TBB is too old, please install at least 3.0(5005), preferably 4.0(6000) or higher")
272 endif()
273 include_directories(${TBB_INCLUDE_DIRS})
274 link_directories(${TBB_LIBRARY_DIRS})
276 # mcrypt libs
277 find_package(Mcrypt REQUIRED)
278 include_directories(${Mcrypt_INCLUDE_DIR})
280 # OpenSSL libs
281 find_package(OpenSSL REQUIRED)
282 include_directories(${OPENSSL_INCLUDE_DIR})
284 # ZLIB
285 find_package(ZLIB REQUIRED)
286 include_directories(${ZLIB_INCLUDE_DIR})
288 find_package(BZip2 REQUIRED)
289 include_directories(${BZIP2_INCLUDE_DIR})
290 add_definitions(${BZIP2_DEFINITIONS})
292 # oniguruma
293 find_package(ONIGURUMA REQUIRED)
294 include_directories(${ONIGURUMA_INCLUDE_DIRS})
296 # LDAP
297 find_package(Ldap REQUIRED)
298 include_directories(${LDAP_INCLUDE_DIR})
300 # ncurses, readline and history
301 #set(CURSES_NEED_NCURSES true)
302 find_package(Ncurses REQUIRED)
303 include_directories(${NCURSES_INCLUDE_PATH})
305 # libpthreads
306 find_package(PThread REQUIRED)
307 include_directories(${LIBPTHREAD_INCLUDE_DIRS})
309 # Either Readline or Editline (for hphpd)
310 find_package(Readline)
311 find_package(Editline)
312 if (READLINE_INCLUDE_DIR)
313         include_directories(${READLINE_INCLUDE_DIR})
314 elseif (EDITLINE_INCLUDE_DIRS)
315         add_definitions("-DUSE_EDITLINE")
316         include_directories(${EDITLINE_INCLUDE_DIRS})
317 else()
318         message(FATAL_ERROR "Could not find Readline or Editline")
319 endif()
321 find_package(CClient REQUIRED)
322 include_directories(${CCLIENT_INCLUDE_PATH})
324 find_package(LibDwarf REQUIRED)
325 include_directories(${LIBDWARF_INCLUDE_DIRS})
326 if (LIBDWARF_HAVE_ENCODE_LEB128)
327         add_definitions("-DHAVE_LIBDWARF_20130729")
328 endif()
330 find_package(LibElf REQUIRED)
331 include_directories(${LIBELF_INCLUDE_DIRS})
332 if (ELF_GETSHDRSTRNDX)
333         add_definitions("-DHAVE_ELF_GETSHDRSTRNDX")
334 endif()
336 CONTAINS_STRING("${CCLIENT_INCLUDE_PATH}/utf8.h" U8T_DECOMPOSE RECENT_CCLIENT)
337 if (NOT RECENT_CCLIENT)
338         unset(RECENT_CCLIENT CACHE)
339         message(FATAL_ERROR "Your version of c-client is too old, you need 2007")
340 endif()
343 if (EXISTS "${CCLIENT_INCLUDE_PATH}/linkage.c")
344         CONTAINS_STRING("${CCLIENT_INCLUDE_PATH}/linkage.c" auth_gss CCLIENT_HAS_GSS)
345 elseif (EXISTS "${CCLIENT_INCLUDE_PATH}/linkage.h")
346     CONTAINS_STRING("${CCLIENT_INCLUDE_PATH}/linkage.h" auth_gss CCLIENT_HAS_GSS)
347 endif()
349 find_package(Libpam)
350 if (PAM_INCLUDE_PATH)
351         include_directories(${PAM_INCLUDE_PATH})
352 endif()
354 if (NOT CCLIENT_HAS_GSS)
355         add_definitions(-DSKIP_IMAP_GSS=1)
356 endif()
358 if (EXISTS "${CCLIENT_INCLUDE_PATH}/linkage.c")
359         CONTAINS_STRING("${CCLIENT_INCLUDE_PATH}/linkage.c" ssl_onceonlyinit CCLIENT_HAS_SSL)
360 elseif (EXISTS "${CCLIENT_INCLUDE_PATH}/linkage.h")
361         CONTAINS_STRING("${CCLIENT_INCLUDE_PATH}/linkage.h" ssl_onceonlyinit CCLIENT_HAS_SSL)
362 endif()
364 if (NOT CCLIENT_HAS_SSL)
365         add_definitions(-DSKIP_IMAP_SSL=1)
366 endif()
368 FIND_LIBRARY(CRYPT_LIB NAMES xcrypt crypt crypto)
369 if (LINUX OR FREEBSD)
370         FIND_LIBRARY (RT_LIB rt)
371 endif()
373 if (LINUX)
374         FIND_LIBRARY (CAP_LIB cap)
376         if (NOT CAP_LIB)
377                 message(FATAL_ERROR "You need to install libcap")
378         endif()
379 endif()
381 if (LINUX OR APPLE)
382         FIND_LIBRARY (DL_LIB dl)
383         FIND_LIBRARY (RESOLV_LIB resolv)
384 endif()
386 FIND_LIBRARY (BFD_LIB bfd)
387 FIND_LIBRARY (LIBIBERTY_LIB iberty)
389 if (NOT BFD_LIB)
390         message(FATAL_ERROR "You need to install binutils")
391 endif()
393 if (NOT LIBIBERTY_LIB)
394         message(FATAL_ERROR "You need to install libiberty (usually bundled with binutils)")
395 endif()
397 if (FREEBSD)
398         FIND_LIBRARY (EXECINFO_LIB execinfo)
399         if (NOT EXECINFO_LIB)
400                 message(FATAL_ERROR "You need to install libexecinfo")
401         endif()
402 endif()
404 if (APPLE)
405         find_library(LIBINTL_LIBRARIES NAMES intl libintl)
406         if (LIBINTL_INCLUDE_DIR)
407                 include_directories(${LIBINTL_INCLUDE_DIR})
408         endif()
409         find_library(KERBEROS_LIB NAMES gssapi_krb5)
410 endif()
412 #find_package(BISON REQUIRED)
413 #find_package(FLEX REQUIRED)
415 #if (${FLEX_VERSION} VERSION_LESS 2.5.33)
416 #       message(FATAL_ERROR "Flex is too old, found ${FLEX_VERSION} and we need 2.5.33")
417 #endif()
419 include_directories(${HPHP_HOME}/hphp)
420 include_directories(${HPHP_HOME}/hphp/system/gen)
422 macro(hphp_link target)
423         if (LIBDL_LIBRARIES)
424                 target_link_libraries(${target} ${LIBDL_LIBRARIES})
425         endif ()
427         if (GOOGLE_HEAP_PROFILER_ENABLED OR GOOGLE_CPU_PROFILER_ENABLED)
428                 target_link_libraries(${target} ${GOOGLE_PROFILER_LIB})
429         endif()
431         if (JEMALLOC_ENABLED)
432                 target_link_libraries(${target} ${JEMALLOC_LIB})
433         endif()
435         if (GOOGLE_HEAP_PROFILER_ENABLED)
436                 target_link_libraries(${target} ${GOOGLE_TCMALLOC_FULL_LIB})
437         elseif (GOOGLE_TCMALLOC_ENABLED)
438                 target_link_libraries(${target} ${GOOGLE_TCMALLOC_MIN_LIB})
439         endif()
441         target_link_libraries(${target} ${Boost_LIBRARIES})
442         target_link_libraries(${target} ${MYSQL_CLIENT_LIBS})
443         target_link_libraries(${target} ${PCRE_LIBRARY})
444         target_link_libraries(${target} ${ICU_DATA_LIBRARIES} ${ICU_I18N_LIBRARIES} ${ICU_LIBRARIES})
445         target_link_libraries(${target} ${LIBEVENT_LIB})
446         target_link_libraries(${target} ${CURL_LIBRARIES})
447         target_link_libraries(${target} ${LIBGLOG_LIBRARY})
448         target_link_libraries(${target} ${LIBMAGICKWAND_LIBRARIES})
450 if (LibXed_LIBRARY)
451         target_link_libraries(${target} ${LibXed_LIBRARY})
452 endif()
454 if (LIBINOTIFY_LIBRARY)
455         target_link_libraries(${target} ${LIBINOTIFY_LIBRARY})
456 endif()
458 if (LIBICONV_LIBRARY)
459         target_link_libraries(${target} ${LIBICONV_LIBRARY})
460 endif()
463 if (LINUX)
464         target_link_libraries(${target} ${CAP_LIB})
465 endif()
467 if (LINUX OR APPLE)
468         target_link_libraries(${target} ${RESOLV_LIB})
469         target_link_libraries(${target} ${DL_LIB})
470 endif()
472 if (FREEBSD)
473         target_link_libraries(${target} ${EXECINFO_LIB})
474 endif()
476 if (APPLE)
477         target_link_libraries(${target} ${LIBINTL_LIBRARIES})
478         target_link_libraries(${target} ${KERBEROS_LIB})
479 endif()
481         target_link_libraries(${target} ${BFD_LIB})
482         target_link_libraries(${target} ${LIBIBERTY_LIB})
483 if (${LIBPTHREAD_LIBRARIES})
484         target_link_libraries(${target} ${LIBPTHREAD_LIBRARIES})
485 endif()
486         target_link_libraries(${target} ${TBB_LIBRARIES})
487         target_link_libraries(${target} ${OPENSSL_LIBRARIES})
488         target_link_libraries(${target} ${ZLIB_LIBRARIES})
489         target_link_libraries(${target} ${BZIP2_LIBRARIES})
491         target_link_libraries(${target} ${LIBXML2_LIBRARIES})
492         target_link_libraries(${target} ${EXPAT_LIBRARY})
493         target_link_libraries(${target} ${ONIGURUMA_LIBRARIES})
494         target_link_libraries(${target} ${Mcrypt_LIB})
495         target_link_libraries(${target} ${GD_LIBRARY})
496 if (FREETYPE_LIBRARIES)
497         target_link_libraries(${target} ${FREETYPE_LIBRARIES})
498 endif()
499 if (LIBJPEG_LIBRARIES)
500         target_link_libraries(${target} ${LIBJPEG_LIBRARIES})
501 endif()
502 if (LIBPNG_LIBRARIES)
503         target_link_libraries(${target} ${LIBPNG_LIBRARIES})
504 endif()
505 if (LIBVPX_LIBRARIES)
506         target_link_libraries(${target} ${LIBVPX_LIBRARIES})
507 endif()
508 if (LIBUODBC_LIBRARIES)
509         target_link_libraries(${target} ${LIBUODBC_LIBRARIES})
510 endif()
511         target_link_libraries(${target} ${LDAP_LIBRARIES})
512         target_link_libraries(${target} ${LBER_LIBRARIES})
514         target_link_libraries(${target} ${LIBMEMCACHED_LIBRARY})
516         target_link_libraries(${target} ${CRYPT_LIB})
517         if (LINUX OR FREEBSD)
518                 target_link_libraries(${target} ${RT_LIB})
519         endif()
521         target_link_libraries(${target} timelib)
522         target_link_libraries(${target} sqlite3)
523         target_link_libraries(${target} lz4)
524         target_link_libraries(${target} double-conversion)
525         target_link_libraries(${target} folly)
526         target_link_libraries(${target} zip_static)
528         target_link_libraries(${target} afdt)
529         target_link_libraries(${target} mbfl)
531         if (READLINE_LIBRARY)
532                 target_link_libraries(${target} ${READLINE_LIBRARY})
533         elseif (EDITLINE_LIBRARIES)
534                 target_link_libraries(${target} ${EDITLINE_LIBRARIES})
535         endif()
537         target_link_libraries(${target} ${NCURSES_LIBRARY})
538         target_link_libraries(${target} ${CCLIENT_LIBRARY})
540         if (PAM_LIBRARY)
541                 target_link_libraries(${target} ${PAM_LIBRARY})
542         endif()
544         target_link_libraries(${target} ${LIBDWARF_LIBRARIES})
545         target_link_libraries(${target} ${LIBELF_LIBRARIES})
547 endmacro()