Imported Upstream version 3.22.5
[platform/upstream/cmake.git] / Utilities / cmlibarchive / libarchive / CMakeLists.txt
1
2 ############################################
3 #
4 # How to build libarchive
5 #
6 ############################################
7
8 # Public headers
9 SET(include_HEADERS
10   archive.h
11   archive_entry.h
12 )
13
14 # Sources and private headers
15 SET(libarchive_SOURCES
16   archive_acl.c
17   archive_acl_private.h
18   archive_check_magic.c
19   archive_cmdline.c
20   archive_cmdline_private.h
21   archive_crc32.h
22   archive_cryptor.c
23   archive_cryptor_private.h
24   archive_digest.c
25   archive_digest_private.h
26   archive_endian.h
27   archive_entry.c
28   archive_entry.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
34   archive_entry_stat.c
35   archive_entry_strmode.c
36   archive_entry_xattr.c
37   archive_getdate.c
38   archive_getdate.h
39   archive_hmac.c
40   archive_hmac_private.h
41   archive_match.c
42   archive_openssl_evp_private.h
43   archive_openssl_hmac_private.h
44   archive_options.c
45   archive_options_private.h
46   archive_pack_dev.h
47   archive_pack_dev.c
48   archive_pathmatch.c
49   archive_pathmatch.h
50   archive_platform.h
51   archive_platform_acl.h
52   archive_platform_xattr.h
53   archive_ppmd_private.h
54   archive_ppmd8.c
55   archive_ppmd8_private.h
56   archive_ppmd7.c
57   archive_ppmd7_private.h
58   archive_private.h
59   archive_random.c
60   archive_random_private.h
61   archive_rb.c
62   archive_rb.h
63   archive_read.c
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
111   archive_string.c
112   archive_string.h
113   archive_string_composition.h
114   archive_string_sprintf.c
115   archive_util.c
116   archive_version_details.c
117   archive_virtual.c
118   archive_write.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
165   archive_xxhash.h
166   filter_fork_posix.c
167   filter_fork.h
168   xxhash.c
169 )
170
171 # Man pages
172 SET(libarchive_MANS
173   archive_entry.3
174   archive_entry_acl.3
175   archive_entry_linkify.3
176   archive_entry_misc.3
177   archive_entry_paths.3
178   archive_entry_perms.3
179   archive_entry_stat.3
180   archive_entry_time.3
181   archive_read.3
182   archive_read_add_passphrase.3
183   archive_read_data.3
184   archive_read_disk.3
185   archive_read_extract.3
186   archive_read_filter.3
187   archive_read_format.3
188   archive_read_free.3
189   archive_read_header.3
190   archive_read_new.3
191   archive_read_open.3
192   archive_read_set_options.3
193   archive_util.3
194   archive_write.3
195   archive_write_blocksize.3
196   archive_write_data.3
197   archive_write_disk.3
198   archive_write_filter.3
199   archive_write_finish_entry.3
200   archive_write_format.3
201   archive_write_free.3
202   archive_write_header.3
203   archive_write_new.3
204   archive_write_open.3
205   archive_write_set_options.3
206   archive_write_set_passphrase.3
207   cpio.5
208   libarchive.3
209   libarchive_changes.3
210   libarchive_internals.3
211   libarchive-formats.5
212   mtree.5
213   tar.5
214 )
215
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)
224
225 IF(ARCHIVE_BLAKE2)
226   LIST(APPEND libarchive_SOURCES archive_blake2sp_ref.c)
227   LIST(APPEND libarchive_SOURCES archive_blake2s_ref.c)
228 ENDIF(ARCHIVE_BLAKE2)
229
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)
238 ENDIF()
239
240 # CMake needs just one static "cmlibarchive" library.
241 ADD_LIBRARY(cmlibarchive STATIC ${libarchive_SOURCES} ${include_HEADERS})
242 TARGET_LINK_LIBRARIES(cmlibarchive ${ADDITIONAL_LIBS})
243
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})
250
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
255   LIBARCHIVE_STATIC)
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)
260
261 IF(ENABLE_INSTALL)
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)
269 ENDIF()
270
271 add_subdirectory(test)
272 ENDIF()