Got to the bottom of it: HAVE_QCA2 is set *after* the config.h is created in CMakeLists.txt, which because CMaske is awful means the #define is never created.
(this appears to be an upstream bug, revision a4e0c5e9 or thereabouts) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd5fe62..390dec8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,11 +52,11 @@ check_include_file("stropts.h" HAVE_STROPTS_H) check_include_file("byteswap.h" HAVE_BYTESWAP_H) check_include_file("sys/endian.h" HAVE_SYS_ENDIAN_H) +set(HAVE_QCA2 ${Qca-qt5_FOUND}) + configure_file(config-konversation.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config- konversation.h ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) -set(HAVE_QCA2 ${Qca-qt5_FOUND}) - add_definitions( -DQT_USE_QSTRINGBUILDER -DQT_NO_CAST_TO_ASCII