| #*************************************************************************** |
| # _ _ ____ _ |
| # Project ___| | | | _ \| | |
| # / __| | | | |_) | | |
| # | (__| |_| | _ <| |___ |
| # \___|\___/|_| \_\_____| |
| # |
| # Copyright (C) Viktor Szakats, et al. |
| # |
| # This software is licensed as described in the file COPYING, which |
| # you should have received as part of this distribution. The terms |
| # are also available at https://curl.se/docs/copyright.html. |
| # |
| # You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| # copies of the Software, and permit persons to whom the Software is |
| # furnished to do so, under the terms of the COPYING file. |
| # |
| # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| # KIND, either express or implied. |
| # |
| # SPDX-License-Identifier: curl |
| # |
| ########################################################################### |
| |
| option(CURL_COMPLETION_FISH "Install fish completions" OFF) |
| option(CURL_COMPLETION_ZSH "Install zsh completions" OFF) |
| |
| if(CURL_COMPLETION_FISH OR |
| CURL_COMPLETION_ZSH) |
| if(PERL_FOUND) |
| if(CURL_COMPLETION_FISH) |
| set(_completion_fish "${CMAKE_CURRENT_BINARY_DIR}/curl.fish") |
| add_custom_command(OUTPUT "${_completion_fish}" |
| COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" |
| --opts-dir "${PROJECT_SOURCE_DIR}/docs/cmdline-opts" --shell fish > "${_completion_fish}" |
| DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" |
| VERBATIM |
| ) |
| add_custom_target("curl-completion-fish" ALL DEPENDS "${_completion_fish}") |
| endif() |
| |
| if(CURL_COMPLETION_ZSH) |
| set(_completion_zsh "${CMAKE_CURRENT_BINARY_DIR}/_curl") |
| add_custom_command(OUTPUT "${_completion_zsh}" |
| COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" |
| --opts-dir "${PROJECT_SOURCE_DIR}/docs/cmdline-opts" --shell zsh > "${_completion_zsh}" |
| DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" |
| VERBATIM |
| ) |
| add_custom_target("curl-completion-zsh" ALL DEPENDS "${_completion_zsh}") |
| endif() |
| |
| if(NOT CURL_DISABLE_INSTALL) |
| if(CURL_COMPLETION_FISH) |
| if(NOT CURL_COMPLETION_FISH_DIR AND NOT CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_INSTALL_PREFIX) |
| find_package(PkgConfig QUIET) |
| pkg_get_variable(CURL_COMPLETION_FISH_DIR "fish" "completionsdir") |
| endif() |
| if(NOT CURL_COMPLETION_FISH_DIR AND CMAKE_INSTALL_DATAROOTDIR) |
| set(CURL_COMPLETION_FISH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/fish/vendor_completions.d") |
| endif() |
| if(CURL_COMPLETION_FISH_DIR) |
| install(FILES "${_completion_fish}" DESTINATION "${CURL_COMPLETION_FISH_DIR}") |
| endif() |
| endif() |
| if(CURL_COMPLETION_ZSH) |
| if(NOT CURL_COMPLETION_ZSH_DIR AND CMAKE_INSTALL_DATAROOTDIR) |
| set(CURL_COMPLETION_ZSH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/zsh/site-functions") |
| endif() |
| if(CURL_COMPLETION_ZSH_DIR) |
| install(FILES "${_completion_zsh}" DESTINATION "${CURL_COMPLETION_ZSH_DIR}") |
| endif() |
| endif() |
| endif() |
| else() |
| message(WARNING "No perl: cannot generate completion script") |
| endif() |
| endif() |