290 lines
8.3 KiB
CMake
Raw Normal View History

2010-06-23 01:18:35 +03:00
############################################
#
# How to build libarchive
#
############################################
2023-07-02 19:51:09 +02:00
if (ANDROID)
include_directories(${PROJECT_SOURCE_DIR}/contrib/android/include)
endif()
2010-06-23 01:18:35 +03:00
# Public headers
SET(include_HEADERS
archive.h
archive_entry.h
)
# Sources and private headers
SET(libarchive_SOURCES
2012-04-19 19:04:21 +03:00
archive_acl.c
2018-01-26 17:06:56 +01:00
archive_acl_private.h
2010-06-23 01:18:35 +03:00
archive_check_magic.c
2013-11-03 12:27:13 +02:00
archive_cmdline.c
archive_cmdline_private.h
archive_crc32.h
2016-03-13 13:35:51 +01:00
archive_cryptor.c
archive_cryptor_private.h
archive_digest.c
archive_digest_private.h
2010-06-23 01:18:35 +03:00
archive_endian.h
archive_entry.c
archive_entry.h
archive_entry_copy_stat.c
archive_entry_link_resolver.c
2012-04-19 19:04:21 +03:00
archive_entry_locale.h
2010-06-23 01:18:35 +03:00
archive_entry_private.h
2012-04-19 19:04:21 +03:00
archive_entry_sparse.c
2010-06-23 01:18:35 +03:00
archive_entry_stat.c
archive_entry_strmode.c
archive_entry_xattr.c
2013-11-03 12:27:13 +02:00
archive_getdate.c
2016-07-09 11:21:54 +02:00
archive_getdate.h
2016-03-13 13:35:51 +01:00
archive_hmac.c
archive_hmac_private.h
2013-11-03 12:27:13 +02:00
archive_match.c
2016-12-03 23:28:24 +01:00
archive_openssl_evp_private.h
archive_openssl_hmac_private.h
2012-04-19 19:04:21 +03:00
archive_options.c
archive_options_private.h
2015-04-27 22:25:09 +02:00
archive_pack_dev.h
archive_pack_dev.c
2013-11-03 12:27:13 +02:00
archive_pathmatch.c
archive_pathmatch.h
2010-06-23 01:18:35 +03:00
archive_platform.h
2018-01-26 17:06:56 +01:00
archive_platform_acl.h
archive_platform_xattr.h
2012-04-19 19:04:21 +03:00
archive_ppmd_private.h
2020-08-30 11:54:41 +02:00
archive_ppmd8.c
archive_ppmd8_private.h
2012-04-19 19:04:21 +03:00
archive_ppmd7.c
archive_ppmd7_private.h
2010-06-23 01:18:35 +03:00
archive_private.h
2016-03-13 13:35:51 +01:00
archive_random.c
archive_random_private.h
2012-04-19 19:04:21 +03:00
archive_rb.c
archive_rb.h
2010-06-23 01:18:35 +03:00
archive_read.c
2016-03-13 13:35:51 +01:00
archive_read_add_passphrase.c
2013-11-03 12:27:13 +02:00
archive_read_append_filter.c
2010-06-23 01:18:35 +03:00
archive_read_data_into_fd.c
archive_read_disk_entry_from_file.c
2012-04-19 19:04:21 +03:00
archive_read_disk_posix.c
2010-06-23 01:18:35 +03:00
archive_read_disk_private.h
archive_read_disk_set_standard_lookup.c
archive_read_extract.c
2015-04-27 22:25:09 +02:00
archive_read_extract2.c
2010-06-23 01:18:35 +03:00
archive_read_open_fd.c
archive_read_open_file.c
archive_read_open_filename.c
archive_read_open_memory.c
archive_read_private.h
2013-11-03 12:27:13 +02:00
archive_read_set_format.c
2012-04-19 19:04:21 +03:00
archive_read_set_options.c
archive_read_support_filter_all.c
2023-07-02 19:51:09 +02:00
archive_read_support_filter_by_code.c
2012-04-19 19:04:21 +03:00
archive_read_support_filter_bzip2.c
archive_read_support_filter_compress.c
archive_read_support_filter_gzip.c
2013-11-03 12:27:13 +02:00
archive_read_support_filter_grzip.c
archive_read_support_filter_lrzip.c
2016-03-13 13:35:51 +01:00
archive_read_support_filter_lz4.c
2013-11-03 12:27:13 +02:00
archive_read_support_filter_lzop.c
2012-04-19 19:04:21 +03:00
archive_read_support_filter_none.c
archive_read_support_filter_program.c
archive_read_support_filter_rpm.c
archive_read_support_filter_uu.c
archive_read_support_filter_xz.c
2018-10-28 12:09:07 +01:00
archive_read_support_filter_zstd.c
2012-04-19 19:04:21 +03:00
archive_read_support_format_7zip.c
2010-06-23 01:18:35 +03:00
archive_read_support_format_all.c
archive_read_support_format_ar.c
2012-04-19 19:04:21 +03:00
archive_read_support_format_by_code.c
archive_read_support_format_cab.c
2010-06-23 01:18:35 +03:00
archive_read_support_format_cpio.c
archive_read_support_format_empty.c
archive_read_support_format_iso9660.c
2012-04-19 19:04:21 +03:00
archive_read_support_format_lha.c
2010-06-23 01:18:35 +03:00
archive_read_support_format_mtree.c
2012-04-19 19:04:21 +03:00
archive_read_support_format_rar.c
2020-08-30 11:54:41 +02:00
archive_read_support_format_rar5.c
2010-06-23 01:18:35 +03:00
archive_read_support_format_raw.c
archive_read_support_format_tar.c
2016-03-13 13:35:51 +01:00
archive_read_support_format_warc.c
2012-04-19 19:04:21 +03:00
archive_read_support_format_xar.c
2010-06-23 01:18:35 +03:00
archive_read_support_format_zip.c
archive_string.c
archive_string.h
2012-04-19 19:04:21 +03:00
archive_string_composition.h
2010-06-23 01:18:35 +03:00
archive_string_sprintf.c
archive_util.c
2018-01-26 17:06:56 +01:00
archive_version_details.c
2010-06-23 01:18:35 +03:00
archive_virtual.c
archive_write.c
2012-04-19 19:04:21 +03:00
archive_write_disk_posix.c
2010-06-23 01:18:35 +03:00
archive_write_disk_private.h
archive_write_disk_set_standard_lookup.c
archive_write_private.h
archive_write_open_fd.c
archive_write_open_file.c
archive_write_open_filename.c
archive_write_open_memory.c
2013-11-03 12:27:13 +02:00
archive_write_add_filter.c
archive_write_add_filter_b64encode.c
archive_write_add_filter_by_name.c
2012-04-19 19:04:21 +03:00
archive_write_add_filter_bzip2.c
archive_write_add_filter_compress.c
2013-11-03 12:27:13 +02:00
archive_write_add_filter_grzip.c
2012-04-19 19:04:21 +03:00
archive_write_add_filter_gzip.c
2013-11-03 12:27:13 +02:00
archive_write_add_filter_lrzip.c
2016-03-13 13:35:51 +01:00
archive_write_add_filter_lz4.c
2013-11-03 12:27:13 +02:00
archive_write_add_filter_lzop.c
2012-04-19 19:04:21 +03:00
archive_write_add_filter_none.c
archive_write_add_filter_program.c
2013-11-03 12:27:13 +02:00
archive_write_add_filter_uuencode.c
2012-04-19 19:04:21 +03:00
archive_write_add_filter_xz.c
2018-10-28 12:09:07 +01:00
archive_write_add_filter_zstd.c
2010-06-23 01:18:35 +03:00
archive_write_set_format.c
2012-04-19 19:04:21 +03:00
archive_write_set_format_7zip.c
2010-06-23 01:18:35 +03:00
archive_write_set_format_ar.c
archive_write_set_format_by_name.c
archive_write_set_format_cpio.c
2022-05-25 20:56:39 +02:00
archive_write_set_format_cpio_binary.c
2010-06-23 01:18:35 +03:00
archive_write_set_format_cpio_newc.c
2022-05-25 20:56:39 +02:00
archive_write_set_format_cpio_odc.c
2016-03-13 13:35:51 +01:00
archive_write_set_format_filter_by_ext.c
2012-04-19 19:04:21 +03:00
archive_write_set_format_gnutar.c
archive_write_set_format_iso9660.c
2010-06-23 01:18:35 +03:00
archive_write_set_format_mtree.c
archive_write_set_format_pax.c
2020-08-30 11:54:41 +02:00
archive_write_set_format_private.h
2015-04-27 22:25:09 +02:00
archive_write_set_format_raw.c
2010-06-23 01:18:35 +03:00
archive_write_set_format_shar.c
archive_write_set_format_ustar.c
2013-11-03 12:27:13 +02:00
archive_write_set_format_v7tar.c
2016-03-13 13:35:51 +01:00
archive_write_set_format_warc.c
2012-04-19 19:04:21 +03:00
archive_write_set_format_xar.c
2010-06-23 01:18:35 +03:00
archive_write_set_format_zip.c
2012-04-19 19:04:21 +03:00
archive_write_set_options.c
2016-03-13 13:35:51 +01:00
archive_write_set_passphrase.c
archive_xxhash.h
2013-11-03 12:27:13 +02:00
filter_fork_posix.c
2010-06-23 01:18:35 +03:00
filter_fork.h
2016-03-13 13:35:51 +01:00
xxhash.c
2010-06-23 01:18:35 +03:00
)
# Man pages
SET(libarchive_MANS
archive_entry.3
2012-04-19 19:04:21 +03:00
archive_entry_acl.3
archive_entry_linkify.3
2020-08-30 11:54:41 +02:00
archive_entry_misc.3
2012-04-19 19:04:21 +03:00
archive_entry_paths.3
archive_entry_perms.3
archive_entry_stat.3
archive_entry_time.3
2010-06-23 01:18:35 +03:00
archive_read.3
2016-03-13 13:35:51 +01:00
archive_read_add_passphrase.3
2017-07-20 19:35:53 +02:00
archive_read_data.3
2010-06-23 01:18:35 +03:00
archive_read_disk.3
2017-07-20 19:35:53 +02:00
archive_read_extract.3
archive_read_filter.3
archive_read_format.3
archive_read_free.3
archive_read_header.3
archive_read_new.3
archive_read_open.3
2012-04-19 19:04:21 +03:00
archive_read_set_options.3
2010-06-23 01:18:35 +03:00
archive_util.3
archive_write.3
2017-07-20 19:35:53 +02:00
archive_write_blocksize.3
archive_write_data.3
2010-06-23 01:18:35 +03:00
archive_write_disk.3
2017-07-20 19:35:53 +02:00
archive_write_filter.3
archive_write_finish_entry.3
archive_write_format.3
archive_write_free.3
archive_write_header.3
archive_write_new.3
archive_write_open.3
2012-04-19 19:04:21 +03:00
archive_write_set_options.3
2016-03-13 13:35:51 +01:00
archive_write_set_passphrase.3
2010-06-23 01:18:35 +03:00
cpio.5
libarchive.3
2017-07-20 19:35:53 +02:00
libarchive_changes.3
2010-06-23 01:18:35 +03:00
libarchive_internals.3
libarchive-formats.5
mtree.5
tar.5
)
IF(WIN32 AND NOT CYGWIN)
LIST(APPEND libarchive_SOURCES archive_entry_copy_bhfi.c)
2012-04-19 19:04:21 +03:00
LIST(APPEND libarchive_SOURCES archive_read_disk_windows.c)
2010-06-23 01:18:35 +03:00
LIST(APPEND libarchive_SOURCES archive_windows.c)
LIST(APPEND libarchive_SOURCES archive_windows.h)
2012-04-19 19:04:21 +03:00
LIST(APPEND libarchive_SOURCES archive_write_disk_windows.c)
2010-06-23 01:18:35 +03:00
LIST(APPEND libarchive_SOURCES filter_fork_windows.c)
ENDIF(WIN32 AND NOT CYGWIN)
2020-08-30 11:54:41 +02:00
IF(ARCHIVE_BLAKE2)
LIST(APPEND libarchive_SOURCES archive_blake2sp_ref.c)
LIST(APPEND libarchive_SOURCES archive_blake2s_ref.c)
ENDIF(ARCHIVE_BLAKE2)
2018-01-26 17:06:56 +01:00
IF(ARCHIVE_ACL_DARWIN)
LIST(APPEND libarchive_SOURCES archive_disk_acl_darwin.c)
ELSEIF(ARCHIVE_ACL_FREEBSD)
LIST(APPEND libarchive_SOURCES archive_disk_acl_freebsd.c)
ELSEIF(ARCHIVE_ACL_LIBACL)
LIST(APPEND libarchive_SOURCES archive_disk_acl_linux.c)
ELSEIF(ARCHIVE_ACL_SUNOS)
LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c)
ENDIF()
2012-04-19 19:04:21 +03:00
# CMake needs just one static "cmlibarchive" library.
ADD_LIBRARY(cmlibarchive STATIC ${libarchive_SOURCES} ${include_HEADERS})
TARGET_LINK_LIBRARIES(cmlibarchive ${ADDITIONAL_LIBS})
2020-08-30 11:54:41 +02:00
2023-12-07 09:12:54 +01:00
if(WIN32 AND CMake_BUILD_PCH)
target_precompile_headers(cmlibarchive PRIVATE "archive_platform.h" "archive_entry.h" "<cm3p/bzlib.h>")
endif()
2020-08-30 11:54:41 +02:00
IF(0) # CMake does not build libarchive's full package.
# Libarchive is a shared library
2024-04-14 22:45:38 +02:00
IF(BUILD_SHARED_LIBS)
ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .)
TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION})
ENDIF(BUILD_SHARED_LIBS)
2020-08-30 11:54:41 +02:00
# archive_static is a static library
ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})
TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})
SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS
LIBARCHIVE_STATIC)
# On Posix systems, libarchive.so and libarchive.a can co-exist.
2024-04-14 22:45:38 +02:00
IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)
2020-08-30 11:54:41 +02:00
SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)
2024-04-14 22:45:38 +02:00
ENDIF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)
2020-08-30 11:54:41 +02:00
IF(ENABLE_INSTALL)
# How to install the libraries
2024-04-14 22:45:38 +02:00
IF(BUILD_SHARED_LIBS)
INSTALL(TARGETS archive
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
ENDIF(BUILD_SHARED_LIBS)
INSTALL(TARGETS archive_static
2020-08-30 11:54:41 +02:00
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
INSTALL_MAN(${libarchive_MANS})
INSTALL(FILES ${include_HEADERS} DESTINATION include)
ENDIF()
add_subdirectory(test)
ENDIF()