joerg-krause writes

libmpdclient, libmicrohttpd and jsoncpp provide a .pc file. Use pkg-config for detecting the libraries and for providing the necessary details for compiling and linking.

The current build system of upmpdcli does not use PKG_CHECK_MODULES, but AC_LINK_IFELSE to detect jsoncpp. After bumping jsoncpp version from 1.7.2 to 1.7.5 the detection fails, because the test program does not compile anymore:

In file included from
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/autolink.h:9:0,
                 from
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/json.h:9,
                 from test.c:1:
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/config.h:155:9:
error: 'int64_t' does not name a type
 typedef int64_t Int64;
         ^
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/config.h:156:9:
error: 'uint64_t' does not name a type
 typedef uint64_t UInt64;
         ^
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/config.h:158:9:
error: 'Int64' does not name a type
 typedef Int64 LargestInt;
         ^
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/config.h:159:9:
error: 'UInt64' does not name a type
 typedef UInt64 LargestUInt;
         ^
In file included from
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/json.h:10:0,
                 from test.c:1:
/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/json/value.h:184:11:
error: 'UInt64' in namespace 'Json' does not name a type
   typedef Json::UInt64 UInt64;

[..]

Instead of fixing the test program use PKG_CHECK_MODULES to check for jsoncpp. While we’re on it, add it for libmpdclient and libmicrohttpd, too.

Closes: #51

medoc92 writes

Thanks. Seems reasonable to use pkg-config for everything now that we’re in bed with it…