From e6c0bd53164bd30bbe038c80a370707847fc266c Mon Sep 17 00:00:00 2001 From: Maksym Mamontov Date: Mon, 22 Aug 2022 17:44:46 +0300 Subject: [PATCH] Check if we can use C++17 with XMLRPC-C. --- checks/xmlrpc-c-auto_ptr.cpp | 6 ++++++ projects/stargazer/plugins/CMakeLists.txt | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 checks/xmlrpc-c-auto_ptr.cpp diff --git a/checks/xmlrpc-c-auto_ptr.cpp b/checks/xmlrpc-c-auto_ptr.cpp new file mode 100644 index 00000000..b47c9e6c --- /dev/null +++ b/checks/xmlrpc-c-auto_ptr.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + return 0; +} diff --git a/projects/stargazer/plugins/CMakeLists.txt b/projects/stargazer/plugins/CMakeLists.txt index 2b5c0467..8adb6c5f 100644 --- a/projects/stargazer/plugins/CMakeLists.txt +++ b/projects/stargazer/plugins/CMakeLists.txt @@ -138,7 +138,12 @@ if ( BUILD_MOD_SGCONFIG ) endif ( BUILD_MOD_SGCONFIG ) if ( BUILD_MOD_RPCCONFIG ) - find_package ( XMLRPC 1.54 REQUIRED c++ abyss-server ) + find_package ( XMLRPC 1.58.0 REQUIRED c++2 abyss-server ) + try_compile ( XMLRPC_C_NO_AUTO_PTR ${CMAKE_CURRENT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/checks/xmlrpc-c-auto_ptr.cpp" CMAKE_FLAGS -DINCLUDE_DIRECTORIES=${XMLRPC_INCLUDE_DIRS} LINK_LIBRARIES ${XMLRPC_LIBRARIES} OUTPUT_VARIABLE TRY_COMPILE_OUTPUT ) + if ( NOT XMLRPC_C_NO_AUTO_PTR ) + message ( WARNING ${TRY_COMPILE_OUTPUT} ) + message ( FATAL_ERROR "Your version of XMLRPC-C library can not be used with C++17. Try upgrading to at least 1.58.0." ) + endif () include_directories ( ${XMLRPC_INCLUDE_DIRS} ) add_library ( mod_conf_rpc MODULE configuration/rpcconfig/rpcconfig.cpp configuration/rpcconfig/user_helper.cpp -- 2.43.2