2 ############################################
4 # How to build libarchive
6 ############################################
14 # Sources and private headers
15 SET(libarchive_SOURCES
20 archive_cmdline_private.h
23 archive_cryptor_private.h
25 archive_digest_private.h
29 archive_entry_copy_stat.c
30 archive_entry_link_resolver.c
31 archive_entry_locale.h
32 archive_entry_private.h
33 archive_entry_sparse.c
35 archive_entry_strmode.c
40 archive_hmac_private.h
42 archive_openssl_evp_private.h
43 archive_openssl_hmac_private.h
45 archive_options_private.h
51 archive_platform_acl.h
52 archive_platform_xattr.h
53 archive_ppmd_private.h
55 archive_ppmd8_private.h
57 archive_ppmd7_private.h
60 archive_random_private.h
64 archive_read_add_passphrase.c
65 archive_read_append_filter.c
66 archive_read_data_into_fd.c
67 archive_read_disk_entry_from_file.c
68 archive_read_disk_posix.c
69 archive_read_disk_private.h
70 archive_read_disk_set_standard_lookup.c
71 archive_read_extract.c
72 archive_read_extract2.c
73 archive_read_open_fd.c
74 archive_read_open_file.c
75 archive_read_open_filename.c
76 archive_read_open_memory.c
77 archive_read_private.h
78 archive_read_set_format.c
79 archive_read_set_options.c
80 archive_read_support_filter_all.c
81 archive_read_support_filter_bzip2.c
82 archive_read_support_filter_compress.c
83 archive_read_support_filter_gzip.c
84 archive_read_support_filter_grzip.c
85 archive_read_support_filter_lrzip.c
86 archive_read_support_filter_lz4.c
87 archive_read_support_filter_lzop.c
88 archive_read_support_filter_none.c
89 archive_read_support_filter_program.c
90 archive_read_support_filter_rpm.c
91 archive_read_support_filter_uu.c
92 archive_read_support_filter_xz.c
93 archive_read_support_filter_zstd.c
94 archive_read_support_format_7zip.c
95 archive_read_support_format_all.c
96 archive_read_support_format_ar.c
97 archive_read_support_format_by_code.c
98 archive_read_support_format_cab.c
99 archive_read_support_format_cpio.c
100 archive_read_support_format_empty.c
101 archive_read_support_format_iso9660.c
102 archive_read_support_format_lha.c
103 archive_read_support_format_mtree.c
104 archive_read_support_format_rar.c
105 archive_read_support_format_rar5.c
106 archive_read_support_format_raw.c
107 archive_read_support_format_tar.c
108 archive_read_support_format_warc.c
109 archive_read_support_format_xar.c
110 archive_read_support_format_zip.c
113 archive_string_composition.h
114 archive_string_sprintf.c
116 archive_version_details.c
119 archive_write_disk_posix.c
120 archive_write_disk_private.h
121 archive_write_disk_set_standard_lookup.c
122 archive_write_private.h
123 archive_write_open_fd.c
124 archive_write_open_file.c
125 archive_write_open_filename.c
126 archive_write_open_memory.c
127 archive_write_add_filter.c
128 archive_write_add_filter_b64encode.c
129 archive_write_add_filter_by_name.c
130 archive_write_add_filter_bzip2.c
131 archive_write_add_filter_compress.c
132 archive_write_add_filter_grzip.c
133 archive_write_add_filter_gzip.c
134 archive_write_add_filter_lrzip.c
135 archive_write_add_filter_lz4.c
136 archive_write_add_filter_lzop.c
137 archive_write_add_filter_none.c
138 archive_write_add_filter_program.c
139 archive_write_add_filter_uuencode.c
140 archive_write_add_filter_xz.c
141 archive_write_add_filter_zstd.c
142 archive_write_set_format.c
143 archive_write_set_format_7zip.c
144 archive_write_set_format_ar.c
145 archive_write_set_format_by_name.c
146 archive_write_set_format_cpio.c
147 archive_write_set_format_cpio_binary.c
148 archive_write_set_format_cpio_newc.c
149 archive_write_set_format_cpio_odc.c
150 archive_write_set_format_filter_by_ext.c
151 archive_write_set_format_gnutar.c
152 archive_write_set_format_iso9660.c
153 archive_write_set_format_mtree.c
154 archive_write_set_format_pax.c
155 archive_write_set_format_private.h
156 archive_write_set_format_raw.c
157 archive_write_set_format_shar.c
158 archive_write_set_format_ustar.c
159 archive_write_set_format_v7tar.c
160 archive_write_set_format_warc.c
161 archive_write_set_format_xar.c
162 archive_write_set_format_zip.c
163 archive_write_set_options.c
164 archive_write_set_passphrase.c
175 archive_entry_linkify.3
177 archive_entry_paths.3
178 archive_entry_perms.3
182 archive_read_add_passphrase.3
185 archive_read_extract.3
186 archive_read_filter.3
187 archive_read_format.3
189 archive_read_header.3
192 archive_read_set_options.3
195 archive_write_blocksize.3
198 archive_write_filter.3
199 archive_write_finish_entry.3
200 archive_write_format.3
202 archive_write_header.3
205 archive_write_set_options.3
206 archive_write_set_passphrase.3
210 libarchive_internals.3
216 IF(WIN32 AND NOT CYGWIN)
217 LIST(APPEND libarchive_SOURCES archive_entry_copy_bhfi.c)
218 LIST(APPEND libarchive_SOURCES archive_read_disk_windows.c)
219 LIST(APPEND libarchive_SOURCES archive_windows.c)
220 LIST(APPEND libarchive_SOURCES archive_windows.h)
221 LIST(APPEND libarchive_SOURCES archive_write_disk_windows.c)
222 LIST(APPEND libarchive_SOURCES filter_fork_windows.c)
223 ENDIF(WIN32 AND NOT CYGWIN)
226 LIST(APPEND libarchive_SOURCES archive_blake2sp_ref.c)
227 LIST(APPEND libarchive_SOURCES archive_blake2s_ref.c)
228 ENDIF(ARCHIVE_BLAKE2)
230 IF(ARCHIVE_ACL_DARWIN)
231 LIST(APPEND libarchive_SOURCES archive_disk_acl_darwin.c)
232 ELSEIF(ARCHIVE_ACL_FREEBSD)
233 LIST(APPEND libarchive_SOURCES archive_disk_acl_freebsd.c)
234 ELSEIF(ARCHIVE_ACL_LIBACL)
235 LIST(APPEND libarchive_SOURCES archive_disk_acl_linux.c)
236 ELSEIF(ARCHIVE_ACL_SUNOS)
237 LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c)
240 # CMake needs just one static "cmlibarchive" library.
241 ADD_LIBRARY(cmlibarchive STATIC ${libarchive_SOURCES} ${include_HEADERS})
242 TARGET_LINK_LIBRARIES(cmlibarchive ${ADDITIONAL_LIBS})
244 IF(0) # CMake does not build libarchive's full package.
245 # Libarchive is a shared library
246 ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
247 TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .)
248 TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
249 SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION})
251 # archive_static is a static library
252 ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})
253 TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})
254 SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS
256 # On Posix systems, libarchive.so and libarchive.a can co-exist.
257 IF(NOT WIN32 OR CYGWIN)
258 SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)
259 ENDIF(NOT WIN32 OR CYGWIN)
262 # How to install the libraries
263 INSTALL(TARGETS archive archive_static
264 RUNTIME DESTINATION bin
265 LIBRARY DESTINATION lib
266 ARCHIVE DESTINATION lib)
267 INSTALL_MAN(${libarchive_MANS})
268 INSTALL(FILES ${include_HEADERS} DESTINATION include)
271 add_subdirectory(test)