Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/cmlibarchive/libarchive/CMakeLists.txt
3153 views
1
2
############################################
3
#
4
# How to build libarchive
5
#
6
############################################
7
8
if (ANDROID)
9
include_directories(${PROJECT_SOURCE_DIR}/contrib/android/include)
10
endif()
11
12
# Public headers
13
SET(include_HEADERS
14
archive.h
15
archive_entry.h
16
)
17
18
# Sources and private headers
19
SET(libarchive_SOURCES
20
archive_acl.c
21
archive_acl_private.h
22
archive_check_magic.c
23
archive_cmdline.c
24
archive_cmdline_private.h
25
archive_crc32.h
26
archive_cryptor.c
27
archive_cryptor_private.h
28
archive_digest.c
29
archive_digest_private.h
30
archive_endian.h
31
archive_entry.c
32
archive_entry.h
33
archive_entry_copy_stat.c
34
archive_entry_link_resolver.c
35
archive_entry_locale.h
36
archive_entry_private.h
37
archive_entry_sparse.c
38
archive_entry_stat.c
39
archive_entry_strmode.c
40
archive_entry_xattr.c
41
archive_getdate.c
42
archive_getdate.h
43
archive_hmac.c
44
archive_hmac_private.h
45
archive_match.c
46
archive_openssl_evp_private.h
47
archive_openssl_hmac_private.h
48
archive_options.c
49
archive_options_private.h
50
archive_pack_dev.h
51
archive_pack_dev.c
52
archive_pathmatch.c
53
archive_pathmatch.h
54
archive_platform.h
55
archive_platform_acl.h
56
archive_platform_xattr.h
57
archive_ppmd_private.h
58
archive_ppmd8.c
59
archive_ppmd8_private.h
60
archive_ppmd7.c
61
archive_ppmd7_private.h
62
archive_private.h
63
archive_random.c
64
archive_random_private.h
65
archive_rb.c
66
archive_rb.h
67
archive_read.c
68
archive_read_add_passphrase.c
69
archive_read_append_filter.c
70
archive_read_data_into_fd.c
71
archive_read_disk_entry_from_file.c
72
archive_read_disk_posix.c
73
archive_read_disk_private.h
74
archive_read_disk_set_standard_lookup.c
75
archive_read_extract.c
76
archive_read_extract2.c
77
archive_read_open_fd.c
78
archive_read_open_file.c
79
archive_read_open_filename.c
80
archive_read_open_memory.c
81
archive_read_private.h
82
archive_read_set_format.c
83
archive_read_set_options.c
84
archive_read_support_filter_all.c
85
archive_read_support_filter_by_code.c
86
archive_read_support_filter_bzip2.c
87
archive_read_support_filter_compress.c
88
archive_read_support_filter_gzip.c
89
archive_read_support_filter_grzip.c
90
archive_read_support_filter_lrzip.c
91
archive_read_support_filter_lz4.c
92
archive_read_support_filter_lzop.c
93
archive_read_support_filter_none.c
94
archive_read_support_filter_program.c
95
archive_read_support_filter_rpm.c
96
archive_read_support_filter_uu.c
97
archive_read_support_filter_xz.c
98
archive_read_support_filter_zstd.c
99
archive_read_support_format_7zip.c
100
archive_read_support_format_all.c
101
archive_read_support_format_ar.c
102
archive_read_support_format_by_code.c
103
archive_read_support_format_cab.c
104
archive_read_support_format_cpio.c
105
archive_read_support_format_empty.c
106
archive_read_support_format_iso9660.c
107
archive_read_support_format_lha.c
108
archive_read_support_format_mtree.c
109
archive_read_support_format_rar.c
110
archive_read_support_format_rar5.c
111
archive_read_support_format_raw.c
112
archive_read_support_format_tar.c
113
archive_read_support_format_warc.c
114
archive_read_support_format_xar.c
115
archive_read_support_format_zip.c
116
archive_string.c
117
archive_string.h
118
archive_string_composition.h
119
archive_string_sprintf.c
120
archive_util.c
121
archive_version_details.c
122
archive_virtual.c
123
archive_write.c
124
archive_write_disk_posix.c
125
archive_write_disk_private.h
126
archive_write_disk_set_standard_lookup.c
127
archive_write_private.h
128
archive_write_open_fd.c
129
archive_write_open_file.c
130
archive_write_open_filename.c
131
archive_write_open_memory.c
132
archive_write_add_filter.c
133
archive_write_add_filter_b64encode.c
134
archive_write_add_filter_by_name.c
135
archive_write_add_filter_bzip2.c
136
archive_write_add_filter_compress.c
137
archive_write_add_filter_grzip.c
138
archive_write_add_filter_gzip.c
139
archive_write_add_filter_lrzip.c
140
archive_write_add_filter_lz4.c
141
archive_write_add_filter_lzop.c
142
archive_write_add_filter_none.c
143
archive_write_add_filter_program.c
144
archive_write_add_filter_uuencode.c
145
archive_write_add_filter_xz.c
146
archive_write_add_filter_zstd.c
147
archive_write_set_format.c
148
archive_write_set_format_7zip.c
149
archive_write_set_format_ar.c
150
archive_write_set_format_by_name.c
151
archive_write_set_format_cpio.c
152
archive_write_set_format_cpio_binary.c
153
archive_write_set_format_cpio_newc.c
154
archive_write_set_format_cpio_odc.c
155
archive_write_set_format_filter_by_ext.c
156
archive_write_set_format_gnutar.c
157
archive_write_set_format_iso9660.c
158
archive_write_set_format_mtree.c
159
archive_write_set_format_pax.c
160
archive_write_set_format_private.h
161
archive_write_set_format_raw.c
162
archive_write_set_format_shar.c
163
archive_write_set_format_ustar.c
164
archive_write_set_format_v7tar.c
165
archive_write_set_format_warc.c
166
archive_write_set_format_xar.c
167
archive_write_set_format_zip.c
168
archive_write_set_options.c
169
archive_write_set_passphrase.c
170
archive_xxhash.h
171
filter_fork_posix.c
172
filter_fork.h
173
xxhash.c
174
)
175
176
# Man pages
177
SET(libarchive_MANS
178
archive_entry.3
179
archive_entry_acl.3
180
archive_entry_linkify.3
181
archive_entry_misc.3
182
archive_entry_paths.3
183
archive_entry_perms.3
184
archive_entry_stat.3
185
archive_entry_time.3
186
archive_read.3
187
archive_read_add_passphrase.3
188
archive_read_data.3
189
archive_read_disk.3
190
archive_read_extract.3
191
archive_read_filter.3
192
archive_read_format.3
193
archive_read_free.3
194
archive_read_header.3
195
archive_read_new.3
196
archive_read_open.3
197
archive_read_set_options.3
198
archive_util.3
199
archive_write.3
200
archive_write_blocksize.3
201
archive_write_data.3
202
archive_write_disk.3
203
archive_write_filter.3
204
archive_write_finish_entry.3
205
archive_write_format.3
206
archive_write_free.3
207
archive_write_header.3
208
archive_write_new.3
209
archive_write_open.3
210
archive_write_set_options.3
211
archive_write_set_passphrase.3
212
cpio.5
213
libarchive.3
214
libarchive_changes.3
215
libarchive_internals.3
216
libarchive-formats.5
217
mtree.5
218
tar.5
219
)
220
221
IF(WIN32 AND NOT CYGWIN)
222
LIST(APPEND libarchive_SOURCES archive_entry_copy_bhfi.c)
223
LIST(APPEND libarchive_SOURCES archive_read_disk_windows.c)
224
LIST(APPEND libarchive_SOURCES archive_windows.c)
225
LIST(APPEND libarchive_SOURCES archive_windows.h)
226
LIST(APPEND libarchive_SOURCES archive_write_disk_windows.c)
227
LIST(APPEND libarchive_SOURCES filter_fork_windows.c)
228
ENDIF(WIN32 AND NOT CYGWIN)
229
230
IF(ARCHIVE_BLAKE2)
231
LIST(APPEND libarchive_SOURCES archive_blake2sp_ref.c)
232
LIST(APPEND libarchive_SOURCES archive_blake2s_ref.c)
233
ENDIF(ARCHIVE_BLAKE2)
234
235
IF(ARCHIVE_ACL_DARWIN)
236
LIST(APPEND libarchive_SOURCES archive_disk_acl_darwin.c)
237
ELSEIF(ARCHIVE_ACL_FREEBSD)
238
LIST(APPEND libarchive_SOURCES archive_disk_acl_freebsd.c)
239
ELSEIF(ARCHIVE_ACL_LIBACL)
240
LIST(APPEND libarchive_SOURCES archive_disk_acl_linux.c)
241
ELSEIF(ARCHIVE_ACL_SUNOS)
242
LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c)
243
ENDIF()
244
245
# CMake needs just one static "cmlibarchive" library.
246
ADD_LIBRARY(cmlibarchive STATIC ${libarchive_SOURCES} ${include_HEADERS})
247
TARGET_LINK_LIBRARIES(cmlibarchive ${ADDITIONAL_LIBS})
248
249
if(WIN32 AND CMake_BUILD_PCH)
250
target_precompile_headers(cmlibarchive PRIVATE "archive_platform.h" "archive_entry.h" "<cm3p/bzlib.h>")
251
endif()
252
253
IF(0) # CMake does not build libarchive's full package.
254
# Libarchive is a shared library
255
IF(BUILD_SHARED_LIBS)
256
ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
257
TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .)
258
TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
259
SET_TARGET_PROPERTIES(archive PROPERTIES
260
VERSION ${SOVERSION_FULL}
261
SOVERSION ${SOVERSION}
262
MACHO_COMPATIBILITY_VERSION ${MACHO_COMPATIBILITY_VERSION}
263
MACHO_CURRENT_VERSION ${MACHO_CURRENT_VERSION})
264
ENDIF(BUILD_SHARED_LIBS)
265
266
# archive_static is a static library
267
ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS})
268
TARGET_INCLUDE_DIRECTORIES(archive_static PUBLIC .)
269
TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS})
270
SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS
271
LIBARCHIVE_STATIC)
272
# On Posix systems, libarchive.so and libarchive.a can co-exist.
273
IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)
274
SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)
275
ENDIF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)
276
277
IF(ENABLE_INSTALL)
278
# How to install the libraries
279
IF(BUILD_SHARED_LIBS)
280
INSTALL(TARGETS archive
281
RUNTIME DESTINATION bin
282
LIBRARY DESTINATION lib
283
ARCHIVE DESTINATION lib)
284
ENDIF(BUILD_SHARED_LIBS)
285
INSTALL(TARGETS archive_static
286
RUNTIME DESTINATION bin
287
LIBRARY DESTINATION lib
288
ARCHIVE DESTINATION lib)
289
INSTALL_MAN(${libarchive_MANS})
290
INSTALL(FILES ${include_HEADERS} DESTINATION include)
291
ENDIF()
292
293
add_subdirectory(test)
294
ENDIF()
295
296