From f5a131ab66fec23d0c79b55fc3907603b094deb9 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 31 Dec 2019 18:13:29 +0100 Subject: [PATCH] cmake/FindPOPT.cmake: Add PkgConfig support Add PkgConfig support to retrieve popt dependencies otherwise static build can fail if popt has been linked with iconv: [100%] Linking C executable rdiff /home/buildroot/autobuild/instance-2/output-1/per-package/librsync/host/opt/ext-toolchain/bin/../lib/gcc/powerpc-buildroot-linux-uclibc/8.3.0/../../../../powerpc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/instance-2/output-1/per-package/librsync/host/powerpc-buildroot-linux-uclibc/sysroot/usr/lib/libpopt.a(poptint.o): in function `POPT_fprintf': poptint.c:(.text+0x34c): undefined reference to `libiconv_open Fixes: - http://autobuild.buildroot.org/results/896e8e3efbedad90d66ae8c4e1e50f16206cab49 Signed-off-by: Fabrice Fontaine [Upstream status: https://github.com/librsync/librsync/pull/186] --- cmake/FindPOPT.cmake | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/cmake/FindPOPT.cmake b/cmake/FindPOPT.cmake index 1ca452a..87b3e95 100644 --- a/cmake/FindPOPT.cmake +++ b/cmake/FindPOPT.cmake @@ -42,20 +42,27 @@ if (NOT POPT_FOUND) endif (NOT POPT_ROOT_DIR) ##_____________________________________________________________________________ - ## Check for the header files + ## Check with PkgConfig (to retrieve static dependencies such as iconv) + find_package(PkgConfig QUIET) + pkg_search_module (POPT QUIET popt) + if (NOT POPT_FOUND) - find_path (POPT_INCLUDE_DIRS popt.h - HINTS ${POPT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} $ENV{programfiles}\\GnuWin32 $ENV{programfiles32}\\GnuWin32 - PATH_SUFFIXES include - ) + ##_____________________________________________________________________________ + ## Check for the header files - ##_____________________________________________________________________________ - ## Check for the library + find_path (POPT_INCLUDE_DIRS popt.h + HINTS ${POPT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} $ENV{programfiles}\\GnuWin32 $ENV{programfiles32}\\GnuWin32 + PATH_SUFFIXES include + ) - find_library (POPT_LIBRARIES popt - HINTS ${POPT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} $ENV{programfiles}\\GnuWin32 $ENV{programfiles32}\\GnuWin32 - PATH_SUFFIXES lib - ) + ##_____________________________________________________________________________ + ## Check for the library + + find_library (POPT_LIBRARIES popt + HINTS ${POPT_ROOT_DIR} ${CMAKE_INSTALL_PREFIX} $ENV{programfiles}\\GnuWin32 $ENV{programfiles32}\\GnuWin32 + PATH_SUFFIXES lib + ) + endif (POPT_FOUND) ##_____________________________________________________________________________ ## Actions taken when all components have been found -- 2.24.0