From 8f5af6172a3f8bbad85ad3495f94e20557942670 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 11 Jun 2009 11:24:56 -0400 Subject: [PATCH] ENH: Disable the xmlrpc drop method by default We've chosen to drop our default dependence on xmlrpc. Thus we disable the corresponding CTest submission method and remove the sources for building xmlrpc locally. Users can re-enable the method by setting the CTEST_USE_XMLRPC option to use a system-installed xmlrpc library. --- CMakeLists.txt | 31 +++++++++++---------------- CTestCustom.cmake.in | 1 - Source/CTest/cmCTestSubmitHandler.cxx | 17 +++++++++++++++ Utilities/cmThirdParty.h.in | 2 +- Utilities/cm_xmlrpc.h | 5 +---- 5 files changed, 32 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95a9f9a01..b657f6d15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,10 @@ MACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) # Options have dependencies. INCLUDE(CMakeDependentOption) + # Optionally use system xmlrpc. We no longer build or use it by default. + OPTION(CTEST_USE_XMLRPC "Enable xmlrpc submission method in CTest." OFF) + MARK_AS_ADVANCED(CTEST_USE_XMLRPC) + # Allow the user to enable/disable all system utility library options # by setting CMAKE_USE_SYSTEM_LIBRARIES on the command line. IF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES) @@ -31,19 +35,15 @@ MACRO(CMAKE_HANDLE_SYSTEM_LIBRARIES) CACHE BOOL "Use system-installed curl" FORCE) SET(CMAKE_USE_SYSTEM_EXPAT "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed expat" FORCE) - SET(CMAKE_USE_SYSTEM_XMLRPC "${CMAKE_USE_SYSTEM_LIBRARIES}" - CACHE BOOL "Use system-installed xmlrpc" FORCE) SET(CMAKE_USE_SYSTEM_ZLIB "${CMAKE_USE_SYSTEM_LIBRARIES}" CACHE BOOL "Use system-installed zlib" FORCE) ENDIF(CMAKE_USE_SYSTEM_LIBRARIES_USER) # Optionally use system utility libraries. - OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" - ${CMAKE_USE_SYSTEM_LIBRARIES}) - OPTION(CMAKE_USE_SYSTEM_XMLRPC "Use system-installed xmlrpc" - ${CMAKE_USE_SYSTEM_LIBRARIES}) + CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CTEST_USE_XMLRPC" ON) CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" - ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_XMLRPC" ON) + ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CTEST_USE_XMLRPC" ON) CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib" ${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON) @@ -294,19 +294,15 @@ MACRO (CMAKE_BUILD_UTILITIES) #--------------------------------------------------------------------- # Build XMLRPC library for CMake and CTest. - IF(CMAKE_USE_SYSTEM_XMLRPC) + IF(CTEST_USE_XMLRPC) FIND_PACKAGE(XMLRPC QUIET REQUIRED libwww-client) IF(NOT XMLRPC_FOUND) MESSAGE(FATAL_ERROR - "CMAKE_USE_SYSTEM_XMLRPC is ON but a xmlrpc is not found!") + "CTEST_USE_XMLRPC is ON but xmlrpc is not found!") ENDIF(NOT XMLRPC_FOUND) SET(CMAKE_XMLRPC_INCLUDES ${XMLRPC_INCLUDE_DIRS}) SET(CMAKE_XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES}) - ELSE(CMAKE_USE_SYSTEM_XMLRPC) - SET(CMAKE_XMLRPC_INCLUDES) - SET(CMAKE_XMLRPC_LIBRARIES cmXMLRPC) - SUBDIRS(Utilities/cmxmlrpc) - ENDIF(CMAKE_USE_SYSTEM_XMLRPC) + ENDIF(CTEST_USE_XMLRPC) #--------------------------------------------------------------------- # Use curses? @@ -426,20 +422,19 @@ IF(BUILD_QtDialog) ENDIF(BUILD_QtDialog) -# The same might be true on other systems for other libraries if -# CMAKE_USE_SYSTEM_XMLRPC or other variables like this are enabled. +# The same might be true on other systems for other libraries. # Then only enable RPATH if we have are building at least with cmake 2.4, # since this one has much better RPATH features than cmake 2.2. # The executables are then built with the RPATH for the libraries outside # the build tree, which is both the build and the install RPATH. IF (UNIX) IF( CMAKE_USE_SYSTEM_CURL OR CMAKE_USE_SYSTEM_ZLIB - OR CMAKE_USE_SYSTEM_EXPAT OR CMAKE_USE_SYSTEM_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) + OR CMAKE_USE_SYSTEM_EXPAT OR CTEST_USE_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) SET(CMAKE_SKIP_RPATH OFF CACHE INTERNAL "CMake built with RPATH.") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) ENDIF(CMAKE_USE_SYSTEM_CURL OR CMAKE_USE_SYSTEM_ZLIB - OR CMAKE_USE_SYSTEM_EXPAT OR CMAKE_USE_SYSTEM_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) + OR CMAKE_USE_SYSTEM_EXPAT OR CTEST_USE_XMLRPC OR CURSES_NEED_RPATH OR QT_NEED_RPATH) ENDIF (UNIX) diff --git a/CTestCustom.cmake.in b/CTestCustom.cmake.in index 1b18ece96..98f6d6f94 100644 --- a/CTestCustom.cmake.in +++ b/CTestCustom.cmake.in @@ -12,7 +12,6 @@ SET(CTEST_CUSTOM_WARNING_EXCEPTION "not sorted slower link editing will result" "stl_deque.h:479" "Utilities.cmzlib." - "Utilities.cmxmlrpc." "Source.CTest.Curl" "Utilities.cmcurl" "Source.CursesDialog.form" diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index 76dc6e6e6..0c787f586 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -727,6 +727,7 @@ bool cmCTestSubmitHandler::SubmitUsingCP( //---------------------------------------------------------------------------- +#if defined(CTEST_USE_XMLRPC) bool cmCTestSubmitHandler::SubmitUsingXMLRPC(const cmStdString& localprefix, const std::set& files, const cmStdString& remoteprefix, @@ -824,6 +825,15 @@ bool cmCTestSubmitHandler::SubmitUsingXMLRPC(const cmStdString& localprefix, xmlrpc_client_cleanup(); return true; } +#else +bool cmCTestSubmitHandler::SubmitUsingXMLRPC(cmStdString const&, + std::set const&, + cmStdString const&, + cmStdString const&) +{ + return false; +} +#endif //---------------------------------------------------------------------------- int cmCTestSubmitHandler::ProcessHandler() @@ -1137,6 +1147,7 @@ int cmCTestSubmitHandler::ProcessHandler() } else if ( dropMethod == "xmlrpc" ) { +#if defined(CTEST_USE_XMLRPC) ofs << "Using drop method: XML-RPC" << std::endl; cmCTestLog(this->CTest, HANDLER_OUTPUT, " Using XML-RPC submit method" << std::endl); @@ -1154,6 +1165,12 @@ int cmCTestSubmitHandler::ProcessHandler() << std::endl); ofs << " Submission successful" << std::endl; return 0; +#else + cmCTestLog(this->CTest, ERROR_MESSAGE, + " Submission method \"xmlrpc\" not compiled into CTest!" + << std::endl); + return -1; +#endif } else if ( dropMethod == "scp" ) { diff --git a/Utilities/cmThirdParty.h.in b/Utilities/cmThirdParty.h.in index 845a1bd5f..2866dab48 100644 --- a/Utilities/cmThirdParty.h.in +++ b/Utilities/cmThirdParty.h.in @@ -20,7 +20,7 @@ /* Whether CMake is using its own utility libraries. */ #cmakedefine CMAKE_USE_SYSTEM_CURL #cmakedefine CMAKE_USE_SYSTEM_EXPAT -#cmakedefine CMAKE_USE_SYSTEM_XMLRPC #cmakedefine CMAKE_USE_SYSTEM_ZLIB +#cmakedefine CTEST_USE_XMLRPC #endif diff --git a/Utilities/cm_xmlrpc.h b/Utilities/cm_xmlrpc.h index 95655bff4..0f05c9efc 100644 --- a/Utilities/cm_xmlrpc.h +++ b/Utilities/cm_xmlrpc.h @@ -19,12 +19,9 @@ /* Use the xmlrpc library configured for CMake. */ #include "cmThirdParty.h" -#ifdef CMAKE_USE_SYSTEM_XMLRPC +#ifdef CTEST_USE_XMLRPC # include # include -#else -# include -# include #endif #endif