Path: blob/master/Utilities/cmlibarchive/libarchive/CMakeLists.txt
3153 views
1############################################2#3# How to build libarchive4#5############################################67if (ANDROID)8include_directories(${PROJECT_SOURCE_DIR}/contrib/android/include)9endif()1011# Public headers12SET(include_HEADERS13archive.h14archive_entry.h15)1617# Sources and private headers18SET(libarchive_SOURCES19archive_acl.c20archive_acl_private.h21archive_check_magic.c22archive_cmdline.c23archive_cmdline_private.h24archive_crc32.h25archive_cryptor.c26archive_cryptor_private.h27archive_digest.c28archive_digest_private.h29archive_endian.h30archive_entry.c31archive_entry.h32archive_entry_copy_stat.c33archive_entry_link_resolver.c34archive_entry_locale.h35archive_entry_private.h36archive_entry_sparse.c37archive_entry_stat.c38archive_entry_strmode.c39archive_entry_xattr.c40archive_getdate.c41archive_getdate.h42archive_hmac.c43archive_hmac_private.h44archive_match.c45archive_openssl_evp_private.h46archive_openssl_hmac_private.h47archive_options.c48archive_options_private.h49archive_pack_dev.h50archive_pack_dev.c51archive_pathmatch.c52archive_pathmatch.h53archive_platform.h54archive_platform_acl.h55archive_platform_xattr.h56archive_ppmd_private.h57archive_ppmd8.c58archive_ppmd8_private.h59archive_ppmd7.c60archive_ppmd7_private.h61archive_private.h62archive_random.c63archive_random_private.h64archive_rb.c65archive_rb.h66archive_read.c67archive_read_add_passphrase.c68archive_read_append_filter.c69archive_read_data_into_fd.c70archive_read_disk_entry_from_file.c71archive_read_disk_posix.c72archive_read_disk_private.h73archive_read_disk_set_standard_lookup.c74archive_read_extract.c75archive_read_extract2.c76archive_read_open_fd.c77archive_read_open_file.c78archive_read_open_filename.c79archive_read_open_memory.c80archive_read_private.h81archive_read_set_format.c82archive_read_set_options.c83archive_read_support_filter_all.c84archive_read_support_filter_by_code.c85archive_read_support_filter_bzip2.c86archive_read_support_filter_compress.c87archive_read_support_filter_gzip.c88archive_read_support_filter_grzip.c89archive_read_support_filter_lrzip.c90archive_read_support_filter_lz4.c91archive_read_support_filter_lzop.c92archive_read_support_filter_none.c93archive_read_support_filter_program.c94archive_read_support_filter_rpm.c95archive_read_support_filter_uu.c96archive_read_support_filter_xz.c97archive_read_support_filter_zstd.c98archive_read_support_format_7zip.c99archive_read_support_format_all.c100archive_read_support_format_ar.c101archive_read_support_format_by_code.c102archive_read_support_format_cab.c103archive_read_support_format_cpio.c104archive_read_support_format_empty.c105archive_read_support_format_iso9660.c106archive_read_support_format_lha.c107archive_read_support_format_mtree.c108archive_read_support_format_rar.c109archive_read_support_format_rar5.c110archive_read_support_format_raw.c111archive_read_support_format_tar.c112archive_read_support_format_warc.c113archive_read_support_format_xar.c114archive_read_support_format_zip.c115archive_string.c116archive_string.h117archive_string_composition.h118archive_string_sprintf.c119archive_util.c120archive_version_details.c121archive_virtual.c122archive_write.c123archive_write_disk_posix.c124archive_write_disk_private.h125archive_write_disk_set_standard_lookup.c126archive_write_private.h127archive_write_open_fd.c128archive_write_open_file.c129archive_write_open_filename.c130archive_write_open_memory.c131archive_write_add_filter.c132archive_write_add_filter_b64encode.c133archive_write_add_filter_by_name.c134archive_write_add_filter_bzip2.c135archive_write_add_filter_compress.c136archive_write_add_filter_grzip.c137archive_write_add_filter_gzip.c138archive_write_add_filter_lrzip.c139archive_write_add_filter_lz4.c140archive_write_add_filter_lzop.c141archive_write_add_filter_none.c142archive_write_add_filter_program.c143archive_write_add_filter_uuencode.c144archive_write_add_filter_xz.c145archive_write_add_filter_zstd.c146archive_write_set_format.c147archive_write_set_format_7zip.c148archive_write_set_format_ar.c149archive_write_set_format_by_name.c150archive_write_set_format_cpio.c151archive_write_set_format_cpio_binary.c152archive_write_set_format_cpio_newc.c153archive_write_set_format_cpio_odc.c154archive_write_set_format_filter_by_ext.c155archive_write_set_format_gnutar.c156archive_write_set_format_iso9660.c157archive_write_set_format_mtree.c158archive_write_set_format_pax.c159archive_write_set_format_private.h160archive_write_set_format_raw.c161archive_write_set_format_shar.c162archive_write_set_format_ustar.c163archive_write_set_format_v7tar.c164archive_write_set_format_warc.c165archive_write_set_format_xar.c166archive_write_set_format_zip.c167archive_write_set_options.c168archive_write_set_passphrase.c169archive_xxhash.h170filter_fork_posix.c171filter_fork.h172xxhash.c173)174175# Man pages176SET(libarchive_MANS177archive_entry.3178archive_entry_acl.3179archive_entry_linkify.3180archive_entry_misc.3181archive_entry_paths.3182archive_entry_perms.3183archive_entry_stat.3184archive_entry_time.3185archive_read.3186archive_read_add_passphrase.3187archive_read_data.3188archive_read_disk.3189archive_read_extract.3190archive_read_filter.3191archive_read_format.3192archive_read_free.3193archive_read_header.3194archive_read_new.3195archive_read_open.3196archive_read_set_options.3197archive_util.3198archive_write.3199archive_write_blocksize.3200archive_write_data.3201archive_write_disk.3202archive_write_filter.3203archive_write_finish_entry.3204archive_write_format.3205archive_write_free.3206archive_write_header.3207archive_write_new.3208archive_write_open.3209archive_write_set_options.3210archive_write_set_passphrase.3211cpio.5212libarchive.3213libarchive_changes.3214libarchive_internals.3215libarchive-formats.5216mtree.5217tar.5218)219220IF(WIN32 AND NOT CYGWIN)221LIST(APPEND libarchive_SOURCES archive_entry_copy_bhfi.c)222LIST(APPEND libarchive_SOURCES archive_read_disk_windows.c)223LIST(APPEND libarchive_SOURCES archive_windows.c)224LIST(APPEND libarchive_SOURCES archive_windows.h)225LIST(APPEND libarchive_SOURCES archive_write_disk_windows.c)226LIST(APPEND libarchive_SOURCES filter_fork_windows.c)227ENDIF(WIN32 AND NOT CYGWIN)228229IF(ARCHIVE_BLAKE2)230LIST(APPEND libarchive_SOURCES archive_blake2sp_ref.c)231LIST(APPEND libarchive_SOURCES archive_blake2s_ref.c)232ENDIF(ARCHIVE_BLAKE2)233234IF(ARCHIVE_ACL_DARWIN)235LIST(APPEND libarchive_SOURCES archive_disk_acl_darwin.c)236ELSEIF(ARCHIVE_ACL_FREEBSD)237LIST(APPEND libarchive_SOURCES archive_disk_acl_freebsd.c)238ELSEIF(ARCHIVE_ACL_LIBACL)239LIST(APPEND libarchive_SOURCES archive_disk_acl_linux.c)240ELSEIF(ARCHIVE_ACL_SUNOS)241LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c)242ENDIF()243244# CMake needs just one static "cmlibarchive" library.245ADD_LIBRARY(cmlibarchive STATIC ${libarchive_SOURCES} ${include_HEADERS})246TARGET_LINK_LIBRARIES(cmlibarchive ${ADDITIONAL_LIBS})247248if(WIN32 AND CMake_BUILD_PCH)249target_precompile_headers(cmlibarchive PRIVATE "archive_platform.h" "archive_entry.h" "<cm3p/bzlib.h>")250endif()251252IF(0) # CMake does not build libarchive's full package.253# Libarchive is a shared library254IF(BUILD_SHARED_LIBS)255ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})256TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .)257TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})258SET_TARGET_PROPERTIES(archive PROPERTIES259VERSION ${SOVERSION_FULL}260SOVERSION ${SOVERSION}261MACHO_COMPATIBILITY_VERSION ${MACHO_COMPATIBILITY_VERSION}262MACHO_CURRENT_VERSION ${MACHO_CURRENT_VERSION})263ENDIF(BUILD_SHARED_LIBS)264265# archive_static is a static library266ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})267TARGET_INCLUDE_DIRECTORIES(archive_static PUBLIC .)268TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})269SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS270LIBARCHIVE_STATIC)271# On Posix systems, libarchive.so and libarchive.a can co-exist.272IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)273SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)274ENDIF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)275276IF(ENABLE_INSTALL)277# How to install the libraries278IF(BUILD_SHARED_LIBS)279INSTALL(TARGETS archive280RUNTIME DESTINATION bin281LIBRARY DESTINATION lib282ARCHIVE DESTINATION lib)283ENDIF(BUILD_SHARED_LIBS)284INSTALL(TARGETS archive_static285RUNTIME DESTINATION bin286LIBRARY DESTINATION lib287ARCHIVE DESTINATION lib)288INSTALL_MAN(${libarchive_MANS})289INSTALL(FILES ${include_HEADERS} DESTINATION include)290ENDIF()291292add_subdirectory(test)293ENDIF()294295296