Changeset View
Changeset View
Standalone View
Standalone View
head/misc/qtchooser/files/update-qtchooser-wrapper.in
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
#!/bin/sh | |||||
# $FreeBSD$ | |||||
# If a port installs Qt version-specific binaries (e.g. "designer" which existed as a Qt4 application | |||||
# and exists as a Qt5 application and will probably be a Qt6 application) which should have a | |||||
# qtchooser-based wrapper, the port should set `QT_BINARIES=yes`. | |||||
# | |||||
# When QT_BINARIES is set to yes, compatibility symlinks (designer -> qtchooser, so that | |||||
# qtchooser can run designer-qt5 or whatever is the selected Qt version) are installed by the port. | |||||
PREFIX=%%PREFIX%% | |||||
BINDIR=${PREFIX}/bin | |||||
QTCHOOSER=${BINDIR}/qtchooser | |||||
VERSIONS=%%QT_SUPPORTED%% | |||||
if [ ! -d ${BINDIR} ] ; then | |||||
echo "Binary directory '${BINDIR}' missing." >&2 | |||||
exit 1 | |||||
fi | |||||
if [ ! -x ${QTCHOOSER} ] ; then | |||||
echo "Qtchooser binary '${QTCHOOSER}' missing." >&2 | |||||
exit 2 | |||||
fi | |||||
remove_links() { | |||||
echo "Removing qtchooser links" | |||||
for file in $(find -L ${BINDIR} -maxdepth 1 -samefile ${QTCHOOSER}) ; do | |||||
if [ ! -L ${file} ] ; then | |||||
continue | |||||
fi | |||||
# If at least one versioned executable is found for this name, keep the | |||||
# qtchooser compatibility symlink for this name; otherwise, remove it. | |||||
local found=0 | |||||
for version in ${VERSIONS} ; do | |||||
version_bin_dir=${PREFIX}/lib/qt${version}/bin | |||||
target=${version_bin_dir}/$(basename ${file}) | |||||
if [ -x ${target} ] ; then | |||||
found=1 | |||||
break | |||||
fi | |||||
done | |||||
if [ ${found} -eq 0 ] ; then | |||||
echo " ${file}" | |||||
rm ${file} | |||||
fi | |||||
done | |||||
echo "done" | |||||
} | |||||
create_links() { | |||||
echo "Creating qtchooser links" | |||||
for version in ${VERSIONS} ; do | |||||
version_bin_dir=${PREFIX}/lib/qt${version}/bin | |||||
if [ -d ${version_bin_dir} ] ; then | |||||
for file in $(find ${version_bin_dir} -type f -maxdepth 1) ; do | |||||
target=${BINDIR}/$(basename ${file}) | |||||
if [ ! -L ${target} -a ! -f ${target} ] ; then | |||||
echo " ${target}" | |||||
ln -s ${QTCHOOSER} ${target} | |||||
fi | |||||
done | |||||
fi | |||||
done | |||||
echo "done" | |||||
} | |||||
remove_links | |||||
create_links |