diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d8a19a..6477670 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,34 +116,36 @@ if (CLI_BuildTests) endif() # Install -install(DIRECTORY include/cli DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -include(CMakePackageConfigHelpers) -configure_package_config_file( - "cliConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cliConfig.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cli" -) - -# Generate pkg-config .pc file -set(PKGCONFIG_INSTALL_DIR - ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig - CACHE PATH "Installation directory for pkg-config (cli.pc) file" -) -configure_file( - "cli.pc.in" - "cli.pc" - @ONLY -) - -install(TARGETS cli EXPORT cliTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(EXPORT cliTargets FILE cliTargets.cmake NAMESPACE cli:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cli) - -install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/cliConfig.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cli" -) -install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/cli.pc" - DESTINATION ${PKGCONFIG_INSTALL_DIR} -) +if(NOT CMAKE_SKIP_INSTALL_RULES) + install(DIRECTORY include/cli DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + include(CMakePackageConfigHelpers) + configure_package_config_file( + "cliConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cliConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cli" + ) + + # Generate pkg-config .pc file + set(PKGCONFIG_INSTALL_DIR + ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig + CACHE PATH "Installation directory for pkg-config (cli.pc) file" + ) + configure_file( + "cli.pc.in" + "cli.pc" + @ONLY + ) + + install(TARGETS cli EXPORT cliTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT cliTargets FILE cliTargets.cmake NAMESPACE cli:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cli) + + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/cliConfig.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cli" + ) + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/cli.pc" + DESTINATION ${PKGCONFIG_INSTALL_DIR} + ) +endif() \ No newline at end of file diff --git a/README.md b/README.md index 62f574c..3185a2d 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,21 @@ or, if you want to specify the installation path: mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX:PATH= make install + +Alternatively, you can use CMake's `FetchContent` module to include CLI library in your project directly. +Add something like this in your `CMakeLists.txt` file: + + include(FetchContent) + FetchContent_Declare( + cli + GIT_REPOSITORY https://github.com/daniele77/cli.git + GIT_TAG v2.0.2 + ) + FetchContent_MakeAvailable(cli) + + add_executable(main-project) + target_link_libraries(main-project PRIVATE cli::cli) + ## Compilation of the examples diff --git a/include/cli/detail/linuxkeyboard.h b/include/cli/detail/linuxkeyboard.h index d92e176..2878ac6 100644 --- a/include/cli/detail/linuxkeyboard.h +++ b/include/cli/detail/linuxkeyboard.h @@ -146,7 +146,9 @@ class LinuxKeyboard : public InputDevice case 4: // EOT return std::make_pair(KeyType::eof,' '); break; - case 127: return std::make_pair(KeyType::backspace,' '); break; + case 127: + case 8: + return std::make_pair(KeyType::backspace,' '); break; case 10: return std::make_pair(KeyType::ret,' '); break; case 27: // symbol ch = std::getchar();