CMakeLists.txt (3310B)
1 #*************************************************************************** 2 # _ _ ____ _ 3 # Project ___| | | | _ \| | 4 # / __| | | | |_) | | 5 # | (__| |_| | _ <| |___ 6 # \___|\___/|_| \_\_____| 7 # 8 # Copyright (C) Viktor Szakats, et al. 9 # 10 # This software is licensed as described in the file COPYING, which 11 # you should have received as part of this distribution. The terms 12 # are also available at https://curl.se/docs/copyright.html. 13 # 14 # You may opt to use, copy, modify, merge, publish, distribute and/or sell 15 # copies of the Software, and permit persons to whom the Software is 16 # furnished to do so, under the terms of the COPYING file. 17 # 18 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19 # KIND, either express or implied. 20 # 21 # SPDX-License-Identifier: curl 22 # 23 ########################################################################### 24 25 option(CURL_COMPLETION_FISH "Install fish completions" OFF) 26 option(CURL_COMPLETION_ZSH "Install zsh completions" OFF) 27 28 if(CURL_COMPLETION_FISH OR 29 CURL_COMPLETION_ZSH) 30 if(PERL_FOUND) 31 if(CURL_COMPLETION_FISH) 32 set(_completion_fish "${CMAKE_CURRENT_BINARY_DIR}/curl.fish") 33 add_custom_command(OUTPUT "${_completion_fish}" 34 COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" 35 --opts-dir "${PROJECT_SOURCE_DIR}/docs/cmdline-opts" --shell fish > "${_completion_fish}" 36 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" 37 VERBATIM 38 ) 39 add_custom_target("curl-completion-fish" ALL DEPENDS "${_completion_fish}") 40 endif() 41 42 if(CURL_COMPLETION_ZSH) 43 set(_completion_zsh "${CMAKE_CURRENT_BINARY_DIR}/_curl") 44 add_custom_command(OUTPUT "${_completion_zsh}" 45 COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" 46 --opts-dir "${PROJECT_SOURCE_DIR}/docs/cmdline-opts" --shell zsh > "${_completion_zsh}" 47 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/completion.pl" 48 VERBATIM 49 ) 50 add_custom_target("curl-completion-zsh" ALL DEPENDS "${_completion_zsh}") 51 endif() 52 53 if(NOT CURL_DISABLE_INSTALL) 54 if(CURL_COMPLETION_FISH) 55 if(NOT CURL_COMPLETION_FISH_DIR AND NOT CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_INSTALL_PREFIX) 56 find_package(PkgConfig QUIET) 57 pkg_get_variable(CURL_COMPLETION_FISH_DIR "fish" "completionsdir") 58 endif() 59 if(NOT CURL_COMPLETION_FISH_DIR AND CMAKE_INSTALL_DATAROOTDIR) 60 set(CURL_COMPLETION_FISH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/fish/vendor_completions.d") 61 endif() 62 if(CURL_COMPLETION_FISH_DIR) 63 install(FILES "${_completion_fish}" DESTINATION "${CURL_COMPLETION_FISH_DIR}") 64 endif() 65 endif() 66 if(CURL_COMPLETION_ZSH) 67 if(NOT CURL_COMPLETION_ZSH_DIR AND CMAKE_INSTALL_DATAROOTDIR) 68 set(CURL_COMPLETION_ZSH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/zsh/site-functions") 69 endif() 70 if(CURL_COMPLETION_ZSH_DIR) 71 install(FILES "${_completion_zsh}" DESTINATION "${CURL_COMPLETION_ZSH_DIR}") 72 endif() 73 endif() 74 endif() 75 else() 76 message(WARNING "No perl: cannot generate completion script") 77 endif() 78 endif()