fixed iterm2 cursor shape esc sequences
[far2l.git] / multiarc / CMakeLists.txt
blob2d4a32b8399afa606a4f4e6a5a03db837ee7d4fe
2 project(multiarc)
4 set(SOURCES
5     src/MultiArc.cpp
6     src/ArcPlg.cpp
7     src/arccfg.cpp
8     src/arcget.cpp
9     src/arcput.cpp
10     src/ArcMix.cpp
11     src/ArcProc.cpp
12     src/global.cpp
13     src/arcread.cpp
14     src/arccmd.cpp
15     src/formats/ha/ha.cpp
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
73         src/formats/7z/C/Xz.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
80         src/formats/7z/7z.cpp
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")
98     set(SOURCES
99         ${SOURCES}
100         src/formats/rar/rar.cpp
101         src/formats/rar/rarmainstub.cpp
102     )
103 elseif(UNRAR)
104     set(SOURCES
105         ${SOURCES}
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
157     )
158 endif()
160 set(SOURCES
161     ${SOURCES}
162     src/formats/custom/custom.cpp
165 if(LibArchive_FOUND)
166     set(SOURCES
167         ${SOURCES}
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
173     )
174 else()
175     set(SOURCES
176         ${SOURCES}
177         src/formats/targz/targz.cpp
178         src/formats/cab/cab.cpp
180     )
181 endif()
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)
189 if(NOT UNRAR)
190     if (LibArchive_FOUND)
191         message(STATUS "Using LibArchive for limited RAR archives support.")
192     else()
193         message(STATUS "${ColorRed}RAR archives support disabled due to UNRAR=${UNRAR} and lack of LibArchive.${ColorNormal}")
194     endif()
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})
202 else()
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)
206 endif()
208 target_include_directories(multiarc PRIVATE src)
209 target_include_directories(multiarc PRIVATE ../WinPort)
210 target_include_directories(multiarc PRIVATE ../far2l/far2sdk)
212 if(LibArchive_FOUND)
213     target_compile_definitions(multiarc PRIVATE -DHAVE_LIBARCHIVE)
214     target_link_libraries(multiarc ${LibArchive_LIBRARIES})
215     target_include_directories(multiarc PRIVATE ${LibArchive_INCLUDE_DIRS})
216 endif()
218 set_target_properties(multiarc
219     PROPERTIES
220         LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/multiarc/plug"
221         PREFIX ""
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")