list( APPEND eckit_cmd_srcs
cmdlib.h
AliasCmd.cc
AliasCmd.h
Arg.cc
Arg.h
CmdApplication.cc
CmdApplication.h
CmdArg.cc
CmdArg.h
CmdParser.cc
CmdParser.h
CmdResource.cc
CmdResource.h
ConfigCmd.cc
ConfigCmd.h
DirCmd.cc
DirCmd.h
EchoCmd.cc
EchoCmd.h
EnvironmentCmd.cc
EnvironmentCmd.h
ExportCmd.cc
ExportCmd.h
JSONCmd.cc
JSONCmd.h
HistoryCmd.cc
HistoryCmd.h
KillCmd.cc
KillCmd.h
LockCmd.cc
LockCmd.h
ManCmd.cc
ManCmd.h
MemoryCmd.cc
MemoryCmd.h
PsCmd.cc
PsCmd.h
QuitCmd.cc
QuitCmd.h
RemoteCmd.cc
RemoteCmd.h
RemoteCommandable.cc
RemoteCommandable.h
RemoteCommander.cc
RemoteCommander.h
RemoteCommandUser.cc
RemoteCommandUser.h
SleepCmd.cc
SleepCmd.h
StartCmd.cc
StartCmd.h
StatusCmd.cc
StatusCmd.h
StopCmd.cc
StopCmd.h
TailCmd.cc
TailCmd.h
TermBuf.cc
TermBuf.h
term.c
UpTimeCmd.cc
UpTimeCmd.h
UserInput.h
UserInput.cc
)

ecbuild_generate_yy( YYPREFIX eckit_cmd_
                     YACC cmdsy
                     LEX  cmdsl
                     DEPENDANT CmdParser.cc )

if( NOT ENABLE_WARNINGS )
  # Warnings present in autogenerated files based on cmdsy and cmdsl
  list( APPEND suppress_warnings
    $<$<CXX_COMPILER_ID:GNU>:-Wno-unused-function>
    $<$<CXX_COMPILER_ID:GNU>:-Wno-sign-compare>
    $<$<CXX_COMPILER_ID:Clang>:-Wno-deprecated-register>
  )
  set_source_files_properties( CmdParser.cc PROPERTIES COMPILE_OPTIONS "${suppress_warnings}" )
endif()

ecbuild_add_library( TARGET             eckit_cmd TYPE SHARED
                     INSTALL_HEADERS    LISTED
                     SOURCES            ${eckit_cmd_srcs}
                     HEADER_DESTINATION ${INSTALL_INCLUDE_DIR}/eckit/cmd
                     INCLUDES           ${CURSES_INCLUDE_DIR}
                     LIBS               eckit ${CURSES_LIBRARIES} )
