Fix memleak
[appimagekit/gsi.git] / build.sh
blobb015a12e172e1610b7851da40126eab13574f3f2
1 #!/bin/bash
4 # This script installs the required build-time dependencies
5 # and builds AppImages for AppImageKit
8 STRIP="strip"
9 STATIC_BUILD=1
10 JOBS=${JOBS:-1}
11 RUN_TESTS=0
13 while [ $1 ]; do
14 case $1 in
15 '--debug' | '-d' )
16 STRIP="true"
18 '--use-shared-libs' | '-s' )
19 STATIC_BUILD=0
21 '--run-tests' | '-t' )
22 RUN_TESTS=1
24 '--clean' | '-c' )
25 rm -rf build
26 git clean -df
27 rm -rf squashfuse/* squashfuse/.git
28 rm -rf squashfs-tools/* squashfs-tools/.git
29 exit
31 '--help' | '-h' )
32 echo 'Usage: ./build.sh [OPTIONS]'
33 echo
34 echo 'OPTIONS:'
35 echo ' -h, --help: Show this help screen'
36 echo ' -d, --debug: Build with debug info.'
37 echo ' -n, --no-dependencies: Do not try to install distro specific build dependencies.'
38 echo ' -s, --use-shared-libs: Use distro provided shared versions of inotify-tools and openssl.'
39 echo ' -c, --clean: Clean all artifacts generated by the build.'
40 exit
42 esac
44 shift
45 done
48 if cat /etc/*release | grep "CentOS" 2>&1 >/dev/null; then
49 if [ -e /opt/rh/devtoolset-4/enable ]; then
50 . /opt/rh/devtoolset-4/enable
54 echo "$KEY" | md5sum
56 set -e
57 set -x
59 HERE="$(dirname "$(readlink -f "${0}")")"
60 cd "$HERE"
62 # Fetch git submodules
63 git submodule update --init --recursive
65 # Clean up from previous run
66 [ -d build/ ] && rm -rf build/
68 # Build AppImage
69 mkdir build
70 cd build
72 # make sure that deps in separate install tree are found
73 export PKG_CONFIG_PATH=/deps/lib/pkgconfig/
75 cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON -DAPPIMAGEKIT_PACKAGE_DEBS=ON
76 make -j$JOBS
77 make install DESTDIR=install_prefix/
79 if [ -d /deps/lib ]; then
80 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":/deps/lib/
83 ldd tests/test_*
85 if [ $RUN_TESTS -ne 0 ]; then
86 ctest -V
89 xxd src/runtime | head -n 1
91 # Do NOT strip runtime
92 find install_prefix/usr/bin/ -not -iname runtime -print -exec "$STRIP" "{}" \; 2>/dev/null
94 ls -lh install_prefix/usr/bin/
95 for FILE in install_prefix/usr/bin/*; do
96 echo "$FILE"
97 ldd "$FILE" || true
98 done
100 bash -ex "$HERE/build-appdir.sh"
102 ls -lh
104 mkdir -p out
105 cp -r install_prefix/usr/{bin,lib/appimagekit}/* appdirs/*.AppDir out/