File indexing completed on 2024-05-12 05:17:32

0001 #!/bin/bash
0002 # SPDX-License-Identifier: BSD-2-Clause
0003 # SPDX-FileCopyrightText: 2020-2022 Volker Krause <vkrause@kde.org>
0004 set -e
0005 set -x
0006 
0007 FREETYPE_VERSION="VER-2-13-2"
0008 POPPLER_VERSION="poppler-23.12.0"
0009 LIBICAL_VERSION="v3.0.17"
0010 LIBXML_VERSION="v2.12.2"
0011 ZXING_VERSION="v2.1.0"
0012 KF_VERSION="master"
0013 GEAR_VERSION="master"
0014 
0015 function build_cmake_module() {
0016     local repo=$1
0017     shift
0018     local module=$1
0019     shift
0020     local version=$1
0021     shift
0022 
0023     mkdir -p $BUILD_ROOT
0024     mkdir -p $STAGING_ROOT
0025     pushd $BUILD_ROOT
0026 
0027     if ! [ -d $BUILD_ROOT/$module ]; then
0028         git clone --branch $version --depth 1 $repo $module
0029     fi
0030     cd $module
0031 
0032     mkdir build
0033     cd build
0034     cmake -DBUILD_SHARED=ON \
0035         -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF \
0036         -DCMAKE_PREFIX_PATH=$STAGING_ROOT \
0037         -DCMAKE_INSTALL_PREFIX=$STAGING_ROOT \
0038         -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \
0039         -DZLIB_USE_STATIC_LIBS=ON \
0040         $@ -DCMAKE_BUILD_TYPE=Release ..
0041 
0042     make -j 4
0043     make install/fast
0044 
0045     popd
0046 }
0047 
0048 function build_kde_module() {
0049     local module=$1
0050     shift
0051     build_cmake_module https://invent.kde.org/$module $module $GEAR_VERSION $@
0052 }
0053 
0054 function build_kf_module() {
0055     local module=$1
0056     shift
0057     build_cmake_module https://invent.kde.org/$module $module $KF_VERSION $@
0058 }
0059 
0060 build_cmake_module https://gitlab.freedesktop.org/freetype/freetype.git freetype $FREETYPE_VERSION
0061 
0062 build_cmake_module https://gitlab.freedesktop.org/poppler/poppler poppler $POPPLER_VERSION \
0063     -DBUILD_CPP_TESTS=OFF -DBUILD_QT5_TESTS=OFF -DBUILD_QT6_TESTS=OFF -DBUILD_GTK_TESTS=OFF -DENABLE_CPP=OFF \
0064     -DENABLE_DCTDECODER=unmaintained -DENABLE_GLIB=OFF -DENABLE_GOBJECT_INTROSPECTION=OFF -DENABLE_LIBOPENJPEG=unmaintained \
0065     -DENABLE_UNSTABLE_API_ABI_HEADERS=ON -DENABLE_UTILS=OFF -DENABLE_NSS3=OFF -DENABLE_LIBTIFF=OFF -DENABLE_LIBCURL=OFF \
0066     -DENABLE_CMS=none -DWITH_CAIRO=OFF -DWITH_JPEG=OFF -DFONT_CONFIGURATION=generic -DENABLE_BOOST=OFF -DENABLE_QT5=OFF \
0067     -DENABLE_QT6=OFF -DENABLE_SPLASH=OFF -DENABLE_GPGME=OFF -DENABLE_LCMS=OFF
0068 
0069 build_cmake_module https://github.com/libical/libical.git libical $LIBICAL_VERSION \
0070     -DWITH_CXX_BINDINGS=OFF -DSTATIC_ONLY=ON -DGOBJECT_INTROSPECTION=OFF -DICAL_BUILD_DOCS=OFF \
0071     -DICAL_GLIB_VAPI=OFF -DICAL_GLIB=OFF -DENABLE_GTK_DOC=OFF -DCMAKE_DISABLE_FIND_PACKAGE_ICU=ON \
0072     -DCMAKE_DISABLE_FIND_PACKAGE_BDB=ON
0073 
0074 build_cmake_module https://gitlab.gnome.org/GNOME/libxml2.git libxml2 $LIBXML_VERSION \
0075     -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_DEBUG=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_ZLIB=OFF
0076 
0077 build_cmake_module https://github.com/nu-book/zxing-cpp.git zxing-cpp $ZXING_VERSION \
0078     -DBUILD_SHARED_LIBRARY=OFF  -DBUILD_EXAMPLES=OFF -DBUILD_BLACKBOX_TESTS=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_PYTHON_MODULE=OFF
0079 
0080 # KDE Frameworks
0081 build_kf_module frameworks/extra-cmake-modules
0082 build_kf_module frameworks/karchive -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DWITH_LIBZSTD=OFF
0083 build_kf_module frameworks/kcodecs
0084 build_kf_module frameworks/kconfig -DKCONFIG_USE_DBUS=OFF
0085 build_kf_module frameworks/kcoreaddons -DKCOREADDONS_USE_QML=OFF
0086 build_kf_module frameworks/ki18n -DBUILD_WITH_QML=OFF -DKI18N_EMBEDDED_ISO_CODES_CACHE=ON
0087 build_kf_module frameworks/kcalendarcore
0088 build_kf_module frameworks/kcontacts
0089 
0090 # PIM
0091 build_kde_module pim/kmime
0092 build_kde_module pim/kpkpass
0093 
0094 export CXXFLAGS="-static-libstdc++ -static-libgcc"
0095 build_kde_module $CI_PROJECT_PATH -DKITINERARY_STANDALONE_CLI_EXTRACTOR=ON -DBUILD_TOOLS=OFF