#!/bin/sh set -eu old=0 new=1 build() { rm -rf build mkdir build ( cd build export CFLAGS="-Os" export CXXFLAGS="$CFLAGS" export CPPFLAGS="$CFLAGS" cmake \ -DCMAKE_BUILD_TYPE=None \ -DBINARY_PACKAGE_BUILD=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=True \ .. make -j4 ) } git checkout -f BISECT_HEAD git submodule update git clean -f src echo "Patching source" sed -i 's/__has_attribute(target_clones) && !defined(_WIN32)/__has_attribute(target_clones) \&\& defined(__GLIBC__) \&\& !defined(_WIN32)/' src/common/darktable.h sed -i '/add_definitions(-Werror -Wfatal-errors )/d' src/CMakeLists.txt sed -i 's/RelWithDebInfo Release)/RelWithDebInfo Release None)/' src/external/rawspeed/cmake/build-type.cmake echo -n "Compiling..." build >build.log 2>&1 || { echo " failed"; exit 125; } echo " done" export HOME=$(mktemp -d) timeout 3 build/bin/darktable || result=$? if [ $result -eq 124 ]; then git bisect terms --term-old exit $old else git bisect terms --term-new exit $new fi