3 add_subdirectory (bootstrap)
22 src/EditorConfigOrg.cpp
28 src/filefilterparams.cpp
29 src/FilesSuggestor.cpp
57 src/RefreshFrameManager.cpp
64 src/TPreRedrawFunc.cpp
74 src/panels/filelist.cpp
76 src/panels/flmodes.cpp
77 src/panels/flplugin.cpp
79 src/panels/flupdate.cpp
80 src/panels/infolist.cpp
82 src/panels/treelist.cpp
84 src/console/AnsiEsc.cpp
85 src/console/keyboard.cpp
86 src/console/console.cpp
87 src/console/constitle.cpp
88 src/console/interf.cpp
89 src/console/grabber.cpp
90 src/console/lockscrn.cpp
91 src/console/palette.cpp
92 src/console/savescr.cpp
93 src/console/scrbuf.cpp
94 src/console/scrobj.cpp
95 src/console/scrsaver.cpp
97 src/macro/chgmmode.cpp
102 src/filemask/CFileMask.cpp
103 src/filemask/FileMasksProcessor.cpp
104 src/filemask/FileMasksWithExclude.cpp
106 src/locale/codepage.cpp
107 src/locale/DetectCodepage.cpp
109 src/locale/locale.cpp
111 src/bookmarks/Bookmarks.cpp
112 src/bookmarks/BookmarksMenu.cpp
113 src/bookmarks/BookmarksLegacy.cpp
117 src/cfg/ConfigSaveLoad.cpp
119 src/cfg/ConfigLegacy.cpp
120 src/cfg/HotkeyLetterDialog.cpp
124 src/hist/poscache.cpp
134 src/vt/vtshell_translation.cpp
135 src/vt/vtshell_compose.cpp
136 src/vt/vtshell_leader.cpp
137 src/vt/vtshell_ioreaders.cpp
138 src/vt/vtshell_mouse.cpp
140 src/vt/vtcompletor.cpp
141 src/vt/VTFar2lExtensios.cpp
143 src/base/InterThreadCall.cpp
144 src/base/SafeMMap.cpp
145 src/base/farqueue.cpp
146 src/base/FARString.cpp
155 src/mix/MountInfo.cpp
161 src/mix/processname.cpp
164 src/mix/FSFileFlags.cpp
166 src/mix/ChunkedData.cpp
167 src/mix/UsedChars.cpp
168 src/mix/CachedCreds.cpp
171 # Set target names for the executables
172 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
173 set(MACOSX_BUNDLE_LONG_VERSION_STRING ${VERSION})
174 set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${VERSION})
175 set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_IDENTIFIER})
176 set(MACOSX_BUNDLE_ICON_FILE "Far.icns")
177 set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_NAME})
178 add_executable(far2l MACOSX_BUNDLE ${SOURCES} "DE/Far.icns")
179 set_target_properties(far2l PROPERTIES
180 OUTPUT_NAME ${APP_NAME}
181 RUNTIME_OUTPUT_DIRECTORY ${APP_DIR})
182 set_source_files_properties("DE/Far.icns" PROPERTIES
183 MACOSX_PACKAGE_LOCATION Resources)
185 add_executable(far2l ${SOURCES})
186 set_target_properties(far2l PROPERTIES
187 RUNTIME_OUTPUT_DIRECTORY "${INSTALL_DIR}")
190 if (NOT DEFINED USEUCD)
195 message(STATUS "Building without libuchardet due to USEUCD=${USEUCD}")
197 message(STATUS "Building with libuchardet")
198 find_package(Uchardet REQUIRED)
199 target_compile_definitions(far2l PRIVATE -DUSEUCD)
202 target_compile_definitions(far2l PRIVATE -DUNICODE)
204 target_include_directories(far2l PRIVATE
220 ${CMAKE_CURRENT_BINARY_DIR}
221 ${UCHARDET_INCLUDE_DIRS}
224 add_dependencies(far2l bootstrap WinPort)
226 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
227 SET (WINPORT -force_load WinPort wineguts utils)
229 SET (WINPORT -Wl,--whole-archive WinPort -Wl,--no-whole-archive)
232 set_target_properties(far2l
236 if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
237 target_link_libraries(far2l
240 PRIVATE ${UCHARDET_LIBRARIES})
241 elseif(${CMAKE_SYSTEM_NAME} MATCHES "Haiku")
242 target_link_libraries(far2l
245 PRIVATE ${UCHARDET_LIBRARIES})
247 target_link_libraries(far2l
250 PRIVATE ${UCHARDET_LIBRARIES})
253 add_custom_command(TARGET far2l POST_BUILD
254 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2l_askpass
255 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2l_sudoapp
256 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2ledit)
258 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
261 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/DE/far2l.desktop" "${CMAKE_CURRENT_BINARY_DIR}/DE/far2l.desktop")
263 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/DE/icons" DESTINATION "share" USE_SOURCE_PERMISSIONS COMPONENT desktop FILES_MATCHING PATTERN "*")
265 # Have to make desktop file executable, see:
266 # https://wiki.ubuntu.com/SecurityTeam/Policies#Execute-Permission_Bit_Required
267 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/DE/far2l.desktop" DESTINATION "share/applications" COMPONENT desktop
268 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE)