3 add_subdirectory (bootstrap)
22 src/EditorConfigOrg.cpp
28 src/filefilterparams.cpp
29 src/FilesSuggestor.cpp
57 src/RefreshFrameManager.cpp
64 src/TPreRedrawFunc.cpp
75 src/panels/filelist.cpp
77 src/panels/flmodes.cpp
78 src/panels/flplugin.cpp
80 src/panels/flupdate.cpp
81 src/panels/infolist.cpp
83 src/panels/treelist.cpp
85 src/console/AnsiEsc.cpp
86 src/console/keyboard.cpp
87 src/console/console.cpp
88 src/console/constitle.cpp
89 src/console/interf.cpp
90 src/console/grabber.cpp
91 src/console/lockscrn.cpp
92 src/console/palette.cpp
93 src/console/savescr.cpp
94 src/console/scrbuf.cpp
95 src/console/scrobj.cpp
96 src/console/scrsaver.cpp
98 src/macro/chgmmode.cpp
103 src/filemask/CFileMask.cpp
104 src/filemask/FileMasksProcessor.cpp
105 src/filemask/FileMasksWithExclude.cpp
107 src/locale/codepage.cpp
108 src/locale/DetectCodepage.cpp
110 src/locale/locale.cpp
112 src/bookmarks/Bookmarks.cpp
113 src/bookmarks/BookmarksMenu.cpp
114 src/bookmarks/BookmarksLegacy.cpp
118 src/cfg/ConfigSaveLoad.cpp
120 src/cfg/ConfigLegacy.cpp
121 src/cfg/HotkeyLetterDialog.cpp
125 src/hist/poscache.cpp
135 src/vt/vtshell_translation.cpp
136 src/vt/vtshell_compose.cpp
137 src/vt/vtshell_leader.cpp
138 src/vt/vtshell_ioreaders.cpp
139 src/vt/vtshell_mouse.cpp
141 src/vt/vtcompletor.cpp
142 src/vt/VTFar2lExtensios.cpp
144 src/base/InterThreadCall.cpp
145 src/base/SafeMMap.cpp
146 src/base/farqueue.cpp
147 src/base/FARString.cpp
156 src/mix/MountInfo.cpp
162 src/mix/processname.cpp
165 src/mix/FSFileFlags.cpp
167 src/mix/ChunkedData.cpp
168 src/mix/UsedChars.cpp
169 src/mix/CachedCreds.cpp
172 # Set target names for the executables
173 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
174 set(MACOSX_BUNDLE_LONG_VERSION_STRING ${VERSION})
175 set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${VERSION})
176 set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_IDENTIFIER})
177 set(MACOSX_BUNDLE_ICON_FILE "Far.icns")
178 set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_NAME})
179 add_executable(far2l MACOSX_BUNDLE ${SOURCES} "DE/Far.icns")
180 set_target_properties(far2l PROPERTIES
181 OUTPUT_NAME ${APP_NAME}
182 RUNTIME_OUTPUT_DIRECTORY ${APP_DIR})
183 set_source_files_properties("DE/Far.icns" PROPERTIES
184 MACOSX_PACKAGE_LOCATION Resources)
186 add_executable(far2l ${SOURCES})
187 set_target_properties(far2l PROPERTIES
188 RUNTIME_OUTPUT_DIRECTORY "${INSTALL_DIR}")
191 if (NOT DEFINED USEUCD)
196 message(STATUS "Building without libuchardet due to USEUCD=${USEUCD}")
198 message(STATUS "Building with libuchardet")
199 find_package(Uchardet REQUIRED)
200 target_compile_definitions(far2l PRIVATE -DUSEUCD)
203 target_compile_definitions(far2l PRIVATE -DUNICODE)
205 target_include_directories(far2l PRIVATE
221 ${CMAKE_CURRENT_BINARY_DIR}
222 ${UCHARDET_INCLUDE_DIRS}
225 add_dependencies(far2l bootstrap WinPort)
227 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
228 SET (WINPORT -force_load WinPort wineguts utils)
230 SET (WINPORT -Wl,--whole-archive WinPort -Wl,--no-whole-archive)
233 set_target_properties(far2l
237 if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
238 target_link_libraries(far2l
241 PRIVATE ${UCHARDET_LIBRARIES})
242 elseif(${CMAKE_SYSTEM_NAME} MATCHES "Haiku")
243 target_link_libraries(far2l
246 PRIVATE ${UCHARDET_LIBRARIES})
248 target_link_libraries(far2l
251 PRIVATE ${UCHARDET_LIBRARIES})
254 add_custom_command(TARGET far2l POST_BUILD
255 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2l_askpass
256 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2l_sudoapp
257 COMMAND ln -sf ${EXECUTABLE_NAME} ${INSTALL_DIR}/far2ledit)
259 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
262 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/DE/far2l.desktop" "${CMAKE_CURRENT_BINARY_DIR}/DE/far2l.desktop")
264 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/DE/icons" DESTINATION "share" USE_SOURCE_PERMISSIONS COMPONENT desktop FILES_MATCHING PATTERN "*")
266 # Have to make desktop file executable, see:
267 # https://wiki.ubuntu.com/SecurityTeam/Policies#Execute-Permission_Bit_Required
268 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/DE/far2l.desktop" DESTINATION "share/applications" COMPONENT desktop
269 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE)