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…