Make CLI optional

This commit is contained in:
Florian Märkl 2019-08-17 14:36:26 +02:00
parent b591105c3b
commit 94e7735c34
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
3 changed files with 20 additions and 2 deletions

View file

@ -4,14 +4,19 @@ cmake_minimum_required(VERSION 3.2)
project(chiaki) project(chiaki)
option(CHIAKI_ENABLE_TESTS "Enable tests for Chiaki" ON) option(CHIAKI_ENABLE_TESTS "Enable tests for Chiaki" ON)
option(CHIAKI_ENABLE_CLI "Enable CLI for Chiaki" OFF)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
add_subdirectory(third-party) add_subdirectory(third-party)
add_subdirectory(lib) add_subdirectory(lib)
if(CHIAKI_ENABLE_CLI)
add_subdirectory(cli)
endif()
add_subdirectory(gui) add_subdirectory(gui)
add_subdirectory(cli)
if(CHIAKI_ENABLE_TESTS) if(CHIAKI_ENABLE_TESTS)
enable_testing() enable_testing()

View file

@ -49,7 +49,12 @@ add_executable(chiaki
res/resources.qrc) res/resources.qrc)
target_include_directories(chiaki PRIVATE include) target_include_directories(chiaki PRIVATE include)
target_link_libraries(chiaki chiaki-lib chiaki-cli-lib) target_link_libraries(chiaki chiaki-lib)
if(CHIAKI_ENABLE_CLI)
add_definitions(CHIAKI_ENABLE_CLI)
target_link_libraries(chiaki chiaki-cli-lib)
endif()
target_link_libraries(chiaki FFMPEG::avcodec) target_link_libraries(chiaki FFMPEG::avcodec)
target_link_libraries(chiaki Qt5::Core Qt5::Widgets Qt5::Gui Qt5::Multimedia Qt5::OpenGL Qt5::Svg) target_link_libraries(chiaki Qt5::Core Qt5::Widgets Qt5::Gui Qt5::Multimedia Qt5::OpenGL Qt5::Svg)
if(CHIAKI_GUI_ENABLE_QT_GAMEPAD) if(CHIAKI_GUI_ENABLE_QT_GAMEPAD)

View file

@ -8,7 +8,9 @@
#include <host.h> #include <host.h>
#include <avopenglwidget.h> #include <avopenglwidget.h>
#ifdef CHIAKI_ENABLE_CLI
#include <chiaki-cli.h> #include <chiaki-cli.h>
#endif
#include <chiaki/session.h> #include <chiaki/session.h>
#include <chiaki/regist.h> #include <chiaki/regist.h>
@ -26,6 +28,7 @@
Q_DECLARE_METATYPE(ChiakiLogLevel) Q_DECLARE_METATYPE(ChiakiLogLevel)
#ifdef CHIAKI_ENABLE_CLI
struct CLICommand struct CLICommand
{ {
int (*cmd)(ChiakiLog *log, int argc, char *argv[]); int (*cmd)(ChiakiLog *log, int argc, char *argv[]);
@ -34,6 +37,7 @@ struct CLICommand
static const QMap<QString, CLICommand> cli_commands = { static const QMap<QString, CLICommand> cli_commands = {
{ "discover", { chiaki_cli_cmd_discover } } { "discover", { chiaki_cli_cmd_discover } }
}; };
#endif
int RunStream(QApplication &app, const StreamSessionConnectInfo &connect_info); int RunStream(QApplication &app, const StreamSessionConnectInfo &connect_info);
int RunMain(QApplication &app, Settings *settings); int RunMain(QApplication &app, Settings *settings);
@ -72,7 +76,9 @@ int main(int argc, char *argv[])
QStringList cmds; QStringList cmds;
cmds.append("stream"); cmds.append("stream");
#ifdef CHIAKI_ENABLE_CLI
cmds.append(cli_commands.keys()); cmds.append(cli_commands.keys());
#endif
parser.addPositionalArgument("command", cmds.join(", ")); parser.addPositionalArgument("command", cmds.join(", "));
parser.addPositionalArgument("host", "Address to connect to (when using the stream command)"); parser.addPositionalArgument("host", "Address to connect to (when using the stream command)");
@ -118,6 +124,7 @@ int main(int argc, char *argv[])
return RunStream(app, connect_info); return RunStream(app, connect_info);
} }
#ifdef CHIAKI_ENABLE_CLI
else if(cli_commands.contains(args[0])) else if(cli_commands.contains(args[0]))
{ {
ChiakiLog log; ChiakiLog log;
@ -135,6 +142,7 @@ int main(int argc, char *argv[])
} }
return cmd.cmd(&log, sub_argc, sub_argv.data()); return cmd.cmd(&log, sub_argc, sub_argv.data());
} }
#endif
else else
{ {
parser.showHelp(1); parser.showHelp(1);