2323
2424include_directories (${CMAKE_CURRENT_SOURCE_DIR} /commands/helpers/ )
2525
26+ #-------------------------------------------------------------------------------
27+ # CLI11 parser submodule (console/parser)
28+ #-------------------------------------------------------------------------------
29+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR} /parser/CMakeLists.txt" )
30+ set (CLI11_BUILD_TESTS OFF CACHE BOOL "Disable CLI11 tests" FORCE )
31+ set (CLI11_BUILD_EXAMPLES OFF CACHE BOOL "Disable CLI11 examples" FORCE )
32+ set (CLI11_BUILD_DOCS OFF CACHE BOOL "Disable CLI11 docs" FORCE )
33+ set (CLI11_INSTALL ON CACHE BOOL "Install CLI11 headers" FORCE )
34+ add_subdirectory (parser )
35+ endif ()
36+
2637#-------------------------------------------------------------------------------
2738# eos executable
2839#-------------------------------------------------------------------------------
2940add_library (EosConsoleHelpers-Objects OBJECT
30- commands/ICmdHelper.cc commands/ICmdHelper.hh
41+ commands/helpers/ ICmdHelper.cc commands/helpers /ICmdHelper.hh
3142 commands/helpers/FsHelper.cc commands/helpers/FsHelper.hh
3243 commands/helpers/RecycleHelper.cc commands/helpers/RecycleHelper.hh
3344 commands/helpers/FsckHelper.cc commands/helpers/FsckHelper.hh
@@ -51,97 +62,115 @@ set_target_properties(EosConsoleHelpers-Objects PROPERTIES
5162 POSITION_INDEPENDENT_CODE TRUE )
5263
5364add_library (EosConsoleCommands-Objects OBJECT
65+ # Core console framework
5466 ConsoleMain.cc ConsoleMain.hh
55- ConsolePipe .cc ConsolePipe .hh
67+ CommandFramework .cc CommandFramework .hh
5668 ConsoleCompletion.cc ConsoleCompletion.hh
5769 RegexUtil.cc RegexUtil.hh
70+
71+ # Core/native base
72+ commands/native/CoreNativeCommands.cc
73+ commands/native/pwd-native.cc
74+ commands/native/status-native.cc
75+
76+ # Native aliases
77+ commands/native/info-alias.cc
78+ commands/native/fileinfo-alias.cc
79+ commands/native/mv-alias.cc
80+ commands/native/ls-compat.cc
81+
82+ # Native com wrappers
83+ commands/native/cat-com-native.cc
84+ commands/native/cp-cmd-native.cc
85+ commands/native/oldfind-cmd-native.cc
86+ commands/native/rclone-cmd-native.cc
87+ commands/native/squash-cmd-native.cc
88+
89+ # Native cmd implementations (mgm.cmd=...)
90+ commands/native/accounting-cmd-native.cc
91+ commands/native/archive-cmd-native.cc
92+ commands/native/attr-cmd-native.cc
93+ commands/native/backup-cmd-native.cc
94+ commands/native/cd-cmd-native.cc
95+ commands/native/chmod-cmd-native.cc
96+ commands/native/chown-cmd-native.cc
97+ commands/native/clear-cmd-native.cc
98+ commands/native/debug-cmd-native.cc
99+ commands/native/evict-cmd-native.cc
100+ commands/native/file-cmd-native.cc
101+ commands/native/geosched-cmd-native.cc
102+ commands/native/ln-cmd-native.cc
103+ commands/native/ls-cmd-native.cc
104+ commands/native/map-cmd-native.cc
105+ commands/native/member-cmd-native.cc
106+ commands/native/mkdir-cmd-native.cc
107+ commands/native/motd-cmd-native.cc
108+ commands/native/rmdir-cmd-native.cc
109+ commands/native/rtlog-cmd-native.cc
110+ commands/native/touch-cmd-native.cc
111+ commands/native/version-cmd-native.cc
112+ commands/native/vid-cmd-native.cc
113+ commands/native/who-cmd-native.cc
114+ commands/native/whoami-cmd-native.cc
115+
116+ # Native proto implementations
117+ commands/native/access-proto-native.cc
118+ commands/native/acl-proto-native.cc
119+ commands/native/config-proto-native.cc
120+ commands/native/convert-proto-native.cc
121+ commands/native/devices-proto-native.cc
122+ commands/native/df-proto-native.cc
123+ commands/native/du-proto-native.cc
124+ commands/native/find-proto-native.cc
125+ commands/native/fs-proto-native.cc
126+ commands/native/fsck-proto-native.cc
127+ commands/native/group-proto-native.cc
128+ commands/native/inspector-proto-native.cc
129+ commands/native/io-proto-native.cc
130+ commands/native/node-proto-native.cc
131+ commands/native/ns-proto-native.cc
132+ commands/native/quota-proto-native.cc
133+ commands/native/recycle-proto-native.cc
134+ commands/native/register-proto-native.cc
135+ commands/native/rm-proto-native.cc
136+ commands/native/route-proto-native.cc
137+ commands/native/sched-proto-native.cc
138+ commands/native/space-proto-native.cc
139+ commands/native/token-proto-native.cc
140+ commands/native/tracker-proto-native.cc
141+
142+ # Other native commands
143+ commands/native/daemon-native.cc
144+ commands/native/fuse-native.cc
145+ commands/native/fusex-cmd-native.cc
146+ commands/native/health-native.cc
147+ commands/native/license-native.cc
148+ commands/native/reconnect-native.cc
149+ commands/native/report-native.cc
150+ commands/native/role-native.cc
151+ commands/native/scitoken-native.cc
152+ commands/native/stat-native.cc
153+ commands/native/test-native.cc
154+
155+ # Legacy symbol aggregation
156+ commands/native/LegacySymbols.cc
157+
158+ # Shared helpers used by native/proto commands
58159 commands/helpers/NewfindHelper.cc commands/helpers/NewfindHelper.hh
59160 commands/helpers/AclHelper.cc commands/helpers/AclHelper.hh
60161 commands/HealthCommand.cc commands/HealthCommand.hh
61- commands/com_accounting.cc
62- commands/com_archive.cc
63- commands/com_attr.cc
64- commands/com_backup.cc
65- commands/com_cd.cc
66- commands/com_chmod.cc
67- commands/com_chown.cc
68- commands/com_clear.cc
69- commands/com_cp.cc
70- commands/com_daemon.cc
71- commands/com_file.cc
72- commands/com_old_find.cc
73- commands/com_proto_find.cc
74- commands/com_fuse.cc
75- commands/com_fusex.cc
76- commands/com_geosched.cc
77- commands/com_health.cc
78- commands/com_info.cc
79- commands/com_inspector.cc
80- commands/com_json.cc
81- commands/com_license.cc
82- commands/com_ls.cc
83- commands/com_ln.cc
84- commands/com_map.cc
85- commands/com_member.cc
86- commands/com_mkdir.cc
87- commands/com_motd.cc
88- commands/com_mv.cc
89- commands/com_print.cc
90- commands/com_pwd.cc
91- commands/com_quit.cc
92- commands/com_rclone.cc
93- commands/com_report.cc
94- commands/com_reconnect.cc
95- commands/com_rmdir.cc
96- commands/com_role.cc
97- commands/com_rtlog.cc
98- commands/com_scitoken.cc
99- commands/com_silent.cc
100- commands/com_stat.cc
101- commands/com_status.cc
102- commands/com_squash.cc
103- commands/com_test.cc
104- commands/com_timing.cc
105- commands/com_touch.cc
106- commands/com_proto_token.cc
107- commands/com_tracker.cc
108- commands/com_version.cc
109- commands/com_vid.cc
110- commands/com_whoami.cc
111- commands/com_who.cc
112- commands/com_proto_acl.cc
113- commands/com_proto_convert.cc
114- commands/com_proto_fs.cc
115- commands/com_proto_route.cc
116- commands/com_evict.cc
117- commands/com_proto_ns.cc
118- commands/com_proto_debug.cc
119- commands/com_du.cc
120- commands/com_proto_df.cc
121- commands/com_proto_group.cc
122- commands/com_proto_recycle.cc
123- commands/com_proto_config.cc
124- commands/com_proto_register.cc
125- commands/com_proto_rm.cc
126- #@todo (esindril) drop com_quota when move to 5.0.0
127- commands/com_quota.cc
128- commands/com_proto_quota.cc
129- commands/com_proto_node.cc
130- commands/com_proto_devices.cc
131- commands/com_proto_space.cc
132- commands/com_proto_io.cc
133- #@todo (esindril) drop com_access when move to 5.0.0
134- commands/com_access.cc
135- commands/com_proto_access.cc
136- commands/com_proto_fsck.cc
137- commands/com_proto_sched.cc )
162+ )
138163
139164target_link_libraries (EosConsoleCommands-Objects PUBLIC
140165 EosConsoleHelpers-Objects
141166 READLINE::READLINE
142167 JSONCPP::JSONCPP
143168 SCITOKENS::SCITOKENS
144- XROOTD::UTILS )
169+ XROOTD::UTILS
170+ CLI11::CLI11 )
171+
172+ target_include_directories (EosConsoleCommands-Objects PUBLIC
173+ ${CMAKE_CURRENT_SOURCE_DIR} /parser/include )
145174
146175set_target_properties (EosConsoleCommands-Objects PROPERTIES
147176 POSITION_INDEPENDENT_CODE TRUE )
0 commit comments