16 src/formats/arj/arj.cpp
17 src/formats/ace/ace.cpp
18 src/formats/arc/arc.cpp
19 src/formats/zip/zip.cpp
20 src/formats/lzh/lzh.cpp
22 src/formats/7z/C/7zAlloc.c
23 src/formats/7z/C/7zArcIn.c
24 src/formats/7z/C/7zBuf2.c
25 src/formats/7z/C/7zBuf.c
26 src/formats/7z/C/7zCrc.c
27 src/formats/7z/C/7zCrcOpt.c
28 src/formats/7z/C/7zDec.c
29 src/formats/7z/C/7zFile.c
30 src/formats/7z/C/7zStream.c
31 src/formats/7z/C/Aes.c
32 src/formats/7z/C/AesOpt.c
33 src/formats/7z/C/Alloc.c
34 src/formats/7z/C/Bcj2.c
35 src/formats/7z/C/Bcj2Enc.c
36 src/formats/7z/C/Blake2s.c
37 src/formats/7z/C/Bra86.c
38 src/formats/7z/C/Bra.c
39 src/formats/7z/C/BraIA64.c
40 src/formats/7z/C/BwtSort.c
41 src/formats/7z/C/CpuArch.c
42 src/formats/7z/C/Delta.c
43 src/formats/7z/C/DllSecur.c
44 src/formats/7z/C/HuffEnc.c
45 src/formats/7z/C/LzFind.c
46 src/formats/7z/C/LzFindMt.c
47 src/formats/7z/C/LzFindOpt.c
48 src/formats/7z/C/Lzma2Dec.c
49 src/formats/7z/C/Lzma2DecMt.c
50 src/formats/7z/C/Lzma2Enc.c
51 src/formats/7z/C/Lzma86Dec.c
52 src/formats/7z/C/Lzma86Enc.c
53 src/formats/7z/C/LzmaDec.c
54 src/formats/7z/C/LzmaEnc.c
55 src/formats/7z/C/LzmaLib.c
56 src/formats/7z/C/MtCoder.c
57 src/formats/7z/C/MtDec.c
58 src/formats/7z/C/Ppmd7aDec.c
59 src/formats/7z/C/Ppmd7.c
60 src/formats/7z/C/Ppmd7Dec.c
61 src/formats/7z/C/Ppmd7Enc.c
62 src/formats/7z/C/Ppmd8.c
63 src/formats/7z/C/Ppmd8Dec.c
64 src/formats/7z/C/Ppmd8Enc.c
65 src/formats/7z/C/Sha1.c
66 src/formats/7z/C/Sha1Opt.c
67 src/formats/7z/C/Sha256.c
68 src/formats/7z/C/Sha256Opt.c
69 src/formats/7z/C/Sort.c
70 src/formats/7z/C/SwapBytes.c
71 src/formats/7z/C/Threads.c
72 src/formats/7z/C/Xxh64.c
74 src/formats/7z/C/XzCrc64.c
75 src/formats/7z/C/XzCrc64Opt.c
76 src/formats/7z/C/XzDec.c
77 src/formats/7z/C/XzEnc.c
78 src/formats/7z/C/XzIn.c
79 src/formats/7z/C/ZstdDec.c
81 src/formats/7z/7zMain.cpp
83 src/formats/ha/ha/acoder.c
84 src/formats/ha/ha/archive.c
85 src/formats/ha/ha/asc.c
86 src/formats/ha/ha/cpy.c
87 src/formats/ha/ha/error.c
88 src/formats/ha/ha/ha.c
89 src/formats/ha/ha/haio.c
90 src/formats/ha/ha/hsc.c
91 src/formats/ha/ha/info.c
92 src/formats/ha/ha/machine.c
93 src/formats/ha/ha/misc.c
94 src/formats/ha/ha/swdict.c
97 if("${UNRAR}" STREQUAL "lib")
100 src/formats/rar/rar.cpp
101 src/formats/rar/rarmainstub.cpp
106 src/formats/rar/rar.cpp
107 src/formats/rar/unrar/scantree.cpp
108 src/formats/rar/unrar/sha1.cpp
109 src/formats/rar/unrar/threadpool.cpp
110 src/formats/rar/unrar/crc.cpp
111 src/formats/rar/unrar/hash.cpp
112 src/formats/rar/unrar/strlist.cpp
113 src/formats/rar/unrar/rs16.cpp
114 src/formats/rar/unrar/resource.cpp
115 src/formats/rar/unrar/consio.cpp
116 src/formats/rar/unrar/secpassword.cpp
117 src/formats/rar/unrar/qopen.cpp
118 src/formats/rar/unrar/recvol.cpp
119 src/formats/rar/unrar/rijndael.cpp
120 src/formats/rar/unrar/timefn.cpp
121 src/formats/rar/unrar/encname.cpp
122 src/formats/rar/unrar/rawread.cpp
123 src/formats/rar/unrar/file.cpp
124 src/formats/rar/unrar/strfn.cpp
125 src/formats/rar/unrar/sha256.cpp
126 src/formats/rar/unrar/filefn.cpp
127 src/formats/rar/unrar/filcreat.cpp
128 src/formats/rar/unrar/headers.cpp
129 src/formats/rar/unrar/blake2s.cpp
130 src/formats/rar/unrar/options.cpp
131 src/formats/rar/unrar/volume.cpp
132 src/formats/rar/unrar/system.cpp
133 src/formats/rar/unrar/crypt.cpp
134 src/formats/rar/unrar/cmddata.cpp
135 src/formats/rar/unrar/extinfo.cpp
136 src/formats/rar/unrar/filestr.cpp
137 src/formats/rar/unrar/ui.cpp
138 src/formats/rar/unrar/list.cpp
139 src/formats/rar/unrar/find.cpp
140 src/formats/rar/unrar/smallfn.cpp
141 src/formats/rar/unrar/unicode.cpp
142 src/formats/rar/unrar/pathfn.cpp
143 src/formats/rar/unrar/global.cpp
144 src/formats/rar/unrar/rarvm.cpp
145 src/formats/rar/unrar/getbits.cpp
146 src/formats/rar/unrar/rs.cpp
147 src/formats/rar/unrar/errhnd.cpp
148 src/formats/rar/unrar/archive.cpp
149 src/formats/rar/unrar/dll.cpp
150 src/formats/rar/unrar/extract.cpp
151 src/formats/rar/unrar/match.cpp
152 src/formats/rar/unrar/unpack.cpp
153 src/formats/rar/unrar/arcread.cpp
154 src/formats/rar/unrar/rdwrfn.cpp
155 src/formats/rar/unrar/rarpch.cpp
156 src/formats/rar/unrar/rar.cpp
162 src/formats/custom/custom.cpp
168 src/formats/libarch/libarch_utils.cpp
169 src/formats/libarch/libarch_crutches.cpp
170 src/formats/libarch/libarch_cmd_read.cpp
171 src/formats/libarch/libarch_cmd_write.cpp
172 src/formats/libarch/libarch.cpp
177 src/formats/targz/targz.cpp
178 src/formats/cab/cab.cpp
183 add_library (multiarc MODULE ${SOURCES})
185 target_compile_definitions(multiarc PRIVATE -D_7ZIP_ST -D_7ZIP_PPMD_SUPPPORT)
187 target_link_libraries(multiarc utils far2l)
190 if (LibArchive_FOUND)
191 message(STATUS "Using LibArchive for limited RAR archives support.")
193 message(STATUS "${ColorRed}RAR archives support disabled due to UNRAR=${UNRAR} and lack of LibArchive.${ColorNormal}")
196 elseif("${UNRAR}" STREQUAL "lib")
197 message(STATUS "Using system unrar - will need libunrar and unrar tool.")
198 find_package(Unrar REQUIRED)
199 target_include_directories(multiarc PRIVATE ${UNRAR_INCLUDE_DIR})
200 target_compile_definitions(multiarc PRIVATE -DRARDLL -DHAVE_UNRAR)
201 target_link_libraries(multiarc ${UNRAR_LIBRARIES})
203 message(STATUS "Using bundled unrar sources")
204 target_include_directories(multiarc PRIVATE src/formats/rar/unrar)
205 target_compile_definitions(multiarc PRIVATE -DRARDLL -DHAVE_UNRAR)
208 target_include_directories(multiarc PRIVATE src)
209 target_include_directories(multiarc PRIVATE ../WinPort)
210 target_include_directories(multiarc PRIVATE ../far2l/far2sdk)
213 target_compile_definitions(multiarc PRIVATE -DHAVE_LIBARCHIVE)
214 target_link_libraries(multiarc ${LibArchive_LIBRARIES})
215 target_include_directories(multiarc PRIVATE ${LibArchive_INCLUDE_DIRS})
218 set_target_properties(multiarc
220 LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/multiarc/plug"
222 SUFFIX ".far-plug-mb")
224 add_custom_command(TARGET multiarc POST_BUILD
225 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configs
226 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/configs "${INSTALL_DIR}/Plugins/multiarc")