summaryrefslogtreecommitdiff
path: root/ffbuild/pkgconfig_generate.sh
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-05-04 19:59:30 -0300
committerJames Almer <jamrial@gmail.com>2017-05-04 19:59:30 -0300
commit6fdd35a3126f6ecbe4ebab12bdf8867e4f544958 (patch)
tree7e0a89ba5a5e99377ec5461e9946ff1a0003a545 /ffbuild/pkgconfig_generate.sh
parentc0f17a905f3588bf61ba6d86a83c6835d431ed3d (diff)
parent92db5083077a8b0f8e1050507671b456fd155125 (diff)
Merge commit '92db5083077a8b0f8e1050507671b456fd155125'
* commit '92db5083077a8b0f8e1050507671b456fd155125': build: Generate pkg-config files from Make and not from configure build: Store library version numbers in .version files Includes cherry-picked commits 8a34f3659371680ca523aecfd9098c28f0f809eb and ee164727dd64c199b87118917e674b17c25e0da3 to fix issues. Changes were also made to retain support for raise_major and build_suffix. Reviewed-by: ubitux Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'ffbuild/pkgconfig_generate.sh')
-rwxr-xr-xffbuild/pkgconfig_generate.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/ffbuild/pkgconfig_generate.sh b/ffbuild/pkgconfig_generate.sh
new file mode 100755
index 0000000000..e5de6716d2
--- /dev/null
+++ b/ffbuild/pkgconfig_generate.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+. ffbuild/config.sh
+
+if test "$shared" = "yes"; then
+ shared=true
+else
+ shared=false
+fi
+
+shortname=$1
+name=lib${shortname}
+fullname=${name}${build_suffix}
+comment=$2
+libs=$(eval echo \$extralibs_${shortname})
+deps=$(eval echo \$${shortname}_deps)
+
+for dep in $deps; do
+ depname=lib${dep}
+ fulldepname=${depname}${build_suffix}
+ . ${depname}/${depname}.version
+ depversion=$(eval echo \$${depname}_VERSION)
+ requires="$requires ${fulldepname} >= ${depversion}, "
+done
+requires=${requires%, }
+
+version=$(grep ${name}_VERSION= $name/${name}.version | cut -d= -f2)
+
+cat <<EOF > $name/$fullname.pc
+prefix=$prefix
+exec_prefix=\${prefix}
+libdir=$libdir
+includedir=$incdir
+
+Name: $fullname
+Description: $comment
+Version: $version
+Requires: $($shared || echo $requires)
+Requires.private: $($shared && echo $requires)
+Conflicts:
+Libs: -L\${libdir} $rpath -l${fullname#lib} $($shared || echo $libs)
+Libs.private: $($shared && echo $libs)
+Cflags: -I\${includedir}
+EOF
+
+mkdir -p doc/examples/pc-uninstalled
+includedir=${source_path}
+[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
+ cat <<EOF > doc/examples/pc-uninstalled/${name}-uninstalled.pc
+prefix=
+exec_prefix=
+libdir=\${pcfiledir}/../../../$name
+includedir=${source_path}
+
+Name: $fullname
+Description: $comment
+Version: $version
+Requires: $requires
+Conflicts:
+Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${fullname#lib} $($shared || echo $libs)
+Cflags: -I\${includedir}
+EOF