1 2############################################ 3# 4# How to build libarchive 5# 6############################################ 7 8# Public headers 9SET(include_HEADERS 10 archive.h 11 archive_entry.h 12) 13 14# Sources and private headers 15SET(libarchive_SOURCES 16 archive_check_magic.c 17 archive_endian.h 18 archive_entry.c 19 archive_entry.h 20 archive_entry_copy_stat.c 21 archive_entry_link_resolver.c 22 archive_entry_private.h 23 archive_entry_stat.c 24 archive_entry_strmode.c 25 archive_entry_xattr.c 26 archive_hash.h 27 archive_platform.h 28 archive_private.h 29 archive_read.c 30 archive_read_data_into_fd.c 31 archive_read_disk.c 32 archive_read_disk_entry_from_file.c 33 archive_read_disk_private.h 34 archive_read_disk_set_standard_lookup.c 35 archive_read_extract.c 36 archive_read_open_fd.c 37 archive_read_open_file.c 38 archive_read_open_filename.c 39 archive_read_open_memory.c 40 archive_read_private.h 41 archive_read_support_compression_all.c 42 archive_read_support_compression_bzip2.c 43 archive_read_support_compression_compress.c 44 archive_read_support_compression_gzip.c 45 archive_read_support_compression_none.c 46 archive_read_support_compression_program.c 47 archive_read_support_compression_rpm.c 48 archive_read_support_compression_uu.c 49 archive_read_support_compression_xz.c 50 archive_read_support_format_all.c 51 archive_read_support_format_ar.c 52 archive_read_support_format_cpio.c 53 archive_read_support_format_empty.c 54 archive_read_support_format_iso9660.c 55 archive_read_support_format_mtree.c 56 archive_read_support_format_raw.c 57 archive_read_support_format_tar.c 58 archive_read_support_format_xar.c 59 archive_read_support_format_zip.c 60 archive_string.c 61 archive_string.h 62 archive_string_sprintf.c 63 archive_util.c 64 archive_virtual.c 65 archive_write.c 66 archive_write_disk.c 67 archive_write_disk_private.h 68 archive_write_disk_set_standard_lookup.c 69 archive_write_private.h 70 archive_write_open_fd.c 71 archive_write_open_file.c 72 archive_write_open_filename.c 73 archive_write_open_memory.c 74 archive_write_set_compression_bzip2.c 75 archive_write_set_compression_compress.c 76 archive_write_set_compression_gzip.c 77 archive_write_set_compression_none.c 78 archive_write_set_compression_program.c 79 archive_write_set_compression_xz.c 80 archive_write_set_format.c 81 archive_write_set_format_ar.c 82 archive_write_set_format_by_name.c 83 archive_write_set_format_cpio.c 84 archive_write_set_format_cpio_newc.c 85 archive_write_set_format_mtree.c 86 archive_write_set_format_pax.c 87 archive_write_set_format_shar.c 88 archive_write_set_format_ustar.c 89 archive_write_set_format_zip.c 90 filter_fork.c 91 filter_fork.h 92) 93 94# Man pages 95SET(libarchive_MANS 96 archive_entry.3 97 archive_read.3 98 archive_read_disk.3 99 archive_util.3 100 archive_write.3 101 archive_write_disk.3 102 cpio.5 103 libarchive.3 104 libarchive_internals.3 105 libarchive-formats.5 106 mtree.5 107 tar.5 108) 109 110IF(WIN32 AND NOT CYGWIN) 111 LIST(APPEND libarchive_SOURCES archive_entry_copy_bhfi.c) 112 LIST(APPEND libarchive_SOURCES archive_windows.c) 113 LIST(APPEND libarchive_SOURCES archive_windows.h) 114 LIST(APPEND libarchive_SOURCES filter_fork_windows.c) 115ENDIF(WIN32 AND NOT CYGWIN) 116 117# Libarchive is a shared library 118ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) 119TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) 120SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) 121 122# archive_static is a static library 123ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) 124SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS 125 LIBARCHIVE_STATIC) 126# On Posix systems, libarchive.so and libarchive.a can co-exist. 127IF(NOT WIN32 OR CYGWIN) 128 SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) 129ENDIF(NOT WIN32 OR CYGWIN) 130 131# How to install the libraries 132INSTALL(TARGETS archive archive_static 133 RUNTIME DESTINATION bin 134 LIBRARY DESTINATION lib 135 ARCHIVE DESTINATION lib) 136INSTALL_MAN(${libarchive_MANS}) 137INSTALL(FILES ${include_HEADERS} DESTINATION include) 138 139add_subdirectory(test) 140