mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 12:09:48 +00:00
ENH: Add options to build with system utility libraries. Organize inclusion of third party libraries into a single header per library. This addresses bug#3653.
This commit is contained in:
parent
de007ef199
commit
f91b3c1daa
153
CMakeLists.txt
153
CMakeLists.txt
@ -71,27 +71,116 @@ SET(KWSYS_HEADER_ROOT ${CMake_BINARY_DIR}/Source)
|
||||
SUBDIRS(Source/kwsys)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build zlib library for Curl, CMake, and CTest.
|
||||
SUBDIRS(Utilities/cmzlib)
|
||||
SET(CMAKE_ZLIB_INCLUDES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Utilities"
|
||||
# Setup third-party libraries.
|
||||
|
||||
# Everything in the tree should be able to include files from the
|
||||
# Utilities directory.
|
||||
INCLUDE_DIRECTORIES(
|
||||
${CMake_SOURCE_DIR}/Utilities
|
||||
${CMake_BINARY_DIR}/Utilities
|
||||
)
|
||||
SET(CMAKE_ZLIB_LIBRARIES "cmzlib")
|
||||
SET(CURL_SPECIAL_LIBZ ${CMAKE_ZLIB_LIBRARIES})
|
||||
SET(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES})
|
||||
SET(CURL_SPECIAL_ZLIB_H "cmzlib/zlib.h")
|
||||
|
||||
# Third party libraries must be something that can be found.
|
||||
IF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake)
|
||||
SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 1)
|
||||
ELSE(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake)
|
||||
SET(CMAKE_ALLOW_SYSTEM_LIBRARIES 0)
|
||||
ENDIF(EXISTS ${CMAKE_ROOT}/Modules/FindXMLRPC.cmake)
|
||||
|
||||
IF(CMAKE_ALLOW_SYSTEM_LIBRARIES)
|
||||
# Options have dependencies.
|
||||
INCLUDE(CMakeDependentOption)
|
||||
|
||||
# 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)
|
||||
SET(CMAKE_USE_SYSTEM_LIBRARIES_USER 1)
|
||||
ENDIF(DEFINED CMAKE_USE_SYSTEM_LIBRARIES)
|
||||
IF(CMAKE_USE_SYSTEM_LIBRARIES)
|
||||
SET(CMAKE_USE_SYSTEM_LIBRARIES ON)
|
||||
ELSE(CMAKE_USE_SYSTEM_LIBRARIES)
|
||||
SET(CMAKE_USE_SYSTEM_LIBRARIES OFF)
|
||||
ENDIF(CMAKE_USE_SYSTEM_LIBRARIES)
|
||||
IF(CMAKE_USE_SYSTEM_LIBRARIES_USER)
|
||||
SET(CMAKE_USE_SYSTEM_CURL "${CMAKE_USE_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_EXPAT "Use system-installed expat"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_XMLRPC" ON)
|
||||
CMAKE_DEPENDENT_OPTION(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib"
|
||||
${CMAKE_USE_SYSTEM_LIBRARIES} "NOT CMAKE_USE_SYSTEM_CURL" ON)
|
||||
|
||||
# There is currently no option for system tar because the upstream
|
||||
# libtar does not have our modifications to allow reentrant
|
||||
# object-oriented use of the library.
|
||||
# OPTION(CMAKE_USE_SYSTEM_TAR "Use system-installed tar" OFF)
|
||||
ELSE(CMAKE_ALLOW_SYSTEM_LIBRARIES)
|
||||
SET(CMAKE_USE_SYSTEM_CURL 0)
|
||||
SET(CMAKE_USE_SYSTEM_EXPAT 0)
|
||||
SET(CMAKE_USE_SYSTEM_XMLRPC 0)
|
||||
SET(CMAKE_USE_SYSTEM_ZLIB 0)
|
||||
ENDIF(CMAKE_ALLOW_SYSTEM_LIBRARIES)
|
||||
|
||||
# Inform utility library header wrappers whether to use system versions.
|
||||
CONFIGURE_FILE(${CMake_SOURCE_DIR}/Utilities/cmThirdParty.h.in
|
||||
${CMake_BINARY_DIR}/Utilities/cmThirdParty.h
|
||||
@ONLY IMMEDIATE)
|
||||
|
||||
# Mention to the user what system libraries are being used.
|
||||
FOREACH(util CURL EXPAT XMLRPC ZLIB)
|
||||
IF(CMAKE_USE_SYSTEM_${util})
|
||||
MESSAGE(STATUS "Using system-installed ${util}")
|
||||
ENDIF(CMAKE_USE_SYSTEM_${util})
|
||||
ENDFOREACH(util)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build zlib library for Curl, CMake, and CTest.
|
||||
SET(CMAKE_ZLIB_HEADER "cm_zlib.h")
|
||||
IF(CMAKE_USE_SYSTEM_ZLIB)
|
||||
FIND_PACKAGE(ZLIB)
|
||||
IF(NOT ZLIB_FOUND)
|
||||
MESSAGE(FATAL_ERROR "CMAKE_USE_SYSTEM_ZLIB is ON but a zlib is not found!")
|
||||
ENDIF(NOT ZLIB_FOUND)
|
||||
SET(CMAKE_ZLIB_INCLUDES ${ZLIB_INCLUDE_DIR})
|
||||
SET(CMAKE_ZLIB_LIBRARIES ${ZLIB_LIBRARIES})
|
||||
ELSE(CMAKE_USE_SYSTEM_ZLIB)
|
||||
SUBDIRS(Utilities/cmzlib)
|
||||
SET(CMAKE_ZLIB_INCLUDES)
|
||||
SET(CMAKE_ZLIB_LIBRARIES cmzlib)
|
||||
ENDIF(CMAKE_USE_SYSTEM_ZLIB)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build Curl library for CTest.
|
||||
SUBDIRS(Utilities/cmcurl)
|
||||
SET(CMAKE_CURL_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/Utilities")
|
||||
SET(CMAKE_CURL_LIBRARIES "cmcurl")
|
||||
IF(CMAKE_USE_SYSTEM_CURL)
|
||||
FIND_PACKAGE(CURL)
|
||||
IF(NOT CURL_FOUND)
|
||||
MESSAGE(FATAL_ERROR "CMAKE_USE_SYSTEM_CURL is ON but a curl is not found!")
|
||||
ENDIF(NOT CURL_FOUND)
|
||||
SET(CMAKE_CURL_INCLUDES ${CURL_INCLUDE_DIRS})
|
||||
SET(CMAKE_CURL_LIBRARIES ${CURL_LIBRARIES})
|
||||
ELSE(CMAKE_USE_SYSTEM_CURL)
|
||||
SET(CURL_SPECIAL_ZLIB_H ${CMAKE_ZLIB_HEADER})
|
||||
SET(CURL_SPECIAL_LIBZ_INCLUDES ${CMAKE_ZLIB_INCLUDES})
|
||||
SET(CURL_SPECIAL_LIBZ ${CMAKE_ZLIB_LIBRARIES})
|
||||
SUBDIRS(Utilities/cmcurl)
|
||||
SET(CMAKE_CURL_INCLUDES)
|
||||
SET(CMAKE_CURL_LIBRARIES cmcurl)
|
||||
ENDIF(CMAKE_USE_SYSTEM_CURL)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build Tar library for CTest.
|
||||
SET(CMTAR_ZLIB_HEADER ${CMAKE_ZLIB_HEADER})
|
||||
SET(CMTAR_ZLIB_LIBRARIES ${CMAKE_ZLIB_LIBRARIES})
|
||||
SET(CMTAR_ZLIB_INCLUDE_DIRS ${CMAKE_ZLIB_INCLUDES})
|
||||
SUBDIRS(Utilities/cmtar)
|
||||
SET(CMAKE_TAR_INCLUDES "${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmtar")
|
||||
SET(CMAKE_TAR_LIBRARIES "cmtar")
|
||||
SET(CMAKE_TAR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmtar)
|
||||
SET(CMAKE_TAR_LIBRARIES cmtar)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build Compress library for CTest.
|
||||
@ -101,19 +190,33 @@ SET(CMAKE_COMPRESS_LIBRARIES "cmcompress")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Build expat library for CMake and CTest.
|
||||
SUBDIRS(Utilities/cmexpat)
|
||||
SET(CMAKE_EXPAT_INCLUDES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Utilities"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmexpat"
|
||||
)
|
||||
SET(CMAKE_EXPAT_LIBRARIES "cmexpat")
|
||||
IF(CMAKE_USE_SYSTEM_EXPAT)
|
||||
FIND_PACKAGE(EXPAT)
|
||||
IF(NOT EXPAT_FOUND)
|
||||
MESSAGE(FATAL_ERROR
|
||||
"CMAKE_USE_SYSTEM_EXPAT is ON but a expat is not found!")
|
||||
ENDIF(NOT EXPAT_FOUND)
|
||||
SET(CMAKE_EXPAT_INCLUDES ${EXPAT_INCLUDE_DIRS})
|
||||
SET(CMAKE_EXPAT_LIBRARIES ${EXPAT_LIBRARIES})
|
||||
ELSE(CMAKE_USE_SYSTEM_EXPAT)
|
||||
SUBDIRS(Utilities/cmexpat)
|
||||
SET(CMAKE_EXPAT_INCLUDES)
|
||||
SET(CMAKE_EXPAT_LIBRARIES cmexpat)
|
||||
ENDIF(CMAKE_USE_SYSTEM_EXPAT)
|
||||
|
||||
SUBDIRS(Utilities/cmxmlrpc)
|
||||
SET(CMAKE_XMLRPC_INCLUDES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/Utilities/cmxmlrpc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Utilities/cmxmlrpc"
|
||||
)
|
||||
SET(CMAKE_XMLRPC_LIBRARIES "cmXMLRPC")
|
||||
IF(CMAKE_USE_SYSTEM_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!")
|
||||
ENDIF(NOT XMLRPC_FOUND)
|
||||
SET(CMAKE_XMLRPC_INCLUDES ${XMLRPC_INCLUDE_DIRS})
|
||||
SET(CMAKE_XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES})
|
||||
ELSE(CMAKE_USE_SYSTEM_XMLRPC)
|
||||
SUBDIRS(Utilities/cmxmlrpc)
|
||||
SET(CMAKE_XMLRPC_INCLUDES)
|
||||
SET(CMAKE_XMLRPC_LIBRARIES cmXMLRPC)
|
||||
ENDIF(CMAKE_USE_SYSTEM_XMLRPC)
|
||||
|
||||
IF (UNIX)
|
||||
FIND_PACKAGE(Curses QUIET)
|
||||
|
@ -352,6 +352,13 @@ IF(BUILD_TESTING)
|
||||
SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE)
|
||||
ENDIF(NOT CMAKE_TEST_GENERATOR)
|
||||
|
||||
SET(CMAKE_TEST_SYSTEM_LIBRARIES 0)
|
||||
FOREACH(util CURL EXPAT XMLRPC ZLIB)
|
||||
IF(CMAKE_USE_SYSTEM_${util})
|
||||
SET(CMAKE_TEST_SYSTEM_LIBRARIES 1)
|
||||
ENDIF(CMAKE_USE_SYSTEM_${util})
|
||||
ENDFOREACH(util)
|
||||
|
||||
# This variable is set by cmake, however to
|
||||
# test cmake we want to make sure that
|
||||
# the ctest from this cmake is used for testing
|
||||
@ -602,6 +609,7 @@ IF(BUILD_TESTING)
|
||||
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
|
||||
--build-options
|
||||
-DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
|
||||
-DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES}
|
||||
--test-command complex
|
||||
)
|
||||
|
||||
@ -615,6 +623,7 @@ IF(BUILD_TESTING)
|
||||
--build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
|
||||
--build-options
|
||||
-DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
|
||||
-DCMAKE_TEST_SYSTEM_LIBRARIES:BOOL=${CMAKE_TEST_SYSTEM_LIBRARIES}
|
||||
--test-command complex)
|
||||
|
||||
# ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "cmCPackLog.h"
|
||||
|
||||
#include <cmsys/SystemTools.hxx>
|
||||
#include <cmzlib/zutil.h>
|
||||
#include <cm_zlib.h>
|
||||
#include <libtar/libtar.h>
|
||||
#include <memory> // auto_ptr
|
||||
#include <fcntl.h>
|
||||
@ -94,7 +94,7 @@ int cmCPackTGZ_Data_Open(void *client_data, const char* pathname,
|
||||
mydata->ZLibStream.opaque = Z_NULL;
|
||||
int strategy = Z_DEFAULT_STRATEGY;
|
||||
if ( deflateInit2(&mydata->ZLibStream, mydata->CompressionLevel,
|
||||
Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy) != Z_OK )
|
||||
Z_DEFLATED, -MAX_WBITS, 8, strategy) != Z_OK )
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
@ -281,7 +281,8 @@ int cmCPackTGZGenerator::GenerateHeader(std::ostream* os)
|
||||
const int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */
|
||||
char header[11];
|
||||
sprintf(header, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1],
|
||||
Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE);
|
||||
Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/,
|
||||
3 /* zlib os code for UNIX, not really used anyway */);
|
||||
os->write(header, 10);
|
||||
}
|
||||
return 1;
|
||||
|
@ -25,11 +25,10 @@ PURPOSE. See the above copyright notices for more information.
|
||||
#include <cmsys/Base64.h>
|
||||
|
||||
// For XML-RPC submission
|
||||
#include "xmlrpc.h"
|
||||
#include "xmlrpc_client.h"
|
||||
#include "cm_xmlrpc.h"
|
||||
|
||||
// For curl submission
|
||||
#include "cmcurl/curl/curl.h"
|
||||
#include "cm_curl.h"
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
@ -644,12 +643,14 @@ bool cmCTestSubmitHandler::SubmitUsingXMLRPC(const cmStdString& localprefix,
|
||||
const cmStdString& url)
|
||||
{
|
||||
xmlrpc_env env;
|
||||
std::string ctestVersion = cmVersion::GetCMakeVersion();
|
||||
char ctestString[] = "CTest";
|
||||
std::string ctestVersionString = cmVersion::GetCMakeVersion();
|
||||
char* ctestVersion = const_cast<char*>(ctestVersionString.c_str());
|
||||
|
||||
cmStdString realURL = url + "/" + remoteprefix + "/Command/";
|
||||
|
||||
/* Start up our XML-RPC client library. */
|
||||
xmlrpc_client_init(XMLRPC_CLIENT_NO_FLAGS, "CTest", ctestVersion.c_str());
|
||||
xmlrpc_client_init(XMLRPC_CLIENT_NO_FLAGS, ctestString, ctestVersion);
|
||||
|
||||
/* Initialize our error-handling environment. */
|
||||
xmlrpc_env_init(&env);
|
||||
@ -697,9 +698,9 @@ bool cmCTestSubmitHandler::SubmitUsingXMLRPC(const cmStdString& localprefix,
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
std::string remoteCommand = "Submit.put";
|
||||
result = xmlrpc_client_call(&env, realURL.c_str(),
|
||||
remoteCommand.c_str(),
|
||||
char remoteCommand[] = "Submit.put";
|
||||
char* pRealURL = const_cast<char*>(realURL.c_str());
|
||||
result = xmlrpc_client_call(&env, pRealURL, remoteCommand,
|
||||
"(6)", fileBuffer, (xmlrpc_int32)fileSize );
|
||||
|
||||
delete [] fileBuffer;
|
||||
|
@ -14,7 +14,7 @@
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#include "cmcurl/curl/curl.h"
|
||||
#include "cm_curl.h"
|
||||
|
||||
#include "cmCTest.h"
|
||||
#include "cmake.h"
|
||||
|
@ -27,7 +27,7 @@
|
||||
#endif
|
||||
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
# include <cmzlib/zlib.h>
|
||||
# include <cm_zlib.h>
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@ -213,7 +213,7 @@ void cmGeneratedFileStreamBase::Close()
|
||||
int cmGeneratedFileStreamBase::CompressFile(const char* oldname,
|
||||
const char* newname)
|
||||
{
|
||||
gzFile gf = cm_zlib_gzopen(newname, "w");
|
||||
gzFile gf = gzopen(newname, "w");
|
||||
if ( !gf )
|
||||
{
|
||||
return 0;
|
||||
@ -228,15 +228,15 @@ int cmGeneratedFileStreamBase::CompressFile(const char* oldname,
|
||||
char buffer[BUFFER_SIZE];
|
||||
while ( (res = fread(buffer, 1, BUFFER_SIZE, ifs)) > 0 )
|
||||
{
|
||||
if ( !cm_zlib_gzwrite(gf, buffer, res) )
|
||||
if ( !gzwrite(gf, buffer, res) )
|
||||
{
|
||||
fclose(ifs);
|
||||
cm_zlib_gzclose(gf);
|
||||
gzclose(gf);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
fclose(ifs);
|
||||
cm_zlib_gzclose(gf);
|
||||
gzclose(gf);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
|
@ -48,7 +48,7 @@
|
||||
# include <libtar/libtar.h>
|
||||
# include <memory> // auto_ptr
|
||||
# include <fcntl.h>
|
||||
# include <cmzlib/zlib.h>
|
||||
# include <cm_zlib.h>
|
||||
#endif
|
||||
|
||||
#if defined(__sgi) && !defined(__GNUC__)
|
||||
@ -1439,7 +1439,7 @@ int cmSystemToolsGZStructOpen(void* call_data, const char *pathname,
|
||||
}
|
||||
#endif
|
||||
|
||||
gzf->GZFile = cm_zlib_gzdopen(fd, gzoflags);
|
||||
gzf->GZFile = gzdopen(fd, gzoflags);
|
||||
if (!gzf->GZFile)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
@ -1452,20 +1452,20 @@ int cmSystemToolsGZStructOpen(void* call_data, const char *pathname,
|
||||
int cmSystemToolsGZStructClose(void* call_data)
|
||||
{
|
||||
cmSystemToolsGZStruct* gzf = static_cast<cmSystemToolsGZStruct*>(call_data);
|
||||
return cm_zlib_gzclose(gzf->GZFile);
|
||||
return gzclose(gzf->GZFile);
|
||||
}
|
||||
|
||||
ssize_t cmSystemToolsGZStructRead(void* call_data, void* buf, size_t count)
|
||||
{
|
||||
cmSystemToolsGZStruct* gzf = static_cast<cmSystemToolsGZStruct*>(call_data);
|
||||
return cm_zlib_gzread(gzf->GZFile, buf, count);
|
||||
return gzread(gzf->GZFile, buf, count);
|
||||
}
|
||||
|
||||
ssize_t cmSystemToolsGZStructWrite(void* call_data, const void* buf,
|
||||
size_t count)
|
||||
{
|
||||
cmSystemToolsGZStruct* gzf = static_cast<cmSystemToolsGZStruct*>(call_data);
|
||||
return cm_zlib_gzwrite(gzf->GZFile, (void*)buf, count);
|
||||
return gzwrite(gzf->GZFile, (void*)buf, count);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -16,7 +16,7 @@
|
||||
=========================================================================*/
|
||||
#include "cmXMLParser.h"
|
||||
|
||||
#include <cmexpat/expat.h>
|
||||
#include <cm_expat.h>
|
||||
#include <ctype.h>
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
26
Utilities/cmThirdParty.h.in
Normal file
26
Utilities/cmThirdParty.h.in
Normal file
@ -0,0 +1,26 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef __cmThirdParty_h
|
||||
#define __cmThirdParty_h
|
||||
|
||||
/* 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
|
||||
|
||||
#endif
|
28
Utilities/cm_curl.h
Normal file
28
Utilities/cm_curl.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef __cm_curl_h
|
||||
#define __cm_curl_h
|
||||
|
||||
/* Use the curl library configured for CMake. */
|
||||
#include "cmThirdParty.h"
|
||||
#ifdef CMAKE_USE_SYSTEM_CURL
|
||||
# include <curl/curl.h>
|
||||
#else
|
||||
# include <cmcurl/curl/curl.h>
|
||||
#endif
|
||||
|
||||
#endif
|
28
Utilities/cm_expat.h
Normal file
28
Utilities/cm_expat.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef __cm_expat_h
|
||||
#define __cm_expat_h
|
||||
|
||||
/* Use the expat library configured for CMake. */
|
||||
#include "cmThirdParty.h"
|
||||
#ifdef CMAKE_USE_SYSTEM_EXPAT
|
||||
# include <expat.h>
|
||||
#else
|
||||
# include <cmexpat/expat.h>
|
||||
#endif
|
||||
|
||||
#endif
|
30
Utilities/cm_xmlrpc.h
Normal file
30
Utilities/cm_xmlrpc.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef __cm_xmlrpc_h
|
||||
#define __cm_xmlrpc_h
|
||||
|
||||
/* Use the xmlrpc library configured for CMake. */
|
||||
#include "cmThirdParty.h"
|
||||
#ifdef CMAKE_USE_SYSTEM_XMLRPC
|
||||
# include <xmlrpc.h>
|
||||
# include <xmlrpc_client.h>
|
||||
#else
|
||||
# include <cmxmlrpc/xmlrpc.h>
|
||||
# include <cmxmlrpc/xmlrpc_client.h>
|
||||
#endif
|
||||
|
||||
#endif
|
28
Utilities/cm_zlib.h
Normal file
28
Utilities/cm_zlib.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: CMake - Cross-Platform Makefile Generator
|
||||
Module: $RCSfile$
|
||||
Language: C++
|
||||
Date: $Date$
|
||||
Version: $Revision$
|
||||
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
#ifndef __cm_zlib_h
|
||||
#define __cm_zlib_h
|
||||
|
||||
/* Use the zlib library configured for CMake. */
|
||||
#include "cmThirdParty.h"
|
||||
#ifdef CMAKE_USE_SYSTEM_ZLIB
|
||||
# include <zlib.h>
|
||||
#else
|
||||
# include <cmzlib/zlib.h>
|
||||
#endif
|
||||
|
||||
#endif
|
@ -367,11 +367,18 @@ ENDIF(NOT HAVE_FNMATCH)
|
||||
#SET(NEED_GLOB 1)
|
||||
#ENDIF(NOT HAVE_GLOB)
|
||||
|
||||
# Setup zlib.
|
||||
IF(NOT CMTAR_ZLIB_LIBRARIES)
|
||||
MESSAGE(FATAL_ERROR "Parent project must set CMTAR_ZLIB_LIBRARIES.")
|
||||
ENDIF(NOT CMTAR_ZLIB_LIBRARIES)
|
||||
IF(NOT CMTAR_ZLIB_HEADER)
|
||||
MESSAGE(FATAL_ERROR "Parent project must set CMTAR_ZLIB_HEADER.")
|
||||
ENDIF(NOT CMTAR_ZLIB_HEADER)
|
||||
INCLUDE_DIRECTORIES(${CMTAR_ZLIB_INCLUDE_DIRS})
|
||||
|
||||
CONFIGURE_FILE(${LIBTAR_SOURCE_DIR}/config.h.in
|
||||
${LIBTAR_BINARY_DIR}/libtar/config.h)
|
||||
|
||||
ADD_LIBRARY(cmtar STATIC ${libtar_SRC})
|
||||
ADD_EXECUTABLE(tartest libtar.c)
|
||||
TARGET_LINK_LIBRARIES(tartest cmtar ${CMAKE_ZLIB_LIBRARIES})
|
||||
|
||||
TARGET_LINK_LIBRARIES(tartest cmtar ${CMTAR_ZLIB_LIBRARIES})
|
||||
|
@ -42,9 +42,6 @@
|
||||
/* Define to 1 if you have the `z' library (-lz). */
|
||||
#cmakedefine HAVE_LIBZ @HAVE_LIBZ@
|
||||
|
||||
/* Define to 1 if you have the VTK's `z' library */
|
||||
#cmakedefine HAVE_VTK_LIBZ @HAVE_VTK_LIBZ@
|
||||
|
||||
/* Define to 1 if the system has the type `major_t'. */
|
||||
#cmakedefine HAVE_MAJOR_T @HAVE_MAJOR_T@
|
||||
|
||||
@ -209,3 +206,5 @@
|
||||
|
||||
/* Define to `long long' if not defined in system header files. */
|
||||
#cmakedefine uint64_t @uint64_t@
|
||||
|
||||
#define CMTAR_ZLIB_HEADER "@CMTAR_ZLIB_HEADER@"
|
||||
|
@ -35,18 +35,7 @@
|
||||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBZ
|
||||
#ifdef HAVE_VTK_LIBZ
|
||||
# include <vtkzlib/zlib.h>
|
||||
# define cm_zlib_gzdopen gzdopen
|
||||
# define cm_zlib_gzclose gzclose
|
||||
# define cm_zlib_gzread gzread
|
||||
# define cm_zlib_gzwrite gzwrite
|
||||
|
||||
#else
|
||||
# include <cmzlib/zlib.h>
|
||||
#endif
|
||||
#endif
|
||||
#include CMTAR_ZLIB_HEADER
|
||||
|
||||
#include <libtar/compat.h>
|
||||
|
||||
@ -117,7 +106,7 @@ static int libtar_gzopen(void* call_data, const char *pathname,
|
||||
}
|
||||
#endif
|
||||
|
||||
gzf->GZFile = cm_zlib_gzdopen(fd, gzoflags);
|
||||
gzf->GZFile = gzdopen(fd, gzoflags);
|
||||
if (!gzf->GZFile)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
@ -130,19 +119,19 @@ static int libtar_gzopen(void* call_data, const char *pathname,
|
||||
static int libtar_gzclose(void* call_data)
|
||||
{
|
||||
struct gzStruct* gzf = (struct gzStruct*)call_data;
|
||||
return cm_zlib_gzclose(gzf->GZFile);
|
||||
return gzclose(gzf->GZFile);
|
||||
}
|
||||
|
||||
static ssize_t libtar_gzread(void* call_data, void* buf, size_t count)
|
||||
{
|
||||
struct gzStruct* gzf = (struct gzStruct*)call_data;
|
||||
return cm_zlib_gzread(gzf->GZFile, buf, count);
|
||||
return gzread(gzf->GZFile, buf, count);
|
||||
}
|
||||
|
||||
static ssize_t libtar_gzwrite(void* call_data, const void* buf, size_t count)
|
||||
{
|
||||
struct gzStruct* gzf = (struct gzStruct*)call_data;
|
||||
return cm_zlib_gzwrite(gzf->GZFile, (void*)buf, count);
|
||||
return gzwrite(gzf->GZFile, (void*)buf, count);
|
||||
}
|
||||
|
||||
tartype_t gztype = {
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdarg.h>
|
||||
#include <xmlrpc_config.h>
|
||||
#include <cmxmlrpc/xmlrpc_config.h>
|
||||
|
||||
#ifdef HAVE_UNICODE_WCHAR
|
||||
#include <wchar.h>
|
||||
@ -778,7 +778,7 @@ char *xmlrpc_authcookie(void);
|
||||
in here. For backward compatibility, we need to include it here, even
|
||||
though it really isn't logical to do so.
|
||||
*/
|
||||
#include <xmlrpc_server.h>
|
||||
#include <cmxmlrpc/xmlrpc_server.h>
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <expat.h>
|
||||
#include <cm_expat.h>
|
||||
|
||||
#include "xmlrpc.h"
|
||||
#include "xmlrpc_int.h"
|
||||
|
Loading…
Reference in New Issue
Block a user