diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2014-07-13 20:23:22 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-29 12:45:36 (GMT) |
commit | 8436d18115a9d997fb92fc7a019da1f28646a2f8 (patch) | |
tree | 1ac085866699c54ccfca23361fc3a5e3c7e695da /Utilities | |
parent | 73eab246fbfad22bcc1b0bb5599f8e0cffb79c0d (diff) | |
download | CMake-8436d18115a9d997fb92fc7a019da1f28646a2f8.zip CMake-8436d18115a9d997fb92fc7a019da1f28646a2f8.tar.gz CMake-8436d18115a9d997fb92fc7a019da1f28646a2f8.tar.bz2 |
CMake: Enable use of liblzma in libarchive (#14504)
Build liblzma as part of CMake or find one on the system. Modify our
port of libarchive to use the liblzma configured for use with CMake.
Diffstat (limited to 'Utilities')
11 files changed, 45 insertions, 16 deletions
diff --git a/Utilities/cmThirdParty.h.in b/Utilities/cmThirdParty.h.in index c824085..b0b5779 100644 --- a/Utilities/cmThirdParty.h.in +++ b/Utilities/cmThirdParty.h.in @@ -18,6 +18,7 @@ #cmakedefine CMAKE_USE_SYSTEM_ZLIB #cmakedefine CMAKE_USE_SYSTEM_BZIP2 #cmakedefine CMAKE_USE_SYSTEM_LIBARCHIVE +#cmakedefine CMAKE_USE_SYSTEM_LIBLZMA #cmakedefine CTEST_USE_XMLRPC #endif diff --git a/Utilities/cm_lzma.h b/Utilities/cm_lzma.h new file mode 100644 index 0000000..c11c916 --- /dev/null +++ b/Utilities/cm_lzma.h @@ -0,0 +1,23 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2014 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef __cm_lzma_h +#define __cm_lzma_h + +/* Use the liblzma configured for CMake. */ +#include "cmThirdParty.h" +#ifdef CMAKE_USE_SYSTEM_LIBLZMA +# include <lzma.h> +#else +# include <cmliblzma/liblzma/api/lzma.h> +#endif + +#endif diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt index 9b1533d..87a9c3f 100644 --- a/Utilities/cmlibarchive/CMakeLists.txt +++ b/Utilities/cmlibarchive/CMakeLists.txt @@ -275,7 +275,6 @@ IF(BZIP2_FOUND) ENDIF(BZIP2_FOUND) MARK_AS_ADVANCED(CLEAR BZIP2_INCLUDE_DIR) MARK_AS_ADVANCED(CLEAR BZIP2_LIBRARIES) -IF(0) # CMake does not need LZMA or LZO2 support in libarchive # # Find LZMA # @@ -291,15 +290,19 @@ IF(LZMA_FOUND) SET(HAVE_LZMA_H 1) INCLUDE_DIRECTORIES(${LZMA_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${LZMA_LIBRARIES}) - # Test if a macro is needed for the library. - TRY_MACRO_FOR_LIBRARY( - "${LZMA_INCLUDE_DIR}" "${LZMA_LIBRARIES}" - COMPILES - "#include <lzma.h>\nint main() {return (int)lzma_version_number(); }" - "WITHOUT_LZMA_API_STATIC;LZMA_API_STATIC") - IF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC) + IF(CMAKE_USE_SYSTEM_LIBLZMA) + # Test if a macro is needed for the library. + TRY_MACRO_FOR_LIBRARY( + "${LZMA_INCLUDE_DIR}" "${LZMA_LIBRARIES}" + COMPILES + "#include <lzma.h>\nint main() {return (int)lzma_version_number(); }" + "WITHOUT_LZMA_API_STATIC;LZMA_API_STATIC") + IF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC) + ADD_DEFINITIONS(-DLZMA_API_STATIC) + ENDIF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC) + ELSE() ADD_DEFINITIONS(-DLZMA_API_STATIC) - ENDIF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC) + ENDIF() ELSEIF(LZMADEC_FOUND) SET(HAVE_LIBLZMADEC 1) SET(HAVE_LZMADEC_H 1) @@ -308,6 +311,7 @@ ELSEIF(LZMADEC_FOUND) ELSE(LZMA_FOUND) # LZMA not found and will not be used. ENDIF(LZMA_FOUND) +IF(0) # CMake does not need LZO2 support in libarchive # # Find LZO2 # diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c index 7bda263..a3ad67a 100644 --- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c +++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); #include <unistd.h> #endif #if HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #elif HAVE_LZMADEC_H #include <lzmadec.h> #endif diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c index 8cd241b..47e0752 100644 --- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c +++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c @@ -36,7 +36,7 @@ __FBSDID("$FreeBSD$"); #include <cm_bzlib.h> #endif #ifdef HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #endif #ifdef HAVE_ZLIB_H #include <cm_zlib.h> diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c index af89ded..68485d1 100644 --- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c +++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); #include <cm_bzlib.h> #endif #if HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #elif HAVE_LZMADEC_H #include <lzmadec.h> #endif diff --git a/Utilities/cmlibarchive/libarchive/archive_util.c b/Utilities/cmlibarchive/libarchive/archive_util.c index b53beca..96b88d8 100644 --- a/Utilities/cmlibarchive/libarchive/archive_util.c +++ b/Utilities/cmlibarchive/libarchive/archive_util.c @@ -49,7 +49,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_util.c 201098 2009-12-28 02:58:1 #include <cm_zlib.h> #endif #ifdef HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #endif #ifdef HAVE_BZLIB_H #include <cm_bzlib.h> diff --git a/Utilities/cmlibarchive/libarchive/archive_windows.h b/Utilities/cmlibarchive/libarchive/archive_windows.h index 9a19cdf..dc2f241 100644 --- a/Utilities/cmlibarchive/libarchive/archive_windows.h +++ b/Utilities/cmlibarchive/libarchive/archive_windows.h @@ -76,6 +76,7 @@ #if defined(_MSC_VER) #pragma warning(push,1) +#pragma warning(disable:4142) /* benign redefinition of type */ #pragma warning(disable:4761) /* integral size mismatch in argument; conversion supplied */ #endif #if defined(__BORLANDC__) diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c index fa73311..a566732 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_compression_xz.c 20110 #endif #include <time.h> #ifdef HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #endif #include "archive.h" diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c index 4f1bc26..5158854 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c @@ -34,7 +34,7 @@ __FBSDID("$FreeBSD$"); #include <cm_bzlib.h> #endif #if HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #endif #ifdef HAVE_ZLIB_H #include <cm_zlib.h> diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c index a4ce7ee..4cd2b9d 100644 --- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c +++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c @@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$"); #include <cm_bzlib.h> #endif #if HAVE_LZMA_H -#include <lzma.h> +#include <cm_lzma.h> #endif #ifdef HAVE_ZLIB_H #include <cm_zlib.h> |