From d9d3557fcfbce1fe603623f536242c20e40b599b Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 20 Mar 2020 15:17:46 +0100 Subject: [PATCH] Use pkg-config variables This allows all variables to be set properly when the prefix or datadir changes. The generated .pc file looks like this: prefix=/usr/local datadir=${prefix}/share completionsdir=${datadir}/fish/vendor_completions.d functionsdir=${datadir}/fish/vendor_functions.d confdir=${datadir}/fish/vendor_conf.d Name: fish Description: fish, the friendly interactive shell URL: https://fishshell.com/ Version: 3.1.0-402-g75ae172ba228-dirty Closes: https://bugs.archlinux.org/task/65904 --- CHANGELOG.md | 1 + cmake/Install.cmake | 12 ++++++++---- fish.pc.in | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4e1f191e..5996ce06f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ ### For distributors and developers - fish source tarballs are now distributed using the XZ compression method (#5460). - Allow finishing builds on OS X <10.13.6 (previously builds would fail at the `codesign` step) +- The pkg-config file now uses pkg-config variables --- diff --git a/cmake/Install.cmake b/cmake/Install.cmake index 39a83e27a..3b8a5626e 100644 --- a/cmake/Install.cmake +++ b/cmake/Install.cmake @@ -24,16 +24,20 @@ set(configure_input "This file was generated from a corresponding .in file.\ DO NOT MANUALLY EDIT THIS FILE!") +set(rel_completionsdir "fish/vendor_completions.d") +set(rel_functionsdir "fish/vendor_functions.d") +set(rel_confdir "fish/vendor_conf.d") + set(extra_completionsdir - /usr/local/share/fish/vendor_completions.d + "/usr/local/share/${rel_completionsdir}" CACHE STRING "Path for extra completions") set(extra_functionsdir - /usr/local/share/fish/vendor_functions.d + "/usr/local/share/${rel_functionsdir}" CACHE STRING "Path for extra functions") set(extra_confdir - /usr/local/share/fish/vendor_conf.d + "/usr/local/share/${rel_confdir}" CACHE STRING "Path for extra configuration") # These are the man pages that go in system manpath; all manpages go in the fish-specific manpath. @@ -99,7 +103,7 @@ fish_create_dirs(${rel_datadir}/fish/vendor_completions.d ${rel_datadir}/fish/ve ${rel_datadir}/fish/vendor_conf.d) fish_try_create_dirs(${rel_datadir}/pkgconfig) -configure_file(fish.pc.in fish.pc.noversion) +configure_file(fish.pc.in fish.pc.noversion @ONLY) add_custom_command(OUTPUT fish.pc COMMAND sed '/Version/d' fish.pc.noversion > fish.pc diff --git a/fish.pc.in b/fish.pc.in index 7a96e72c6..dcdb748de 100644 --- a/fish.pc.in +++ b/fish.pc.in @@ -1,8 +1,8 @@ prefix=@prefix@ -datadir=@datadir@ -completionsdir=@extra_completionsdir@ -functionsdir=@extra_functionsdir@ -confdir=@extra_confdir@ +datadir=${prefix}/@rel_datadir@ +completionsdir=${datadir}/@rel_completionsdir@ +functionsdir=${datadir}/@rel_functionsdir@ +confdir=${datadir}/@rel_confdir@ Name: fish Description: fish, the friendly interactive shell