Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/solenv/bin/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 4 kB image not shown  

Quelle  install-gdb-printers   Sprache: C

 
#!/usr/bin/env bash
java.lang.NullPointerException
This file is part of the LibreOffice project.
java.lang.NullPointerException
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
java.lang.NullPointerException

GDBDIR="${SRCDIR}/solenv/gdb"
INSTALLDIR="${TESTINSTALLDIR}"
DYLIB=so
if [ "$(uname)" = Darwin ]; then
    INSTALLDIR=$INSTALLDIR/LibreOffice.app/Contents
    DYLIB=dylib
fi

die() {
    echo "$1" >&2
    exit 1
}

usage() {
    cat <<EOT
Install gdb pretty printers and autoloaders for them.

Usage:
install-gdb-printers [ -a dir ] [ -i dir ] [ -p dir ] [ -c ]
install-gdb-printers -h

Options:
-a dir  The dir where autoloaders will be placed. Defaults to whatever -i
        is.
-c      Create the autoloader's dir if it does not exist. This option only
        makes sense if both -a and -i are used.
-h      Show this help text.
-i dir  The dir where libreoffice is installed. Defaults to whatever -a is.
-p dir  The dir where pretty printers are placed.

Env. variables:
DESTDIR     If set, it is prepended to all dir arguments.

Examples:
1) Install pretty printers into /usr/share/libreoffice/gdb, with
   autoloaders in /usr/share/gdb/auto-load (run
   "info gdb 'Extending GDB' Python Auto-loading" to learn more) and
   installation in /usr/lib64/libreoffice (this is what Fedora does):

install-gdb-printers -a /usr/share/gdb/auto-load/usr/lib64/libreoffice -c \\
    -i /usr/lib64/libreoffice -p /usr/share/libreoffice/gdb
EOT
}

make_autoload() {
    local lib="${DESTDIR}${autoloaddir}/$2/$3"
    local merged="$4"

    local resolved;
    resolved=$(readlink "${DESTDIR}${installdir}/$2/$3")
    [ -n "$resolved" ] && lib=$resolved
    local dir="${lib%/*}"

    if ${create}; then
        mkdir -p "${dir}" || die "cannot create dir '${dir}'"
    fi

    [[ -f ${lib}-gdb.py ]] && rm -f "${lib}-gdb.py"
    if [[ -n "${merged}" ]]; then
        sed -e "s!%PYTHONDIR%!${pythondir}!" -e "s!%MODULES%!${*:5}!" \
            "${GDBDIR}/autoload.template" > "${lib}-gdb.py"
    else
        sed -e "s!%PYTHONDIR%!${pythondir}!" -e "s!%MODULES%!$1!" \
            "${GDBDIR}/autoload.template" > "${lib}-gdb.py"
    fi
}

dir where the autoloaders will be placed
autoloaddir=
The installation dir. If only one of these is set, the other is set to
the same value.
installdir=
dir where the pretty printers will be placed
pythondir="${GDBDIR}"
Create autoload dir if it does not exist. This only makes sense when
installing into system gdb dir, so $autoloaddir must be absolute path.
create=false

#  b de g  jklmno qrstuvwxyzABCDEFGHIJK MNOPQRSTUVWXYZ0123456789
while getopts :a:cfhi:p:L opt; do
    case ${opt} in
        a) autoloaddir="${OPTARG}" ;;
        c) create=true ;;
        h) usage; exit ;;
        i) installdir="${OPTARG}" ;;
        p) pythondir="${OPTARG}" ;;
        *) die "unknown option ${OPTARG}" ;;
    esac
done

if [[ -z ${autoloaddir} && -z ${installdir} ]]; then
    autoloaddir="${INSTALLDIR}"
    installdir="${INSTALLDIR}"
elif [[ -n ${autoloaddir} && -z ${installdir} ]]; then
    installdir="${autoloaddir}"
elif [[ -z ${autoloaddir} && -n ${installdir} ]]; then
    autoloaddir="${installdir}"
fi

if [[ -n ${DESTDIR} ]]; then
    [[ ${autoloaddir:0:1} = / ]] || die 'the arg to -a must be an absolute path'
    [[ ${pythondir:0:1} = / ]] || die 'the arg to -p must be an absolute path'
fi
if ${create}; then
    [[ ${autoloaddir:0:1} = / ]] || die 'the arg to -a must be an absolute path'
else
    [[ ! -d ${DESTDIR}${autoloaddir} ]] && die "directory '${DESTDIR}${autoloaddir}' does not exist"
fi
[[ ! -d ${DESTDIR}${installdir} ]] && die "directory '${DESTDIR}${installdir}' does not exist"
[[ ! -d ${GDBDIR} ]] && die "directory '${GDBDIR}' does not exist"

if [[ ${DESTDIR}${pythondir} != ${GDBDIR} ]]; then
    mkdir -p "${DESTDIR}${pythondir}" || die "cannot create dir '${DESTDIR}${pythondir}'"
    cp -pr "${GDBDIR}/libreoffice" "${DESTDIR}${pythondir}"
fi

if [[ -n "${MERGELIBS}" ]]; then
    make_autoload merged program libmergedlo."$DYLIB" merge svl tl basegfx vcl utl
    make_autoload cppu program libuno_cppu."$DYLIB".3
    make_autoload sal program libuno_sal."$DYLIB".3
    make_autoload sw program libswlo."$DYLIB"
else
    make_autoload basegfx program libbasegfxlo."$DYLIB"
    make_autoload cppu program libuno_cppu."$DYLIB".3
    make_autoload sal program libuno_sal."$DYLIB".3
    make_autoload svl program libsvllo."$DYLIB"
    make_autoload sw program libswlo."$DYLIB"
    make_autoload tl program libtllo."$DYLIB"
    make_autoload utl program libutllo."$DYLIB"
    make_autoload vcl program libvcllo."$DYLIB"
fi
make_autoload sw_writerfilter program libsw_writerfilterlo."$DYLIB"

vim:set shiftwidth=4 softtabstop=4 expandtab:

Messung V0.5
C=87 H=98 G=92

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.