| From f5a131ab66fec23d0c79b55fc3907603b094deb9 Mon Sep 17 00:00:00 2001 |
| From: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| 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 <fontaine.fabrice@gmail.com> |
| [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 |
| |