From 6321f669cbfeab0ce2c6da172f619fa9a391dc8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Sun, 25 Aug 2019 16:38:14 +0200 Subject: [PATCH] Fix CLI for FreeBSD --- CMakeLists.txt | 1 + cli/CMakeLists.txt | 5 +++++ cli/src/discover.c | 3 ++- cmake/FindArgp.cmake | 20 ++++++++++++++++++++ gui/CMakeLists.txt | 2 +- 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 cmake/FindArgp.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a3d9185..b3d25e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ option(CHIAKI_ENABLE_TESTS "Enable tests for Chiaki" ON) option(CHIAKI_ENABLE_CLI "Enable CLI for Chiaki" OFF) option(CHIAKI_GUI_ENABLE_QT_GAMEPAD "Use QtGamepad for Input" OFF) option(CHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER "Use SDL Gamecontroller for Input" ON) +option(CHIAKI_CLI_ARGP_STANDALONE "Search for standalone argp lib for CLI" OFF) set(CHIAKI_VERSION_MAJOR 1) set(CHIAKI_VERSION_MINOR 0) diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt index b44d0f5..c718185 100644 --- a/cli/CMakeLists.txt +++ b/cli/CMakeLists.txt @@ -7,5 +7,10 @@ add_library(chiaki-cli-lib STATIC ${SOURCE}) target_include_directories(chiaki-cli-lib PUBLIC "include") target_link_libraries(chiaki-cli-lib chiaki-lib) +if(CHIAKI_CLI_ARGP_STANDALONE) + find_package(Argp REQUIRED) + target_link_libraries(chiaki-cli-lib Argp::Argp) +endif() + add_executable(chiaki-cli src/main.c) target_link_libraries(chiaki-cli chiaki-cli-lib) diff --git a/cli/src/discover.c b/cli/src/discover.c index 2f2e854..04f3f74 100644 --- a/cli/src/discover.c +++ b/cli/src/discover.c @@ -24,6 +24,7 @@ #include #include #include +#include static char doc[] = "Send a PS4 discovery request."; @@ -168,4 +169,4 @@ CHIAKI_EXPORT int chiaki_cli_cmd_discover(ChiakiLog *log, int argc, char *argv[] sleep(1); return 0; -} \ No newline at end of file +} diff --git a/cmake/FindArgp.cmake b/cmake/FindArgp.cmake new file mode 100644 index 0000000..d88fc2f --- /dev/null +++ b/cmake/FindArgp.cmake @@ -0,0 +1,20 @@ +# FindArgp +# Will define Target Argp::Argp + +find_path(Argp_INCLUDE_DIR + NAMES argp.h) + +find_library(Argp_LIBRARY + NAMES argp) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Argp + REQUIRED_VARS Argp_LIBRARY Argp_INCLUDE_DIR) + +if(Argp_FOUND AND NOT TARGET Argp::Argp) + add_library(Argp::Argp UNKNOWN IMPORTED) + set_target_properties(Argp::Argp PROPERTIES + IMPORTED_LOCATION "${Argp_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${Argp_INCLUDE_DIR}") +endif() + diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 65e8d1c..b303324 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -70,7 +70,7 @@ target_include_directories(chiaki PRIVATE include) target_link_libraries(chiaki chiaki-lib) if(CHIAKI_ENABLE_CLI) - add_definitions(CHIAKI_ENABLE_CLI) + add_definitions(-DCHIAKI_ENABLE_CLI) target_link_libraries(chiaki chiaki-cli-lib) endif()