File: bootstrap.linux

package info (click to toggle)
digikam 4%3A8.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 345,724 kB
  • sloc: cpp: 916,833; xml: 145,398; ansic: 46,748; sh: 7,211; python: 2,681; javascript: 1,818; yacc: 958; perl: 685; objc: 340; lex: 315; java: 54; makefile: 39; ruby: 14
file content (153 lines) | stat: -rwxr-xr-x 4,298 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/bin/bash

# SPDX-FileCopyrightText: 2008-2025 by Gilles Caulier, <caulier dot gilles at gmail dot com>
# SPDX-FileCopyrightText:      2015 by Ulf Rompe <kde dot org at rompe dot org>
#
# SPDX-License-Identifier: BSD-3-Clause

# Halt and catch errors
set -eE
trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG
trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR

# Uncomment and adjust lines below to use Clang compiler instead GCC
#export CC=/usr/bin/clang
#export CXX=/usr/bin/clang++

SOURCEDIR=$PWD
export BUILD_WITH_QT6=0

if [[ $BUILD_WITH_QT6 == 1 ]] ; then
    QTPATHS="qtpaths6"
else
    QTPATHS="qtpaths"
fi

# Prior Qt6 first. if failed try Qt5
# Customized install Qt path compiled with https://github.com/cgilles/digikam-install-deps.git

if   [[ -d /opt/qt6 && $BUILD_WITH_QT6 == 1 ]] ; then

    export Qt6_DIR=/opt/qt6

    QTPATHS="/opt/qt6/bin/qtpaths6"

    export CMAKE_BINARY=/opt/qt6/bin/cmake

elif [ -d /opt/qt5 ] ; then

    export Qt5_DIR=/opt/qt5

    QTPATHS="/opt/qt5/bin/qtpaths"

    export CMAKE_BINARY=/opt/qt5/bin/cmake

    export BUILD_WITH_QT6=0

fi

export exiv2_DIR=/opt/qt6/lib/cmake
export OpenCV_DIR=/opt/qt6/lib/cmake

command -v $QTPATHS >/dev/null 2>&1 || { echo >&2 "This script require $QTPATHS CLI tool from Qt project but it's not installed. Aborting."; exit 1; }

if [ "$1" == "" ]; then
    MAKEFILES_TYPE='Unix Makefiles'

    if [[ $BUILD_WITH_QT6 == 1 ]] ; then
        BUILDDIR=$PWD"/build.qt6"
    else
        BUILDDIR=$PWD"/build"
    fi

    MESSAGE="Now run make in $BUILDDIR."

elif [ "$1" == "--ninja" ]; then

    MAKEFILES_TYPE='Ninja'

    if [[ $BUILD_WITH_QT6 == 1 ]] ; then
        BUILDDIR=$PWD"/build.qt6"
    else
        BUILDDIR=$PWD"/build"
    fi

    MESSAGE="Now run ninja in $BUILDDIR."

elif [ "$1" == "--eclipse" ]; then

    MAKEFILES_TYPE='Eclipse CDT4 - Unix Makefiles'
    ADDITIONAL_CMAKE_FLAGS="-DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=ON $ADDITIONAL_CMAKE_FLAGS"
    BUILDDIR=$PWD"-debug"
    MESSAGE="
Now import these folders as existing projects into Eclipse without
copying source into the workspace:
$SOURCEDIR
$BUILDDIR"

else

    echo "Syntax: $0 [--eclipse] [--ninja]"
    echo "Run without arguments to create a Unix Makefile project in a build subdir."
    echo "Run with '--eclipse' to create an Eclipse IDE project and build source in a parallel directory."
    echo "Run with '--ninja' to create Ninja Makefile project in a build subdir."
    exit 1

fi

if [[ "$ARCH" = "x86_64" ]] ; then
    LIBPATH="lib64"
elif [[ "$ARCH" = "i686" ]] ; then
    LIBPATH="lib"
fi

QT_INSTALL_PREFIX=`$QTPATHS --install-prefix`
QT_PLUGIN_INSTALL_DIR=`$QTPATHS --plugin-dir`
export PATH=$QT_INSTALL_PREFIX/bin:$PATH

if [ "$CMAKE_BINARY" == "" ]; then
    CMAKE_BINARY="cmake"
fi

if [ "$DIGIKAM_INSTALL_PREFIX" == "" ]; then
    DIGIKAM_INSTALL_PREFIX="/usr"
else
    # bootstrap.local may have preset DIGIKAM_INSTALL_PREFIX.
    QT_PLUGIN_INSTALL_DIR=$DIGIKAM_INSTALL_PREFIX/$LIBPATH/plugins
    export PATH=$DIGIKAM_INSTALL_PREFIX/bin:$PATH
fi

export LD_LIBRARY_PATH=$DIGIKAM_INSTALL_PREFIX/$LIBPATH:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$DIGIKAM_INSTALL_PREFIX/$LIBPATH/pkgconfig:$PKG_CONFIG_PATH

echo "Qt      Install Path : $QT_INSTALL_PREFIX"
echo "digiKam Install Path : $DIGIKAM_INSTALL_PREFIX"
echo "CMake binary         : $CMAKE_BINARY"
echo "Build Directory      : $BUILDDIR"
echo "Build for Qt6        : $BUILD_WITH_QT6"
echo "ECM min version      : $ECM_MIN_VERSION"

mkdir -p $DIGIKAM_INSTALL_PREFIX
mkdir -p $BUILDDIR
cd $BUILDDIR

$CMAKE_BINARY -G "$MAKEFILES_TYPE" . \
      -DCMAKE_BUILD_TYPE=Debug \
      -DCMAKE_INSTALL_PREFIX=$DIGIKAM_INSTALL_PREFIX/ \
      -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
      -DKDE_INSTALL_QTPLUGINDIR=$QT_PLUGIN_INSTALL_DIR/ \
      $ADDITIONAL_CMAKE_FLAGS \
      -DBUILD_TESTING=ON \
      -DBUILD_WITH_CCACHE=ON \
      -DBUILD_WITH_QT6=$BUILD_WITH_QT6 \
      -DDIGIKAMSC_COMPILE_PO=OFF \
      -DDIGIKAMSC_COMPILE_DIGIKAM=ON \
      -DENABLE_KFILEMETADATASUPPORT=ON \
      -DENABLE_AKONADICONTACTSUPPORT=ON \
      -DENABLE_MYSQLSUPPORT=ON \
      -DENABLE_INTERNALMYSQL=ON \
      -DENABLE_GEOLOCATION=ON \
      -DENABLE_MEDIAPLAYER=ON \
      -DENABLE_DBUS=ON \
      -DENABLE_APPSTYLES=ON \
      $SOURCEDIR && echo "$MESSAGE"