]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/CMakeLists.txt
Check if we can use C++17 with XMLRPC-C.
[stg.git] / projects / stargazer / plugins / CMakeLists.txt
index c30f92cfc073b3850d0178032ea1205e17f1371f..8adb6c5f9d5685f244607f7b13a996651a03a53a 100644 (file)
@@ -138,7 +138,12 @@ if ( BUILD_MOD_SGCONFIG )
 endif ( BUILD_MOD_SGCONFIG )
 
 if ( BUILD_MOD_RPCCONFIG )
-    find_package ( XMLRPC 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
@@ -148,7 +153,7 @@ if ( BUILD_MOD_RPCCONFIG )
                                       configuration/rpcconfig/tariffs_methods.cpp
                                       configuration/rpcconfig/admins_methods.cpp
                                       configuration/rpcconfig/messages_methods.cpp )
-                              target_link_libraries ( mod_conf_rpc scriptexecuter logger common ${XMLRPC_LIBRARIES} )
+    target_link_libraries ( mod_conf_rpc scriptexecuter logger common ${XMLRPC_LIBRARIES} )
     set_target_properties ( mod_conf_rpc PROPERTIES PREFIX "" )
 
     if ( CLANG_TIDY_EXE )
@@ -219,26 +224,26 @@ if ( BUILD_MOD_STORE_FILES )
     endif ()
 endif ( BUILD_MOD_STORE_FILES )
 
-#if ( BUILD_MOD_STORE_FIREBIRD )
-#    find_package ( FBClient REQUIRED )
-#    add_library ( mod_store_firebird MODULE store/firebird/firebird_store.cpp
-#                                            store/firebird/firebird_store_admins.cpp
-#                                            store/firebird/firebird_store_corporations.cpp
-#                                            store/firebird/firebird_store_messages.cpp
-#                                            store/firebird/firebird_store_services.cpp
-#                                            store/firebird/firebird_store_tariffs.cpp
-#                                            store/firebird/firebird_store_users.cpp
-#                                            store/firebird/firebird_store_utils.cpp )
-#    target_link_libraries ( mod_store_firebird crypto common logger ibpp FBClient::FBClient )
-#    set_target_properties ( mod_store_firebird PROPERTIES PREFIX "" )
-#
-#    if ( CLANG_TIDY_EXE )
-#        set_target_properties ( mod_store_firebird PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
-#    endif ()
-#    if ( INCLUDE_WHAT_YOU_USE_EXE )
-#        set_target_properties ( mod_store_firebird PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
-#    endif ()
-#endif ( BUILD_MOD_STORE_FIREBIRD )
+if ( BUILD_MOD_STORE_FIREBIRD )
+    find_package ( FBClient REQUIRED )
+    add_library ( mod_store_firebird MODULE store/firebird/firebird_store.cpp
+                                            store/firebird/firebird_store_admins.cpp
+                                            store/firebird/firebird_store_corporations.cpp
+                                            store/firebird/firebird_store_messages.cpp
+                                            store/firebird/firebird_store_services.cpp
+                                            store/firebird/firebird_store_tariffs.cpp
+                                            store/firebird/firebird_store_users.cpp
+                                            store/firebird/firebird_store_utils.cpp )
+    target_link_libraries ( mod_store_firebird crypto common logger ibpp FBClient::FBClient )
+    set_target_properties ( mod_store_firebird PROPERTIES PREFIX "" )
+
+    if ( CLANG_TIDY_EXE )
+        set_target_properties ( mod_store_firebird PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
+    endif ()
+    if ( INCLUDE_WHAT_YOU_USE_EXE )
+        set_target_properties ( mod_store_firebird PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
+    endif ()
+endif ( BUILD_MOD_STORE_FIREBIRD )
 
 if ( BUILD_MOD_STORE_MYSQL )
     find_package ( MySQLConnector REQUIRED )