diff options
author | Daniel Pfeifer <daniel@pfeifer-mail.de> | 2014-07-13 22:23:22 +0200 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-29 08:45:36 -0400 |
commit | 8436d18115a9d997fb92fc7a019da1f28646a2f8 (patch) | |
tree | 1ac085866699c54ccfca23361fc3a5e3c7e695da /Utilities | |
parent | 73eab246fbfad22bcc1b0bb5599f8e0cffb79c0d (diff) | |
download | cmake-8436d18115a9d997fb92fc7a019da1f28646a2f8.tar.gz |
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 c8240850ee..b0b5779224 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 0000000000..c11c916f40 --- /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 9b1533d5a9..87a9c3ffab 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 7bda263635..a3ad67aabc 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 8cd241b3da..47e0752d29 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 af89deda31..68485d132e 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 b53beca1f4..96b88d8640 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 9a19cdf585..dc2f24139c 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 fa73311e7e..a56673272e 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 4f1bc2622e..5158854222 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 a4ce7ee6f8..4cd2b9d7ff 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> |